#lang typed/racket
(provide current-connection
get-connection
set-connection!
connect)
(require typed/db)
(: current-connection (Parameterof (Option Connection)))
(define current-connection (make-parameter #f))
(define (get-connection)
(cond
[(current-connection) => identity]
[else (error "set-connection! でコネクションを設定してください")]))
(: set-connection! (-> Connection Void))
(define (set-connection! c)
(current-connection c))
(module untyped racket
(provide (rename-out [postgresql-connect connect]))
(require db))
(require/typed/provide (submod "." untyped)
[connect (->* (#:user String #:database String)
(#:server (Option String)
#:port Exact-Positive-Integer
#:socket (U 'guess Path-String False)
#:password (U String (List 'hash String) False)
#:allow-cleartext-password? (U 'local Boolean))
Connection)])