@effect/sql-pg 4.0.0-beta.65 → 4.0.0-beta.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PgClient.d.ts +50 -18
- package/dist/PgClient.d.ts.map +1 -1
- package/dist/PgClient.js +53 -14
- package/dist/PgClient.js.map +1 -1
- package/dist/PgMigrator.d.ts +28 -4
- package/dist/PgMigrator.d.ts.map +1 -1
- package/dist/PgMigrator.js +28 -4
- package/dist/PgMigrator.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +3 -3
- package/src/PgClient.ts +69 -20
- package/src/PgMigrator.ts +28 -4
- package/src/index.ts +3 -3
package/dist/PgClient.d.ts
CHANGED
|
@@ -16,18 +16,24 @@ import type { Duplex } from "node:stream";
|
|
|
16
16
|
import type { ConnectionOptions } from "node:tls";
|
|
17
17
|
import * as Pg from "pg";
|
|
18
18
|
/**
|
|
19
|
+
* Runtime type identifier used to mark `PgClient` values.
|
|
20
|
+
*
|
|
19
21
|
* @category type ids
|
|
20
|
-
* @since
|
|
22
|
+
* @since 4.0.0
|
|
21
23
|
*/
|
|
22
24
|
export declare const TypeId: TypeId;
|
|
23
25
|
/**
|
|
26
|
+
* Type-level identifier used to mark `PgClient` values.
|
|
27
|
+
*
|
|
24
28
|
* @category type ids
|
|
25
|
-
* @since
|
|
29
|
+
* @since 4.0.0
|
|
26
30
|
*/
|
|
27
31
|
export type TypeId = "~@effect/sql-pg/PgClient";
|
|
28
32
|
/**
|
|
33
|
+
* PostgreSQL client service, extending `SqlClient` with JSON parameter fragments and LISTEN/NOTIFY helpers.
|
|
34
|
+
*
|
|
29
35
|
* @category models
|
|
30
|
-
* @since
|
|
36
|
+
* @since 4.0.0
|
|
31
37
|
*/
|
|
32
38
|
export interface PgClient extends Client.SqlClient {
|
|
33
39
|
readonly [TypeId]: TypeId;
|
|
@@ -37,13 +43,17 @@ export interface PgClient extends Client.SqlClient {
|
|
|
37
43
|
readonly notify: (channel: string, payload: string) => Effect.Effect<void, SqlError>;
|
|
38
44
|
}
|
|
39
45
|
/**
|
|
46
|
+
* Context tag used to access the `PgClient` service.
|
|
47
|
+
*
|
|
40
48
|
* @category tags
|
|
41
|
-
* @since
|
|
49
|
+
* @since 4.0.0
|
|
42
50
|
*/
|
|
43
51
|
export declare const PgClient: Context.Service<PgClient, PgClient>;
|
|
44
52
|
/**
|
|
53
|
+
* Configuration for a PostgreSQL client, including connection, TLS, custom stream, application name, type parser, JSON transform, and query/result name transform options.
|
|
54
|
+
*
|
|
45
55
|
* @category constructors
|
|
46
|
-
* @since
|
|
56
|
+
* @since 4.0.0
|
|
47
57
|
*/
|
|
48
58
|
export interface PgClientConfig {
|
|
49
59
|
readonly url?: Redacted.Redacted | undefined;
|
|
@@ -64,8 +74,10 @@ export interface PgClientConfig {
|
|
|
64
74
|
readonly types?: Pg.CustomTypesConfig | undefined;
|
|
65
75
|
}
|
|
66
76
|
/**
|
|
77
|
+
* PostgreSQL pool configuration, extending `PgClientConfig` with idle timeout, pool size, and connection lifetime settings.
|
|
78
|
+
*
|
|
67
79
|
* @category constructors
|
|
68
|
-
* @since
|
|
80
|
+
* @since 4.0.0
|
|
69
81
|
*/
|
|
70
82
|
export interface PgPoolConfig extends PgClientConfig {
|
|
71
83
|
readonly idleTimeout?: Duration.Input | undefined;
|
|
@@ -74,13 +86,17 @@ export interface PgPoolConfig extends PgClientConfig {
|
|
|
74
86
|
readonly connectionTTL?: Duration.Input | undefined;
|
|
75
87
|
}
|
|
76
88
|
/**
|
|
89
|
+
* Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
|
|
90
|
+
*
|
|
77
91
|
* @category constructors
|
|
78
|
-
* @since
|
|
92
|
+
* @since 4.0.0
|
|
79
93
|
*/
|
|
80
94
|
export declare const make: (options: PgPoolConfig) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
81
95
|
/**
|
|
96
|
+
* Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
|
|
97
|
+
*
|
|
82
98
|
* @category constructors
|
|
83
|
-
* @since
|
|
99
|
+
* @since 4.0.0
|
|
84
100
|
*/
|
|
85
101
|
export declare const makeClient: (options: PgClientConfig & {
|
|
86
102
|
/**
|
|
@@ -89,8 +105,10 @@ export declare const makeClient: (options: PgClientConfig & {
|
|
|
89
105
|
readonly acquireForStream?: boolean | undefined;
|
|
90
106
|
}) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
91
107
|
/**
|
|
108
|
+
* Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
|
|
109
|
+
*
|
|
92
110
|
* @category constructors
|
|
93
|
-
* @since
|
|
111
|
+
* @since 4.0.0
|
|
94
112
|
*/
|
|
95
113
|
export declare const fromPool: (options: {
|
|
96
114
|
readonly acquire: Effect.Effect<Pg.Pool, SqlError, Scope.Scope>;
|
|
@@ -102,8 +120,10 @@ export declare const fromPool: (options: {
|
|
|
102
120
|
readonly types?: Pg.CustomTypesConfig | undefined;
|
|
103
121
|
}) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
104
122
|
/**
|
|
123
|
+
* Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
|
|
124
|
+
*
|
|
105
125
|
* @category constructors
|
|
106
|
-
* @since
|
|
126
|
+
* @since 4.0.0
|
|
107
127
|
*/
|
|
108
128
|
export declare const fromClient: (options: {
|
|
109
129
|
readonly acquire: Effect.Effect<Pg.Client, SqlError, Scope.Scope>;
|
|
@@ -119,8 +139,10 @@ export declare const fromClient: (options: {
|
|
|
119
139
|
readonly types?: Pg.CustomTypesConfig | undefined;
|
|
120
140
|
}) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
121
141
|
/**
|
|
142
|
+
* Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
|
|
143
|
+
*
|
|
122
144
|
* @category constructors
|
|
123
|
-
* @since
|
|
145
|
+
* @since 4.0.0
|
|
124
146
|
*/
|
|
125
147
|
export declare const makeWith: (options: {
|
|
126
148
|
readonly acquirer: SqlConnection.Acquirer;
|
|
@@ -133,39 +155,49 @@ export declare const makeWith: (options: {
|
|
|
133
155
|
readonly transformJson?: boolean | undefined;
|
|
134
156
|
}) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
135
157
|
/**
|
|
158
|
+
* Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
|
|
159
|
+
*
|
|
136
160
|
* @category layers
|
|
137
|
-
* @since
|
|
161
|
+
* @since 4.0.0
|
|
138
162
|
*/
|
|
139
163
|
export declare const layerFrom: <E, R>(acquire: Effect.Effect<PgClient, E, R>) => Layer.Layer<PgClient | Client.SqlClient, E, Exclude<R, Scope.Scope | Reactivity.Reactivity>>;
|
|
140
164
|
/**
|
|
165
|
+
* Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
166
|
+
*
|
|
141
167
|
* @category layers
|
|
142
|
-
* @since
|
|
168
|
+
* @since 4.0.0
|
|
143
169
|
*/
|
|
144
170
|
export declare const layerConfig: (config: Config.Wrap<PgPoolConfig>) => Layer.Layer<PgClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
145
171
|
/**
|
|
172
|
+
* Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
173
|
+
*
|
|
146
174
|
* @category layers
|
|
147
|
-
* @since
|
|
175
|
+
* @since 4.0.0
|
|
148
176
|
*/
|
|
149
177
|
export declare const layer: (config: PgPoolConfig) => Layer.Layer<PgClient | Client.SqlClient, SqlError>;
|
|
150
178
|
/**
|
|
179
|
+
* Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
|
|
180
|
+
*
|
|
151
181
|
* @category constructor
|
|
152
|
-
* @since
|
|
182
|
+
* @since 4.0.0
|
|
153
183
|
*/
|
|
154
184
|
export declare const makeCompiler: (transform?: (_: string) => string, transformJson?: boolean) => Statement.Compiler;
|
|
155
185
|
/**
|
|
186
|
+
* PostgreSQL-specific custom statement fragments supported by the compiler, currently JSON parameter fragments.
|
|
187
|
+
*
|
|
156
188
|
* @category custom types
|
|
157
|
-
* @since
|
|
189
|
+
* @since 4.0.0
|
|
158
190
|
*/
|
|
159
191
|
export type PgCustom = PgJson;
|
|
160
192
|
/**
|
|
161
193
|
* @category custom types
|
|
162
|
-
* @since
|
|
194
|
+
* @since 4.0.0
|
|
163
195
|
*/
|
|
164
196
|
interface PgJson extends Custom<"PgJson", unknown> {
|
|
165
197
|
}
|
|
166
198
|
/**
|
|
167
199
|
* @category custom types
|
|
168
|
-
* @since
|
|
200
|
+
* @since 4.0.0
|
|
169
201
|
*/
|
|
170
202
|
declare const PgJson: (paramA: unknown, paramB: void, paramC: void) => PgJson;
|
|
171
203
|
export {};
|
package/dist/PgClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
|
package/dist/PgClient.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* PostgreSQL client implementation for Effect SQL, backed by `pg`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors for creating a scoped `PgClient` from a
|
|
5
|
+
* managed `pg` pool, a single managed `pg` client, or lower-level connection
|
|
6
|
+
* acquirers. The resulting service can be provided as both `PgClient` and the
|
|
7
|
+
* generic `SqlClient`, and is intended for application database access,
|
|
8
|
+
* migrations, transactional workflows, row streaming, JSON parameters, and
|
|
9
|
+
* PostgreSQL LISTEN/NOTIFY integration.
|
|
10
|
+
*
|
|
11
|
+
* Pool-backed clients acquire connections per operation and reserve dedicated
|
|
12
|
+
* connections for transactions and cursor streams. Clients built from one
|
|
13
|
+
* `pg.Client` serialize shared access; enable `acquireForStream` when streams
|
|
14
|
+
* or listeners need their own client instead of sharing the query connection.
|
|
15
|
+
* LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
|
|
16
|
+
* when the stream scope closes, so listeners should be scoped for as long as
|
|
17
|
+
* notifications are needed.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
3
20
|
*/
|
|
4
21
|
import * as Arr from "effect/Array";
|
|
5
22
|
import * as Cause from "effect/Cause";
|
|
@@ -26,18 +43,24 @@ import * as Pg from "pg";
|
|
|
26
43
|
import * as PgConnString from "pg-connection-string";
|
|
27
44
|
import Cursor from "pg-cursor";
|
|
28
45
|
/**
|
|
46
|
+
* Runtime type identifier used to mark `PgClient` values.
|
|
47
|
+
*
|
|
29
48
|
* @category type ids
|
|
30
|
-
* @since
|
|
49
|
+
* @since 4.0.0
|
|
31
50
|
*/
|
|
32
51
|
export const TypeId = "~@effect/sql-pg/PgClient";
|
|
33
52
|
/**
|
|
53
|
+
* Context tag used to access the `PgClient` service.
|
|
54
|
+
*
|
|
34
55
|
* @category tags
|
|
35
|
-
* @since
|
|
56
|
+
* @since 4.0.0
|
|
36
57
|
*/
|
|
37
58
|
export const PgClient = /*#__PURE__*/Context.Service("@effect/sql-pg/PgClient");
|
|
38
59
|
/**
|
|
60
|
+
* Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
|
|
61
|
+
*
|
|
39
62
|
* @category constructors
|
|
40
|
-
* @since
|
|
63
|
+
* @since 4.0.0
|
|
41
64
|
*/
|
|
42
65
|
export const make = options => fromPool({
|
|
43
66
|
...options,
|
|
@@ -83,8 +106,10 @@ export const make = options => fromPool({
|
|
|
83
106
|
})
|
|
84
107
|
});
|
|
85
108
|
/**
|
|
109
|
+
* Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
|
|
110
|
+
*
|
|
86
111
|
* @category constructors
|
|
87
|
-
* @since
|
|
112
|
+
* @since 4.0.0
|
|
88
113
|
*/
|
|
89
114
|
export const makeClient = options => fromClient({
|
|
90
115
|
...options,
|
|
@@ -125,8 +150,10 @@ export const makeClient = options => fromClient({
|
|
|
125
150
|
acquireForStream: options.acquireForStream ?? false
|
|
126
151
|
});
|
|
127
152
|
/**
|
|
153
|
+
* Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
|
|
154
|
+
*
|
|
128
155
|
* @category constructors
|
|
129
|
-
* @since
|
|
156
|
+
* @since 4.0.0
|
|
130
157
|
*/
|
|
131
158
|
export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
132
159
|
const pool = yield* options.acquire;
|
|
@@ -273,8 +300,10 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
273
300
|
});
|
|
274
301
|
});
|
|
275
302
|
/**
|
|
303
|
+
* Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
|
|
304
|
+
*
|
|
276
305
|
* @category constructors
|
|
277
|
-
* @since
|
|
306
|
+
* @since 4.0.0
|
|
278
307
|
*/
|
|
279
308
|
export const fromClient = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
280
309
|
function onError() {}
|
|
@@ -316,8 +345,10 @@ export const fromClient = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
316
345
|
});
|
|
317
346
|
});
|
|
318
347
|
/**
|
|
348
|
+
* Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
|
|
349
|
+
*
|
|
319
350
|
* @category constructors
|
|
320
|
-
* @since
|
|
351
|
+
* @since 4.0.0
|
|
321
352
|
*/
|
|
322
353
|
export const makeWith = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
323
354
|
const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
|
|
@@ -457,23 +488,31 @@ const makeCancel = (pool, client) => {
|
|
|
457
488
|
return eff;
|
|
458
489
|
};
|
|
459
490
|
/**
|
|
491
|
+
* Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
|
|
492
|
+
*
|
|
460
493
|
* @category layers
|
|
461
|
-
* @since
|
|
494
|
+
* @since 4.0.0
|
|
462
495
|
*/
|
|
463
496
|
export const layerFrom = acquire => Layer.effectContext(Effect.map(acquire, client => Context.make(PgClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
|
|
464
497
|
/**
|
|
498
|
+
* Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
499
|
+
*
|
|
465
500
|
* @category layers
|
|
466
|
-
* @since
|
|
501
|
+
* @since 4.0.0
|
|
467
502
|
*/
|
|
468
|
-
export const layerConfig = config => layerFrom(Effect.flatMap(Config.unwrap(config)
|
|
503
|
+
export const layerConfig = config => layerFrom(Effect.flatMap(Config.unwrap(config), make));
|
|
469
504
|
/**
|
|
505
|
+
* Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
506
|
+
*
|
|
470
507
|
* @category layers
|
|
471
|
-
* @since
|
|
508
|
+
* @since 4.0.0
|
|
472
509
|
*/
|
|
473
510
|
export const layer = config => layerFrom(make(config));
|
|
474
511
|
/**
|
|
512
|
+
* Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
|
|
513
|
+
*
|
|
475
514
|
* @category constructor
|
|
476
|
-
* @since
|
|
515
|
+
* @since 4.0.0
|
|
477
516
|
*/
|
|
478
517
|
export const makeCompiler = (transform, transformJson = true) => {
|
|
479
518
|
const transformValue = transformJson && transform ? Statement.defaultTransforms(transform).value : undefined;
|
|
@@ -501,7 +540,7 @@ export const makeCompiler = (transform, transformJson = true) => {
|
|
|
501
540
|
const escape = /*#__PURE__*/Statement.defaultEscape("\"");
|
|
502
541
|
/**
|
|
503
542
|
* @category custom types
|
|
504
|
-
* @since
|
|
543
|
+
* @since 4.0.0
|
|
505
544
|
*/
|
|
506
545
|
const PgJson = /*#__PURE__*/Statement.custom("PgJson");
|
|
507
546
|
const ATTR_DB_SYSTEM_NAME = "db.system.name";
|
package/dist/PgClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Context","Duration","Effect","Fiber","Layer","Number","Option","Queue","RcRef","Redacted","Scope","Semaphore","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","StatementTimeoutError","UniqueViolation","UnknownError","Statement","Pg","PgConnString","Cursor","TypeId","PgClient","Service","make","options","fromPool","acquire","gen","pool","Pool","connectionString","url","value","undefined","user","username","host","database","password","ssl","port","stream","connectionTimeoutMillis","connectTimeout","toMillis","fromInputUnsafe","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","reason","classifyError","promise","end","pipe","timeoutOption","interruptible","timeoutOrElse","duration","seconds","orElse","fail","Error","message","operation","makeClient","fromClient","client","acquireForStream","fnUntraced","makeConection","ConnectionImpl","runWithClient","f","callback","resume","makeCancel","done","cancel","onError","cleanup","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","succeed","reserveRaw","fiber","getCurrent","scope","getUnsafe","context","cause_","err","as","addFinalizer","reserve","map","onListenClientError","_","listenAcquirer","config","parsed","parse","getOrUndefined","makeWith","acquirer","transactionAcquirer","get","spanAttributes","transformResultNames","transformQueryNames","transformJson","acquireWithErrorHandler","tap","semaphore","makeUnsafe","streamClient","take","connection","withPermit","compiler","makeCompiler","transformRows","defaultTransforms","array","Object","assign","entries","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","json","fragment","PgJson","listen","channel","queue","onNotification","msg","payload","offerUnsafe","escapeIdentifier","notify","asVoid","scoped","flatMap","conn","executeRaw","constructor","run","params","result","Array","isArray","r","rows","execute","sql","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","fromChannel","fromTransform","provide","cursor","close","read","isArrayNonEmpty","cancelEffects","WeakMap","has","processId","processID","ending","set","layerFrom","effectContext","add","SqlClient","layer","layerConfig","unwrap","asEffect","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","paramA","defaultEscape","custom","pgCodeFromCause","code","pgConstraintFromCause","constraint","normalized","trim","length","props","startsWith"],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Context","Duration","Effect","Fiber","Layer","Number","Option","Queue","RcRef","Redacted","Scope","Semaphore","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","StatementTimeoutError","UniqueViolation","UnknownError","Statement","Pg","PgConnString","Cursor","TypeId","PgClient","Service","make","options","fromPool","acquire","gen","pool","Pool","connectionString","url","value","undefined","user","username","host","database","password","ssl","port","stream","connectionTimeoutMillis","connectTimeout","toMillis","fromInputUnsafe","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","reason","classifyError","promise","end","pipe","timeoutOption","interruptible","timeoutOrElse","duration","seconds","orElse","fail","Error","message","operation","makeClient","fromClient","client","acquireForStream","fnUntraced","makeConection","ConnectionImpl","runWithClient","f","callback","resume","makeCancel","done","cancel","onError","cleanup","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","succeed","reserveRaw","fiber","getCurrent","scope","getUnsafe","context","cause_","err","as","addFinalizer","reserve","map","onListenClientError","_","listenAcquirer","config","parsed","parse","getOrUndefined","makeWith","acquirer","transactionAcquirer","get","spanAttributes","transformResultNames","transformQueryNames","transformJson","acquireWithErrorHandler","tap","semaphore","makeUnsafe","streamClient","take","connection","withPermit","compiler","makeCompiler","transformRows","defaultTransforms","array","Object","assign","entries","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","json","fragment","PgJson","listen","channel","queue","onNotification","msg","payload","offerUnsafe","escapeIdentifier","notify","asVoid","scoped","flatMap","conn","executeRaw","constructor","run","params","result","Array","isArray","r","rows","execute","sql","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","fromChannel","fromTransform","provide","cursor","close","read","isArrayNonEmpty","cancelEffects","WeakMap","has","processId","processID","ending","set","layerFrom","effectContext","add","SqlClient","layer","layerConfig","unwrap","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","paramA","defaultEscape","custom","pgCodeFromCause","code","pgConstraintFromCause","constraint","normalized","trim","length","props","startsWith"],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/PgMigrator.d.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to PostgreSQL databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers for applying ordered migrations through
|
|
6
|
+
* the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
|
|
7
|
+
* application startup, during deployment, in integration tests that provision a
|
|
8
|
+
* temporary PostgreSQL database, or in layer graphs that must prepare the
|
|
9
|
+
* schema before dependent services are acquired.
|
|
10
|
+
*
|
|
11
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
12
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
13
|
+
* with an id greater than the latest recorded id are applied, so concurrent
|
|
14
|
+
* application instances should coordinate startup against the same database and
|
|
15
|
+
* avoid racing to install the same changes. When `schemaDirectory` is enabled,
|
|
16
|
+
* this adapter shells out to `pg_dump` using the active `PgClient`
|
|
17
|
+
* configuration, so `pg_dump` must be available on `PATH` and the layer must
|
|
18
|
+
* provide child process, filesystem, and path services. The generated dumps
|
|
19
|
+
* intentionally strip comments, session settings, ownership, and privilege
|
|
20
|
+
* statements to keep schema snapshots portable across PostgreSQL environments.
|
|
21
|
+
*
|
|
22
|
+
* @since 4.0.0
|
|
3
23
|
*/
|
|
4
24
|
import * as Effect from "effect/Effect";
|
|
5
25
|
import * as FileSystem from "effect/FileSystem";
|
|
@@ -11,17 +31,21 @@ import type { SqlClient } from "effect/unstable/sql/SqlClient";
|
|
|
11
31
|
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
12
32
|
import { PgClient } from "./PgClient.ts";
|
|
13
33
|
/**
|
|
14
|
-
* @since
|
|
34
|
+
* @since 4.0.0
|
|
15
35
|
*/
|
|
16
36
|
export * from "effect/unstable/sql/Migrator";
|
|
17
37
|
/**
|
|
38
|
+
* Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
|
|
39
|
+
*
|
|
18
40
|
* @category constructor
|
|
19
|
-
* @since
|
|
41
|
+
* @since 4.0.0
|
|
20
42
|
*/
|
|
21
43
|
export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R2>;
|
|
22
44
|
/**
|
|
45
|
+
* Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
|
|
46
|
+
*
|
|
23
47
|
* @category layers
|
|
24
|
-
* @since
|
|
48
|
+
* @since 4.0.0
|
|
25
49
|
*/
|
|
26
50
|
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R>;
|
|
27
51
|
//# sourceMappingURL=PgMigrator.d.ts.map
|
package/dist/PgMigrator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,KAAK,mBAAmB,MAAM,6CAA6C,CAAA;AAClF,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,EAAE,CAwDJ,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,CAAC,CACiC,CAAA"}
|
package/dist/PgMigrator.js
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to PostgreSQL databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers for applying ordered migrations through
|
|
6
|
+
* the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
|
|
7
|
+
* application startup, during deployment, in integration tests that provision a
|
|
8
|
+
* temporary PostgreSQL database, or in layer graphs that must prepare the
|
|
9
|
+
* schema before dependent services are acquired.
|
|
10
|
+
*
|
|
11
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
12
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
13
|
+
* with an id greater than the latest recorded id are applied, so concurrent
|
|
14
|
+
* application instances should coordinate startup against the same database and
|
|
15
|
+
* avoid racing to install the same changes. When `schemaDirectory` is enabled,
|
|
16
|
+
* this adapter shells out to `pg_dump` using the active `PgClient`
|
|
17
|
+
* configuration, so `pg_dump` must be available on `PATH` and the layer must
|
|
18
|
+
* provide child process, filesystem, and path services. The generated dumps
|
|
19
|
+
* intentionally strip comments, session settings, ownership, and privilege
|
|
20
|
+
* statements to keep schema snapshots portable across PostgreSQL environments.
|
|
21
|
+
*
|
|
22
|
+
* @since 4.0.0
|
|
3
23
|
*/
|
|
4
24
|
import * as Effect from "effect/Effect";
|
|
5
25
|
import * as FileSystem from "effect/FileSystem";
|
|
@@ -11,12 +31,14 @@ import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawne
|
|
|
11
31
|
import * as Migrator from "effect/unstable/sql/Migrator";
|
|
12
32
|
import { PgClient } from "./PgClient.js";
|
|
13
33
|
/**
|
|
14
|
-
* @since
|
|
34
|
+
* @since 4.0.0
|
|
15
35
|
*/
|
|
16
36
|
export * from "effect/unstable/sql/Migrator";
|
|
17
37
|
/**
|
|
38
|
+
* Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
|
|
39
|
+
*
|
|
18
40
|
* @category constructor
|
|
19
|
-
* @since
|
|
41
|
+
* @since 4.0.0
|
|
20
42
|
*/
|
|
21
43
|
export const run = /*#__PURE__*/Migrator.make({
|
|
22
44
|
dumpSchema(path, table) {
|
|
@@ -60,8 +82,10 @@ export const run = /*#__PURE__*/Migrator.make({
|
|
|
60
82
|
}
|
|
61
83
|
});
|
|
62
84
|
/**
|
|
85
|
+
* Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
|
|
86
|
+
*
|
|
63
87
|
* @category layers
|
|
64
|
-
* @since
|
|
88
|
+
* @since 4.0.0
|
|
65
89
|
*/
|
|
66
90
|
export const layer = options => Layer.effectDiscard(run(options));
|
|
67
91
|
//# sourceMappingURL=PgMigrator.js.map
|
package/dist/PgMigrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgMigrator.js","names":["Effect","FileSystem","Layer","Path","Redacted","ChildProcess","ChildProcessSpawner","Migrator","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","sql","spawner","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","pipe","string","replace","trim","mapError","error","MigrationError","kind","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PgMigrator.js","names":["Effect","FileSystem","Layer","Path","Redacted","ChildProcess","ChildProcessSpawner","Migrator","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","sql","spawner","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","pipe","string","replace","trim","mapError","error","MigrationError","kind","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* @since
|
|
5
|
+
* @since 4.0.0
|
|
6
6
|
*/
|
|
7
7
|
export * as PgClient from "./PgClient.ts";
|
|
8
8
|
/**
|
|
9
|
-
* @since
|
|
9
|
+
* @since 4.0.0
|
|
10
10
|
*/
|
|
11
11
|
export * as PgMigrator from "./PgMigrator.ts";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
5
5
|
/**
|
|
6
|
-
* @since
|
|
6
|
+
* @since 4.0.0
|
|
7
7
|
*/
|
|
8
8
|
export * as PgClient from "./PgClient.js";
|
|
9
9
|
/**
|
|
10
|
-
* @since
|
|
10
|
+
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as PgMigrator from "./PgMigrator.js";
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-pg",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.67",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A PostgreSQL toolkit for Effect",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"@testcontainers/postgresql": "^11.14.0",
|
|
47
47
|
"@types/pg": "^8.20.0",
|
|
48
48
|
"@types/pg-cursor": "^2.7.2",
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
49
|
+
"effect": "^4.0.0-beta.67"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"effect": "^4.0.0-beta.
|
|
52
|
+
"effect": "^4.0.0-beta.67"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"pg": "^8.20.0",
|
package/src/PgClient.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* PostgreSQL client implementation for Effect SQL, backed by `pg`.
|
|
3
|
+
*
|
|
4
|
+
* This module exposes constructors for creating a scoped `PgClient` from a
|
|
5
|
+
* managed `pg` pool, a single managed `pg` client, or lower-level connection
|
|
6
|
+
* acquirers. The resulting service can be provided as both `PgClient` and the
|
|
7
|
+
* generic `SqlClient`, and is intended for application database access,
|
|
8
|
+
* migrations, transactional workflows, row streaming, JSON parameters, and
|
|
9
|
+
* PostgreSQL LISTEN/NOTIFY integration.
|
|
10
|
+
*
|
|
11
|
+
* Pool-backed clients acquire connections per operation and reserve dedicated
|
|
12
|
+
* connections for transactions and cursor streams. Clients built from one
|
|
13
|
+
* `pg.Client` serialize shared access; enable `acquireForStream` when streams
|
|
14
|
+
* or listeners need their own client instead of sharing the query connection.
|
|
15
|
+
* LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
|
|
16
|
+
* when the stream scope closes, so listeners should be scoped for as long as
|
|
17
|
+
* notifications are needed.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
3
20
|
*/
|
|
4
21
|
import * as Arr from "effect/Array"
|
|
5
22
|
import * as Cause from "effect/Cause"
|
|
@@ -45,20 +62,26 @@ import * as PgConnString from "pg-connection-string"
|
|
|
45
62
|
import Cursor from "pg-cursor"
|
|
46
63
|
|
|
47
64
|
/**
|
|
65
|
+
* Runtime type identifier used to mark `PgClient` values.
|
|
66
|
+
*
|
|
48
67
|
* @category type ids
|
|
49
|
-
* @since
|
|
68
|
+
* @since 4.0.0
|
|
50
69
|
*/
|
|
51
70
|
export const TypeId: TypeId = "~@effect/sql-pg/PgClient"
|
|
52
71
|
|
|
53
72
|
/**
|
|
73
|
+
* Type-level identifier used to mark `PgClient` values.
|
|
74
|
+
*
|
|
54
75
|
* @category type ids
|
|
55
|
-
* @since
|
|
76
|
+
* @since 4.0.0
|
|
56
77
|
*/
|
|
57
78
|
export type TypeId = "~@effect/sql-pg/PgClient"
|
|
58
79
|
|
|
59
80
|
/**
|
|
81
|
+
* PostgreSQL client service, extending `SqlClient` with JSON parameter fragments and LISTEN/NOTIFY helpers.
|
|
82
|
+
*
|
|
60
83
|
* @category models
|
|
61
|
-
* @since
|
|
84
|
+
* @since 4.0.0
|
|
62
85
|
*/
|
|
63
86
|
export interface PgClient extends Client.SqlClient {
|
|
64
87
|
readonly [TypeId]: TypeId
|
|
@@ -69,14 +92,18 @@ export interface PgClient extends Client.SqlClient {
|
|
|
69
92
|
}
|
|
70
93
|
|
|
71
94
|
/**
|
|
95
|
+
* Context tag used to access the `PgClient` service.
|
|
96
|
+
*
|
|
72
97
|
* @category tags
|
|
73
|
-
* @since
|
|
98
|
+
* @since 4.0.0
|
|
74
99
|
*/
|
|
75
100
|
export const PgClient = Context.Service<PgClient>("@effect/sql-pg/PgClient")
|
|
76
101
|
|
|
77
102
|
/**
|
|
103
|
+
* Configuration for a PostgreSQL client, including connection, TLS, custom stream, application name, type parser, JSON transform, and query/result name transform options.
|
|
104
|
+
*
|
|
78
105
|
* @category constructors
|
|
79
|
-
* @since
|
|
106
|
+
* @since 4.0.0
|
|
80
107
|
*/
|
|
81
108
|
export interface PgClientConfig {
|
|
82
109
|
readonly url?: Redacted.Redacted | undefined
|
|
@@ -103,8 +130,10 @@ export interface PgClientConfig {
|
|
|
103
130
|
}
|
|
104
131
|
|
|
105
132
|
/**
|
|
133
|
+
* PostgreSQL pool configuration, extending `PgClientConfig` with idle timeout, pool size, and connection lifetime settings.
|
|
134
|
+
*
|
|
106
135
|
* @category constructors
|
|
107
|
-
* @since
|
|
136
|
+
* @since 4.0.0
|
|
108
137
|
*/
|
|
109
138
|
export interface PgPoolConfig extends PgClientConfig {
|
|
110
139
|
readonly idleTimeout?: Duration.Input | undefined
|
|
@@ -115,8 +144,10 @@ export interface PgPoolConfig extends PgClientConfig {
|
|
|
115
144
|
}
|
|
116
145
|
|
|
117
146
|
/**
|
|
147
|
+
* Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
|
|
148
|
+
*
|
|
118
149
|
* @category constructors
|
|
119
|
-
* @since
|
|
150
|
+
* @since 4.0.0
|
|
120
151
|
*/
|
|
121
152
|
export const make = (options: PgPoolConfig): Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity> =>
|
|
122
153
|
fromPool({
|
|
@@ -179,8 +210,10 @@ export const make = (options: PgPoolConfig): Effect.Effect<PgClient, SqlError, S
|
|
|
179
210
|
})
|
|
180
211
|
|
|
181
212
|
/**
|
|
213
|
+
* Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
|
|
214
|
+
*
|
|
182
215
|
* @category constructors
|
|
183
|
-
* @since
|
|
216
|
+
* @since 4.0.0
|
|
184
217
|
*/
|
|
185
218
|
export const makeClient = (
|
|
186
219
|
options: PgClientConfig & {
|
|
@@ -237,8 +270,10 @@ export const makeClient = (
|
|
|
237
270
|
})
|
|
238
271
|
|
|
239
272
|
/**
|
|
273
|
+
* Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
|
|
274
|
+
*
|
|
240
275
|
* @category constructors
|
|
241
|
-
* @since
|
|
276
|
+
* @since 4.0.0
|
|
242
277
|
*/
|
|
243
278
|
export const fromPool = Effect.fnUntraced(function*(
|
|
244
279
|
options: {
|
|
@@ -439,8 +474,10 @@ export const fromPool = Effect.fnUntraced(function*(
|
|
|
439
474
|
})
|
|
440
475
|
|
|
441
476
|
/**
|
|
477
|
+
* Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
|
|
478
|
+
*
|
|
442
479
|
* @category constructors
|
|
443
|
-
* @since
|
|
480
|
+
* @since 4.0.0
|
|
444
481
|
*/
|
|
445
482
|
export const fromClient = Effect.fnUntraced(function*(
|
|
446
483
|
options: {
|
|
@@ -513,8 +550,10 @@ export const fromClient = Effect.fnUntraced(function*(
|
|
|
513
550
|
})
|
|
514
551
|
|
|
515
552
|
/**
|
|
553
|
+
* Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
|
|
554
|
+
*
|
|
516
555
|
* @category constructors
|
|
517
|
-
* @since
|
|
556
|
+
* @since 4.0.0
|
|
518
557
|
*/
|
|
519
558
|
export const makeWith = Effect.fnUntraced(function*(
|
|
520
559
|
options: {
|
|
@@ -727,8 +766,10 @@ const makeCancel = (pool: Pg.Pool, client: Pg.PoolClient) => {
|
|
|
727
766
|
}
|
|
728
767
|
|
|
729
768
|
/**
|
|
769
|
+
* Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
|
|
770
|
+
*
|
|
730
771
|
* @category layers
|
|
731
|
-
* @since
|
|
772
|
+
* @since 4.0.0
|
|
732
773
|
*/
|
|
733
774
|
export const layerFrom = <E, R>(
|
|
734
775
|
acquire: Effect.Effect<PgClient, E, R>
|
|
@@ -741,8 +782,10 @@ export const layerFrom = <E, R>(
|
|
|
741
782
|
).pipe(Layer.provide(Reactivity.layer)) as any
|
|
742
783
|
|
|
743
784
|
/**
|
|
785
|
+
* Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
786
|
+
*
|
|
744
787
|
* @category layers
|
|
745
|
-
* @since
|
|
788
|
+
* @since 4.0.0
|
|
746
789
|
*/
|
|
747
790
|
export const layerConfig: (
|
|
748
791
|
config: Config.Wrap<PgPoolConfig>
|
|
@@ -750,21 +793,25 @@ export const layerConfig: (
|
|
|
750
793
|
config: Config.Wrap<PgPoolConfig>
|
|
751
794
|
): Layer.Layer<PgClient | Client.SqlClient, Config.ConfigError | SqlError> =>
|
|
752
795
|
layerFrom(Effect.flatMap(
|
|
753
|
-
Config.unwrap(config)
|
|
796
|
+
Config.unwrap(config),
|
|
754
797
|
make
|
|
755
798
|
))
|
|
756
799
|
|
|
757
800
|
/**
|
|
801
|
+
* Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
|
|
802
|
+
*
|
|
758
803
|
* @category layers
|
|
759
|
-
* @since
|
|
804
|
+
* @since 4.0.0
|
|
760
805
|
*/
|
|
761
806
|
export const layer = (
|
|
762
807
|
config: PgPoolConfig
|
|
763
808
|
): Layer.Layer<PgClient | Client.SqlClient, SqlError> => layerFrom(make(config))
|
|
764
809
|
|
|
765
810
|
/**
|
|
811
|
+
* Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
|
|
812
|
+
*
|
|
766
813
|
* @category constructor
|
|
767
|
-
* @since
|
|
814
|
+
* @since 4.0.0
|
|
768
815
|
*/
|
|
769
816
|
export const makeCompiler = (
|
|
770
817
|
transform?: (_: string) => string,
|
|
@@ -812,19 +859,21 @@ export const makeCompiler = (
|
|
|
812
859
|
const escape = Statement.defaultEscape("\"")
|
|
813
860
|
|
|
814
861
|
/**
|
|
862
|
+
* PostgreSQL-specific custom statement fragments supported by the compiler, currently JSON parameter fragments.
|
|
863
|
+
*
|
|
815
864
|
* @category custom types
|
|
816
|
-
* @since
|
|
865
|
+
* @since 4.0.0
|
|
817
866
|
*/
|
|
818
867
|
export type PgCustom = PgJson
|
|
819
868
|
|
|
820
869
|
/**
|
|
821
870
|
* @category custom types
|
|
822
|
-
* @since
|
|
871
|
+
* @since 4.0.0
|
|
823
872
|
*/
|
|
824
873
|
interface PgJson extends Custom<"PgJson", unknown> {}
|
|
825
874
|
/**
|
|
826
875
|
* @category custom types
|
|
827
|
-
* @since
|
|
876
|
+
* @since 4.0.0
|
|
828
877
|
*/
|
|
829
878
|
const PgJson = Statement.custom<PgJson>("PgJson")
|
|
830
879
|
|
package/src/PgMigrator.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for applying Effect SQL migrations to PostgreSQL databases.
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports the shared `Migrator` loaders and error types, then
|
|
5
|
+
* provides `run` and `layer` helpers for applying ordered migrations through
|
|
6
|
+
* the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
|
|
7
|
+
* application startup, during deployment, in integration tests that provision a
|
|
8
|
+
* temporary PostgreSQL database, or in layer graphs that must prepare the
|
|
9
|
+
* schema before dependent services are acquired.
|
|
10
|
+
*
|
|
11
|
+
* Migrations are recorded in `effect_sql_migrations` by default and are loaded
|
|
12
|
+
* using the shared `<id>_<name>` file or record-key convention. Only migrations
|
|
13
|
+
* with an id greater than the latest recorded id are applied, so concurrent
|
|
14
|
+
* application instances should coordinate startup against the same database and
|
|
15
|
+
* avoid racing to install the same changes. When `schemaDirectory` is enabled,
|
|
16
|
+
* this adapter shells out to `pg_dump` using the active `PgClient`
|
|
17
|
+
* configuration, so `pg_dump` must be available on `PATH` and the layer must
|
|
18
|
+
* provide child process, filesystem, and path services. The generated dumps
|
|
19
|
+
* intentionally strip comments, session settings, ownership, and privilege
|
|
20
|
+
* statements to keep schema snapshots portable across PostgreSQL environments.
|
|
21
|
+
*
|
|
22
|
+
* @since 4.0.0
|
|
3
23
|
*/
|
|
4
24
|
import * as Effect from "effect/Effect"
|
|
5
25
|
import * as FileSystem from "effect/FileSystem"
|
|
@@ -14,13 +34,15 @@ import type { SqlError } from "effect/unstable/sql/SqlError"
|
|
|
14
34
|
import { PgClient } from "./PgClient.ts"
|
|
15
35
|
|
|
16
36
|
/**
|
|
17
|
-
* @since
|
|
37
|
+
* @since 4.0.0
|
|
18
38
|
*/
|
|
19
39
|
export * from "effect/unstable/sql/Migrator"
|
|
20
40
|
|
|
21
41
|
/**
|
|
42
|
+
* Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
|
|
43
|
+
*
|
|
22
44
|
* @category constructor
|
|
23
|
-
* @since
|
|
45
|
+
* @since 4.0.0
|
|
24
46
|
*/
|
|
25
47
|
export const run: <R2 = never>(
|
|
26
48
|
options: Migrator.MigratorOptions<R2>
|
|
@@ -91,8 +113,10 @@ export const run: <R2 = never>(
|
|
|
91
113
|
})
|
|
92
114
|
|
|
93
115
|
/**
|
|
116
|
+
* Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
|
|
117
|
+
*
|
|
94
118
|
* @category layers
|
|
95
|
-
* @since
|
|
119
|
+
* @since 4.0.0
|
|
96
120
|
*/
|
|
97
121
|
export const layer = <R>(
|
|
98
122
|
options: Migrator.MigratorOptions<R>
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
2
|
+
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @since
|
|
8
|
+
* @since 4.0.0
|
|
9
9
|
*/
|
|
10
10
|
export * as PgClient from "./PgClient.ts"
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* @since
|
|
13
|
+
* @since 4.0.0
|
|
14
14
|
*/
|
|
15
15
|
export * as PgMigrator from "./PgMigrator.ts"
|