Merge pull request #8 from throughnothing/ps-0.11

Update for PureScript 0.11
This commit is contained in:
rightfold 2017-05-04 15:03:10 +02:00 committed by GitHub
commit 20dfed3e64
3 changed files with 26 additions and 20 deletions

View File

@ -2,19 +2,19 @@
"name": "purescript-postgresql-client", "name": "purescript-postgresql-client",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"dependencies": { "dependencies": {
"purescript-prelude": "^2.1.0", "purescript-prelude": "^3.0.0",
"purescript-transformers": "^2.0.2", "purescript-transformers": "^3.1.0",
"purescript-lists": "^3.2.1", "purescript-lists": "^4.0.1",
"purescript-foreign": "^3.0.1", "purescript-foreign": "^4.0.0",
"purescript-tuples": "^3.0.0", "purescript-tuples": "^4.0.0",
"purescript-aff": "^2.0.2", "purescript-aff": "^3.0.0",
"purescript-either": "^2.0.0", "purescript-either": "^3.0.0",
"purescript-maybe": "^2.0.1", "purescript-maybe": "^3.0.0",
"purescript-foldable-traversable": "^2.0.0", "purescript-foldable-traversable": "^3.0.0",
"purescript-newtype": "^1.1.0", "purescript-newtype": "^2.0.0",
"purescript-bytestrings": "^2.3.0", "purescript-bytestrings": "^3.0.1",
"purescript-arrays": "^3.1.0", "purescript-arrays": "^4.0.1",
"purescript-datetime": "^2.0.0" "purescript-datetime": "^3.0.0"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

View File

@ -59,3 +59,5 @@ exports.instantToString = function(i) {
exports.unsafeIsBuffer = function(x) { exports.unsafeIsBuffer = function(x) {
return x instanceof Buffer; return x instanceof Buffer;
}; };
exports['null'] = null;

View File

@ -21,6 +21,7 @@ module Database.PostgreSQL
) where ) where
import Control.Monad.Aff (Aff) import Control.Monad.Aff (Aff)
import Control.Monad.Eff (kind Effect)
import Control.Monad.Eff.Exception (error) import Control.Monad.Eff.Exception (error)
import Control.Monad.Error.Class (catchError, throwError) import Control.Monad.Error.Class (catchError, throwError)
import Control.Monad.Except (runExcept) import Control.Monad.Except (runExcept)
@ -30,7 +31,6 @@ import Data.ByteString (ByteString)
import Data.DateTime.Instant (Instant) import Data.DateTime.Instant (Instant)
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.Foreign (Foreign, isNull, readArray, readBoolean, readChar, readInt, readNumber, readString, toForeign, unsafeFromForeign) import Data.Foreign (Foreign, isNull, readArray, readBoolean, readChar, readInt, readNumber, readString, toForeign, unsafeFromForeign)
import Data.Foreign.Null (writeNull)
import Data.List (List) import Data.List (List)
import Data.List as List import Data.List as List
import Data.Maybe (Maybe(..)) import Data.Maybe (Maybe(..))
@ -40,7 +40,7 @@ import Data.Tuple (fst, Tuple)
import Data.Tuple.Nested ((/\)) import Data.Tuple.Nested ((/\))
import Prelude import Prelude
foreign import data POSTGRESQL :: ! foreign import data POSTGRESQL :: Effect
-- | PostgreSQL connection pool configuration. -- | PostgreSQL connection pool configuration.
type PoolConfiguration = type PoolConfiguration =
@ -53,11 +53,13 @@ type PoolConfiguration =
, idleTimeoutMillis :: Int , idleTimeoutMillis :: Int
} }
foreign import null :: Foreign
-- | PostgreSQL connection pool. -- | PostgreSQL connection pool.
foreign import data Pool :: * foreign import data Pool :: Type
-- | PostgreSQL connection. -- | PostgreSQL connection.
foreign import data Connection :: * foreign import data Connection :: Type
-- | PostgreSQL query with parameter (`$1`, `$2`, …) and return types. -- | PostgreSQL query with parameter (`$1`, `$2`, …) and return types.
newtype Query i o = Query String newtype Query i o = Query String
@ -143,7 +145,7 @@ instance toSQLValueInstant :: ToSQLValue Instant where
toSQLValue = instantToString toSQLValue = instantToString
instance toSQLValueMaybe :: (ToSQLValue a) => ToSQLValue (Maybe a) where instance toSQLValueMaybe :: (ToSQLValue a) => ToSQLValue (Maybe a) where
toSQLValue Nothing = writeNull toSQLValue Nothing = null
toSQLValue (Just x) = toSQLValue x toSQLValue (Just x) = toSQLValue x
instance fromSQLValueMaybe :: (FromSQLValue a) => FromSQLValue (Maybe a) where instance fromSQLValueMaybe :: (FromSQLValue a) => FromSQLValue (Maybe a) where
@ -196,7 +198,8 @@ execute conn (Query sql) values =
-- | Execute a PostgreSQL query and return its results. -- | Execute a PostgreSQL query and return its results.
query query
:: i o eff :: i o eff
. (ToSQLRow i, FromSQLRow o) . ToSQLRow i
=> FromSQLRow o
=> Connection => Connection
-> Query i o -> Query i o
-> i -> i
@ -209,7 +212,8 @@ query conn (Query sql) values =
scalar scalar
:: i o eff :: i o eff
. (ToSQLRow i, FromSQLValue o) . ToSQLRow i
=> FromSQLValue o
=> Connection => Connection
-> Query i (Tuple o Unit) -> Query i (Tuple o Unit)
-> i -> i