8 Commits

Author SHA1 Message Date
dbc2e70bf2 chore: prepare v2.0.12 2024-06-25 16:02:21 -05:00
901e931af4 fix: more relaxation 2024-06-25 16:02:15 -05:00
d5cc8ad95e chore: prepare v2.0.11 2024-06-25 15:54:44 -05:00
1a96e2e6d8 fix: relax class constraints 2024-06-25 15:54:38 -05:00
8350bc1c4a chore: prepare v2.0.10 2024-06-25 15:40:10 -05:00
fad3e8dbcb fix: parRE is alt 2024-06-25 15:40:05 -05:00
275bbe3583 chore: prepare v2.0.9 2024-06-25 15:07:46 -05:00
1d3c16a3a5 chore: prepare v2.0.8 2024-06-25 15:07:39 -05:00
8 changed files with 71 additions and 56 deletions

View File

@@ -259,59 +259,59 @@ the api of [`node-postgres`]:
- release clients with [`Pool.release`] or [`Pool.destroy`]
- release with [`Pool.end`]
[`Pool`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#t:Pool
[`Config`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#t:Config
[`Pool.make`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#v:make
[`Pool.end`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#v:end
[`Pool.connect`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#v:connect
[`Pool.destroy`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#v:destroy
[`Pool.release`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Pool#v:release
[`Pool`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#t:Pool
[`Config`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#t:Config
[`Pool.make`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#v:make
[`Pool.end`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#v:end
[`Pool.connect`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#v:connect
[`Pool.destroy`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#v:destroy
[`Pool.release`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Pool#v:release
[`Client`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#t:Client
[`Client.end`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:end
[`Client.make`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:make
[`Client.connected`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:connected
[`Client.query`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:query
[`Client.queryRaw`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:queryRaw
[`Client.exec`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Effect.Aff.Postgres.Client#v:exec
[`Client`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#t:Client
[`Client.end`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:end
[`Client.make`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:make
[`Client.connected`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:connected
[`Client.query`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:query
[`Client.queryRaw`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:queryRaw
[`Client.exec`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Effect.Aff.Postgres.Client#v:exec
[`Range`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Range#t:Range
[`Range.gt`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Range#v:gt
[`Range.gte`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Range#v:gte
[`Range.lt`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Range#v:lt
[`Range.lte`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Range#v:lte
[`Range`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Range#t:Range
[`Range.gt`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Range#v:gt
[`Range.gte`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Range#v:gte
[`Range.lt`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Range#v:lt
[`Range.lte`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Range#v:lte
[`Raw`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Raw#t:Raw
[`Null`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Raw#t:Null
[`Raw`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Raw#t:Raw
[`Null`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Raw#t:Null
[`Serialize`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres#t:Serialize
[`Deserialize`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres#t:Deserialize
[`Rep`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres#t:Rep
[`modifyPgTypes`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres#v:modifyPgTypes
[`Serialize`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres#t:Serialize
[`Deserialize`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres#t:Deserialize
[`Rep`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres#t:Rep
[`modifyPgTypes`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres#v:modifyPgTypes
[`Result`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Result#t:Result
[`FromRow`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Result#t:FromRow
[`FromRows`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Result#t:FromRows
[`Result`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Result#t:Result
[`FromRow`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Result#t:FromRow
[`FromRows`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Result#t:FromRows
[`Query`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Query#t:Query
[`AsQuery`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Query#t:AsQuery
[`Query`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Query#t:Query
[`AsQuery`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Query#t:AsQuery
[`Query.Builder`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Query.Builder#t:Builder
[`Query.Builder.param`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Query.Builder#v:param
[`Query.Builder.build`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Data.Postgres.Query.Builder#v:build
[`Query.Builder`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Query.Builder#t:Builder
[`Query.Builder.param`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Query.Builder#v:param
[`Query.Builder.build`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Data.Postgres.Query.Builder#v:build
[`MonadCursor`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#t:MonadCursor
[`MonadSession`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#t:MonadSession
[`CursorT`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#t:CursorT
[`SessionT`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#t:SessionT
[`PostgresT`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#t:PostgresT
[`cursor`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:cursor
[`session`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:session
[`transaction`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:transaction
[`runPostgres`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:runPostgres
[`query`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:query
[`exec`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:exec
[`exec_`]: https://pursuit.purescript.org//////////////////////////////////////////////////packages/purescript-postgresql/2.0.7/Control.Monad.Postgres#v:exec_
[`MonadCursor`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#t:MonadCursor
[`MonadSession`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#t:MonadSession
[`CursorT`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#t:CursorT
[`SessionT`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#t:SessionT
[`PostgresT`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#t:PostgresT
[`cursor`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:cursor
[`session`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:session
[`transaction`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:transaction
[`runPostgres`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:runPostgres
[`query`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:query
[`exec`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:exec
[`exec_`]: https://pursuit.purescript.org///////////////////////////////////////////////////////packages/purescript-postgresql/2.0.12/Control.Monad.Postgres#v:exec_
[`node-postgres`]: https://node-postgres.com/
[`pg-types`]: https://github.com/brianc/node-pg-types/

View File

@@ -25,6 +25,7 @@ workspace:
- newtype: ">=5.0.0 <6.0.0"
- node-buffer: ">=9.0.0 <10.0.0"
- node-event-emitter: ">=3.0.0 <4.0.0"
- node-fs: ">=9.1.0 <9.2.0"
- node-stream-pipes: ">=2.1.0 <3.0.0"
- node-streams: ">=9.0.0 <10.0.0"
- nullable: ">=6.0.0 <7.0.0"
@@ -665,8 +666,8 @@ packages:
- unsafe-coerce
node-fs:
type: registry
version: 9.2.0
integrity: sha256-Sg0vkXycEzkEerX6hLccz21Ygd9w1+QSk1thotRZPGI=
version: 9.1.0
integrity: sha256-TzhvGdrwcM0bazDvrWSqh+M/H8GKYf1Na6aGm2Qg4+c=
dependencies:
- datetime
- effect

View File

@@ -1,7 +1,7 @@
package:
name: postgresql
publish:
version: '2.0.7'
version: '2.0.12'
license: 'GPL-3.0-or-later'
location:
githubOwner: 'cakekindel'
@@ -54,6 +54,7 @@ package:
- typelevel-prelude: ">=7.0.0 <8.0.0"
- unlift: ">=1.0.1 <2.0.0"
- unsafe-coerce: ">=6.0.0 <7.0.0"
- node-fs: ">=9.1.0 <9.2.0"
test:
main: Test.Main
dependencies:

View File

@@ -71,8 +71,7 @@ class (Monad m, MonadSession session, MonadCursor cursor ct) <= MonadPostgres m
cursorWith :: forall q. AsQuery q => (Array Raw -> RepT ct) -> String -> q -> cursor ~> m
instance
( MonadBracket Effect.Error f m
, MonadAff m
( MonadAff m
, MonadSession (SessionT m)
, MonadCursor (CursorT t (SessionT m)) t
) => MonadPostgres

View File

@@ -22,7 +22,6 @@ import Data.Tuple.Nested (type (/\), (/\))
import Effect.Aff.Class (class MonadAff)
import Effect.Aff.Unlift (class MonadUnliftAff)
import Effect.Class (class MonadEffect, liftEffect)
import Effect.Postgres.Error as E
import Effect.Unlift (class MonadUnliftEffect)
data Move
@@ -119,7 +118,7 @@ instance (MonadSession m) => MonadCursor (CursorT t m) t where
RowsAffected n' <- query $ ("move relative $1 from " <> cur) /\ n
pure n'
instance (MonadThrow E.E m, MonadSession m) => MonadSession (CursorT t m) where
instance (MonadSession m) => MonadSession (CursorT t m) where
query = lift <<< query
exec = lift <<< exec
exec_ = lift <<< exec_

View File

@@ -2,7 +2,7 @@ module Control.Monad.Postgres.Session where
import Prelude hiding (join)
import Control.Monad.Error.Class (class MonadError, class MonadThrow, catchError, throwError)
import Control.Monad.Error.Class (class MonadError, catchError, throwError)
import Control.Monad.Fork.Class (class MonadBracket)
import Control.Monad.Morph (hoist)
import Control.Monad.Reader (ask)
@@ -17,6 +17,7 @@ import Effect.Aff.Postgres.Client (Client)
import Effect.Aff.Postgres.Client as Client
import Effect.Aff.Postgres.Pool (Pool)
import Effect.Aff.Postgres.Pool as Pool
import Effect.Aff.Unlift (class MonadUnliftAff)
import Effect.Class (class MonadEffect, liftEffect)
import Effect.Exception as Effect
import Effect.Postgres.Error (RE)
@@ -44,7 +45,7 @@ instance MonadStartSession Client where
endSession _ _ = pure unit
-- | A monad representing a connected session to a database
class (MonadThrow E.E m, MonadAff m) <= MonadSession m where
class MonadAff m <= MonadSession m where
-- | Executes a query and unmarshals the result into `r`
query :: forall q r. AsQuery q => FromRows r => q -> m r
-- | Executes a query and returns the number of rows affected
@@ -70,7 +71,7 @@ class (MonadThrow E.E m, MonadAff m) <= MonadSession m where
-- | ```
streamOut :: String -> m (Readable ())
instance (MonadStartSession s, MonadBracket Effect.Error f m, MonadAff m) => MonadSession (RE s m) where
instance (MonadStartSession s, MonadAff m) => MonadSession (RE s m) where
query q = do
pool <- ask
client <- hoist liftAff $ RE.liftExcept $ startSession pool

View File

@@ -3,6 +3,7 @@ module Effect.Postgres.Error.RE where
import Prelude hiding (join)
import Control.Alt (class Alt)
import Control.Alternative (class Alternative, class Plus)
import Control.Monad.Base (class MonadBase)
import Control.Monad.Error.Class (class MonadError, class MonadThrow, catchError, liftEither, throwError)
import Control.Monad.Except (ExceptT, runExceptT)
@@ -33,7 +34,7 @@ newtype RE r m a = RE (ReaderT r (ExceptT E m) a)
newtype ParRE r f a = ParRE (ReaderT r (Compose f (Either E)) a)
finally :: forall r f m a. MonadBracket Effect.Error f m => RE r m Unit -> RE r m a -> RE r m a
finally :: forall r m a. Monad m => RE r m Unit -> RE r m a -> RE r m a
finally after m = (m <* after) `catchError` \e -> after *> throwError e
run :: forall m r a. MonadThrow Effect.Error m => RE r m a -> r -> m a
@@ -52,6 +53,9 @@ derive instance Newtype (ParRE r m a) _
derive newtype instance Functor m => Functor (ParRE r m)
derive newtype instance Apply m => Apply (ParRE r m)
derive newtype instance Applicative m => Applicative (ParRE r m)
derive newtype instance Alt m => Alt (ParRE r m)
derive newtype instance Plus m => Plus (ParRE r m)
derive newtype instance Alternative m => Alternative (ParRE r m)
derive instance Newtype (RE r m a) _
derive newtype instance Monad m => MonadAsk r (RE r m)

View File

@@ -0,0 +1,10 @@
module Node.FS.PinnedVersion where
import Prelude
import Effect.Aff (Aff)
import Node.Encoding (Encoding(..))
import Node.FS.Aff as FS
foo :: Aff Unit
foo = FS.writeTextFile UTF8 "foo" "foo"