@effect/sql-pg 0.50.2 → 4.0.0-beta.0

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.
@@ -1,20 +1,16 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Reactivity from "@effect/experimental/Reactivity";
5
- import * as Client from "@effect/sql/SqlClient";
6
- import { SqlError } from "@effect/sql/SqlError";
7
- import type { Custom, Fragment } from "@effect/sql/Statement";
8
- import * as Statement from "@effect/sql/Statement";
9
1
  import * as Config from "effect/Config";
10
- import type * as ConfigError from "effect/ConfigError";
11
- import * as Context from "effect/Context";
12
2
  import * as Duration from "effect/Duration";
13
3
  import * as Effect from "effect/Effect";
14
4
  import * as Layer from "effect/Layer";
15
5
  import * as Redacted from "effect/Redacted";
16
6
  import * as Scope from "effect/Scope";
7
+ import * as ServiceMap from "effect/ServiceMap";
17
8
  import * as Stream from "effect/Stream";
9
+ import * as Reactivity from "effect/unstable/reactivity/Reactivity";
10
+ import * as Client from "effect/unstable/sql/SqlClient";
11
+ import { SqlError } from "effect/unstable/sql/SqlError";
12
+ import type { Custom, Fragment } from "effect/unstable/sql/Statement";
13
+ import * as Statement from "effect/unstable/sql/Statement";
18
14
  import type { Duplex } from "node:stream";
19
15
  import type { ConnectionOptions } from "node:tls";
20
16
  import * as Pg from "pg";
@@ -43,7 +39,7 @@ export interface PgClient extends Client.SqlClient {
43
39
  * @category tags
44
40
  * @since 1.0.0
45
41
  */
46
- export declare const PgClient: Context.Tag<PgClient, PgClient>;
42
+ export declare const PgClient: ServiceMap.Service<PgClient, PgClient>;
47
43
  /**
48
44
  * @category constructors
49
45
  * @since 1.0.0
@@ -75,16 +71,42 @@ export interface PgClientConfig {
75
71
  * @since 1.0.0
76
72
  */
77
73
  export declare const make: (options: PgClientConfig) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
74
+ /**
75
+ * @category constructors
76
+ * @since 1.0.0
77
+ */
78
+ export declare const fromPool: (options: {
79
+ readonly acquire: Effect.Effect<Pg.Pool, SqlError, Scope.Scope>;
80
+ readonly applicationName?: string | undefined;
81
+ readonly spanAttributes?: Record<string, unknown> | undefined;
82
+ readonly transformResultNames?: ((str: string) => string) | undefined;
83
+ readonly transformQueryNames?: ((str: string) => string) | undefined;
84
+ readonly transformJson?: boolean | undefined;
85
+ readonly types?: Pg.CustomTypesConfig | undefined;
86
+ }) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
78
87
  /**
79
88
  * @category layers
80
89
  * @since 1.0.0
81
90
  */
82
- export declare const layerConfig: (config: Config.Config.Wrap<PgClientConfig>) => Layer.Layer<PgClient | Client.SqlClient, ConfigError.ConfigError | SqlError>;
91
+ export declare const layerConfig: (config: Config.Wrap<PgClientConfig>) => Layer.Layer<PgClient | Client.SqlClient, Config.ConfigError | SqlError>;
83
92
  /**
84
93
  * @category layers
85
94
  * @since 1.0.0
86
95
  */
87
96
  export declare const layer: (config: PgClientConfig) => Layer.Layer<PgClient | Client.SqlClient, SqlError>;
97
+ /**
98
+ * @category layers
99
+ * @since 1.0.0
100
+ */
101
+ export declare const layerFromPool: (options: {
102
+ readonly acquire: Effect.Effect<Pg.Pool, SqlError, Scope.Scope>;
103
+ readonly applicationName?: string | undefined;
104
+ readonly spanAttributes?: Record<string, unknown> | undefined;
105
+ readonly transformResultNames?: ((str: string) => string) | undefined;
106
+ readonly transformQueryNames?: ((str: string) => string) | undefined;
107
+ readonly transformJson?: boolean | undefined;
108
+ readonly types?: Pg.CustomTypesConfig | undefined;
109
+ }) => Layer.Layer<PgClient | Client.SqlClient, SqlError>;
88
110
  /**
89
111
  * @category constructor
90
112
  * @since 1.0.0
@@ -105,6 +127,6 @@ interface PgJson extends Custom<"PgJson", unknown> {
105
127
  * @category custom types
106
128
  * @since 1.0.0
107
129
  */
108
- declare const PgJson: (i0: unknown, i1: void, i2: void) => Fragment;
130
+ declare const PgJson: (paramA: unknown, paramB: void, paramC: void) => PgJson;
109
131
  export {};
110
132
  //# sourceMappingURL=PgClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,25 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import * as Reactivity from "@effect/experimental/Reactivity";
5
- import * as Client from "@effect/sql/SqlClient";
6
- import { SqlError } from "@effect/sql/SqlError";
7
- import * as Statement from "@effect/sql/Statement";
8
4
  import * as Arr from "effect/Array";
9
- import * as Chunk from "effect/Chunk";
5
+ import * as Cause from "effect/Cause";
6
+ import * as Channel from "effect/Channel";
10
7
  import * as Config from "effect/Config";
11
- import * as Context from "effect/Context";
12
8
  import * as Duration from "effect/Duration";
13
9
  import * as Effect from "effect/Effect";
14
10
  import * as Fiber from "effect/Fiber";
15
11
  import * as Layer from "effect/Layer";
16
12
  import * as Number from "effect/Number";
17
- import * as Option from "effect/Option";
13
+ import * as Queue from "effect/Queue";
18
14
  import * as RcRef from "effect/RcRef";
19
15
  import * as Redacted from "effect/Redacted";
20
16
  import * as Scope from "effect/Scope";
17
+ import * as ServiceMap from "effect/ServiceMap";
21
18
  import * as Stream from "effect/Stream";
19
+ import * as Reactivity from "effect/unstable/reactivity/Reactivity";
20
+ import * as Client from "effect/unstable/sql/SqlClient";
21
+ import { SqlError } from "effect/unstable/sql/SqlError";
22
+ import * as Statement from "effect/unstable/sql/Statement";
22
23
  import * as Pg from "pg";
23
24
  import * as PgConnString from "pg-connection-string";
24
25
  import Cursor from "pg-cursor";
@@ -35,45 +36,58 @@ export const TypeId = "~@effect/sql-pg/PgClient";
35
36
  * @category tags
36
37
  * @since 1.0.0
37
38
  */
38
- export const PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/PgClient");
39
+ export const PgClient = /*#__PURE__*/ServiceMap.Service("@effect/sql-pg/PgClient");
39
40
  /**
40
41
  * @category constructors
41
42
  * @since 1.0.0
42
43
  */
43
- export const make = options => Effect.gen(function* () {
44
+ export const make = options => fromPool({
45
+ ...options,
46
+ acquire: Effect.gen(function* () {
47
+ const pool = new Pg.Pool({
48
+ connectionString: options.url ? Redacted.value(options.url) : undefined,
49
+ user: options.username,
50
+ host: options.host,
51
+ database: options.database,
52
+ password: options.password ? Redacted.value(options.password) : undefined,
53
+ ssl: options.ssl,
54
+ port: options.port,
55
+ ...(options.stream ? {
56
+ stream: options.stream
57
+ } : {}),
58
+ connectionTimeoutMillis: options.connectTimeout ? Duration.toMillis(Duration.fromDurationInputUnsafe(options.connectTimeout)) : undefined,
59
+ idleTimeoutMillis: options.idleTimeout ? Duration.toMillis(Duration.fromDurationInputUnsafe(options.idleTimeout)) : undefined,
60
+ max: options.maxConnections,
61
+ min: options.minConnections,
62
+ maxLifetimeSeconds: options.connectionTTL ? Duration.toSeconds(Duration.fromDurationInputUnsafe(options.connectionTTL)) : undefined,
63
+ application_name: options.applicationName ?? "@effect/sql-pg",
64
+ types: options.types
65
+ });
66
+ pool.on("error", _err => {});
67
+ yield* Effect.acquireRelease(Effect.tryPromise({
68
+ try: () => pool.query("SELECT 1"),
69
+ catch: cause => new SqlError({
70
+ cause,
71
+ message: "PgClient: Failed to connect"
72
+ })
73
+ }), () => Effect.promise(() => pool.end()).pipe(Effect.timeoutOption(1000))).pipe(Effect.timeoutOrElse({
74
+ duration: options.connectTimeout ?? Duration.seconds(5),
75
+ onTimeout: () => Effect.fail(new SqlError({
76
+ cause: new Error("Connection timed out"),
77
+ message: "PgClient: Connection timed out"
78
+ }))
79
+ }));
80
+ return pool;
81
+ })
82
+ });
83
+ /**
84
+ * @category constructors
85
+ * @since 1.0.0
86
+ */
87
+ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
44
88
  const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
45
89
  const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames, options.transformJson).array : undefined;
46
- const pool = new Pg.Pool({
47
- connectionString: options.url ? Redacted.value(options.url) : undefined,
48
- user: options.username,
49
- host: options.host,
50
- database: options.database,
51
- password: options.password ? Redacted.value(options.password) : undefined,
52
- ssl: options.ssl,
53
- port: options.port,
54
- stream: options.stream,
55
- connectionTimeoutMillis: options.connectTimeout ? Duration.toMillis(options.connectTimeout) : undefined,
56
- idleTimeoutMillis: options.idleTimeout ? Duration.toMillis(options.idleTimeout) : undefined,
57
- max: options.maxConnections,
58
- min: options.minConnections,
59
- maxLifetimeSeconds: options.connectionTTL ? Duration.toSeconds(options.connectionTTL) : undefined,
60
- application_name: options.applicationName ?? "@effect/sql-pg",
61
- types: options.types
62
- });
63
- pool.on("error", _err => {});
64
- yield* Effect.acquireRelease(Effect.tryPromise({
65
- try: () => pool.query("SELECT 1"),
66
- catch: cause => new SqlError({
67
- cause,
68
- message: "PgClient: Failed to connect"
69
- })
70
- }), () => Effect.promise(() => pool.end()).pipe(Effect.interruptible, Effect.timeoutOption(1000))).pipe(Effect.timeoutFail({
71
- duration: options.connectTimeout ?? Duration.seconds(5),
72
- onTimeout: () => new SqlError({
73
- cause: new Error("Connection timed out"),
74
- message: "PgClient: Connection timed out"
75
- })
76
- }));
90
+ const pool = yield* options.acquire;
77
91
  class ConnectionImpl {
78
92
  pg;
79
93
  constructor(pg) {
@@ -81,12 +95,12 @@ export const make = options => Effect.gen(function* () {
81
95
  }
82
96
  runWithClient(f) {
83
97
  if (this.pg !== undefined) {
84
- return Effect.async(resume => {
98
+ return Effect.callback(resume => {
85
99
  f(this.pg, resume);
86
100
  return makeCancel(pool, this.pg);
87
101
  });
88
102
  }
89
- return Effect.async(resume => {
103
+ return Effect.callback(resume => {
90
104
  let done = false;
91
105
  let cancel = undefined;
92
106
  let client = undefined;
@@ -191,72 +205,75 @@ export const make = options => Effect.gen(function* () {
191
205
  return this.execute(sql, params, transformRows);
192
206
  }
193
207
  executeStream(sql, params, transformRows) {
194
- // eslint-disable-next-line @typescript-eslint/no-this-alias
208
+ // oxlint-disable-next-line @typescript-eslint/no-this-alias
195
209
  const self = this;
196
- return Effect.gen(function* () {
197
- const scope = yield* Effect.scope;
198
- const client = self.pg ?? (yield* reserveRaw);
210
+ return Stream.fromChannel(Channel.fromTransform(Effect.fnUntraced(function* (_, scope) {
211
+ const client = self.pg ?? (yield* Scope.provide(reserveRaw, scope));
199
212
  yield* Scope.addFinalizer(scope, Effect.promise(() => cursor.close()));
200
213
  const cursor = client.query(new Cursor(sql, params));
201
- const pull = Effect.async(resume => {
214
+ // @effect-diagnostics-next-line returnEffectInGen:off
215
+ return Effect.callback(resume => {
202
216
  cursor.read(128, (err, rows) => {
203
217
  if (err) {
204
- resume(Effect.fail(Option.some(new SqlError({
218
+ resume(Effect.fail(new SqlError({
205
219
  cause: err,
206
220
  message: "Failed to execute statement"
207
- }))));
208
- } else if (Arr.isNonEmptyArray(rows)) {
209
- resume(Effect.succeed(Chunk.unsafeFromArray(transformRows ? transformRows(rows) : rows)));
221
+ })));
222
+ } else if (Arr.isArrayNonEmpty(rows)) {
223
+ resume(Effect.succeed(transformRows ? transformRows(rows) : rows));
210
224
  } else {
211
- resume(Effect.fail(Option.none()));
225
+ resume(Cause.done());
212
226
  }
213
227
  });
214
228
  });
215
- return Stream.repeatEffectChunkOption(pull);
216
- }).pipe(Stream.unwrapScoped);
229
+ })));
217
230
  }
218
231
  }
219
- const reserveRaw = Effect.async(resume => {
220
- const fiber = Option.getOrThrow(Fiber.getCurrentFiber());
221
- const scope = Context.unsafeGet(fiber.currentContext, Scope.Scope);
232
+ const reserveRaw = Effect.callback(resume => {
233
+ const fiber = Fiber.getCurrent();
234
+ const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
222
235
  let cause = undefined;
223
- function onError(cause_) {
224
- cause = cause_;
225
- }
226
236
  pool.connect((err, client, release) => {
227
237
  if (err) {
228
238
  resume(Effect.fail(new SqlError({
229
239
  cause: err,
230
240
  message: "Failed to acquire connection for transaction"
231
241
  })));
232
- return;
233
- } else if (!client) {
234
- resume(Effect.fail(new SqlError({
235
- message: "Failed to acquire connection for transaction",
236
- cause: new Error("No client returned")
237
- })));
238
- return;
242
+ } else {
243
+ resume(Effect.as(Scope.addFinalizer(scope, Effect.sync(() => {
244
+ client.off("error", onError);
245
+ release(cause);
246
+ })), client));
247
+ }
248
+ function onError(cause_) {
249
+ cause = cause_;
239
250
  }
240
- // Else we know we have client defined, so we can proceed with the connection
241
251
  client.on("error", onError);
242
- resume(Effect.as(Scope.addFinalizer(scope, Effect.sync(() => {
243
- client.off("error", onError);
244
- release(cause);
245
- })), client));
246
252
  });
247
253
  });
248
254
  const reserve = Effect.map(reserveRaw, client => new ConnectionImpl(client));
249
255
  const listenClient = yield* RcRef.make({
250
256
  acquire: reserveRaw
251
257
  });
252
- let config = options;
258
+ let config = {
259
+ url: pool.options.connectionString ? Redacted.make(pool.options.connectionString) : undefined,
260
+ host: pool.options.host,
261
+ port: pool.options.port,
262
+ database: pool.options.database,
263
+ username: pool.options.user,
264
+ password: typeof pool.options.password === "string" ? Redacted.make(pool.options.password) : undefined,
265
+ ssl: pool.options.ssl,
266
+ applicationName: pool.options.application_name,
267
+ types: pool.options.types
268
+ };
253
269
  if (pool.options.connectionString) {
270
+ // @effect-diagnostics-next-line tryCatchInEffectGen:off
254
271
  try {
255
272
  const parsed = PgConnString.parse(pool.options.connectionString);
256
273
  config = {
257
274
  ...config,
258
275
  host: config.host ?? parsed.host ?? undefined,
259
- port: config.port ?? (parsed.port ? Option.getOrUndefined(Number.parse(parsed.port)) : undefined),
276
+ port: config.port ?? (parsed.port ? Number.parse(parsed.port) : undefined),
260
277
  username: config.username ?? parsed.user ?? undefined,
261
278
  password: config.password ?? (parsed.password ? Redacted.make(parsed.password) : undefined),
262
279
  database: config.database ?? parsed.database ?? undefined
@@ -269,17 +286,17 @@ export const make = options => Effect.gen(function* () {
269
286
  acquirer: Effect.succeed(new ConnectionImpl()),
270
287
  transactionAcquirer: reserve,
271
288
  compiler,
272
- spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [ATTR_DB_SYSTEM_NAME, "postgresql"], [ATTR_DB_NAMESPACE, options.database ?? options.username ?? "postgres"], [ATTR_SERVER_ADDRESS, options.host ?? "localhost"], [ATTR_SERVER_PORT, options.port ?? 5432]],
289
+ spanAttributes: [...(options.spanAttributes ? Object.entries(options.spanAttributes) : []), [ATTR_DB_SYSTEM_NAME, "postgresql"], [ATTR_DB_NAMESPACE, config.database ?? config.username ?? "postgres"], [ATTR_SERVER_ADDRESS, config.host ?? "localhost"], [ATTR_SERVER_PORT, config.port ?? 5432]],
273
290
  transformRows
274
291
  }), {
275
292
  [TypeId]: TypeId,
276
293
  config,
277
- json: _ => PgJson(_),
278
- listen: channel => Stream.asyncPush(Effect.fnUntraced(function* (emit) {
294
+ json: _ => Statement.fragment([PgJson(_)]),
295
+ listen: channel => Stream.callback(Effect.fnUntraced(function* (queue) {
279
296
  const client = yield* RcRef.get(listenClient);
280
297
  function onNotification(msg) {
281
298
  if (msg.channel === channel && msg.payload) {
282
- emit.single(msg.payload);
299
+ Queue.offerUnsafe(queue, msg.payload);
283
300
  }
284
301
  }
285
302
  yield* Effect.addFinalizer(() => Effect.promise(() => {
@@ -295,7 +312,7 @@ export const make = options => Effect.gen(function* () {
295
312
  });
296
313
  client.on("notification", onNotification);
297
314
  })),
298
- notify: (channel, payload) => Effect.async(resume => {
315
+ notify: (channel, payload) => Effect.callback(resume => {
299
316
  pool.query(`NOTIFY ${Pg.escapeIdentifier(channel)}, $1`, [payload], err => {
300
317
  if (err) {
301
318
  resume(Effect.fail(new SqlError({
@@ -317,7 +334,7 @@ const makeCancel = (pool, client) => {
317
334
  const processId = client.processID;
318
335
  const eff = processId !== undefined
319
336
  // query cancelation is best-effort, so we don't fail if it doesn't work
320
- ? Effect.async(resume => {
337
+ ? Effect.callback(resume => {
321
338
  if (pool.ending) return resume(Effect.void);
322
339
  pool.query(`SELECT pg_cancel_backend(${processId})`, () => {
323
340
  resume(Effect.void);
@@ -330,12 +347,17 @@ const makeCancel = (pool, client) => {
330
347
  * @category layers
331
348
  * @since 1.0.0
332
349
  */
333
- export const layerConfig = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(PgClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
350
+ export const layerConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => ServiceMap.make(PgClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
351
+ /**
352
+ * @category layers
353
+ * @since 1.0.0
354
+ */
355
+ export const layer = config => Layer.effectServices(Effect.map(make(config), client => ServiceMap.make(PgClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
334
356
  /**
335
357
  * @category layers
336
358
  * @since 1.0.0
337
359
  */
338
- export const layer = config => Layer.scopedContext(Effect.map(make(config), client => Context.make(PgClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
360
+ export const layerFromPool = options => Layer.effectServices(Effect.map(fromPool(options), client => ServiceMap.make(PgClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
339
361
  /**
340
362
  * @category constructor
341
363
  * @since 1.0.0
@@ -357,7 +379,7 @@ export const makeCompiler = (transform, transformJson = true) => {
357
379
  switch (type.kind) {
358
380
  case "PgJson":
359
381
  {
360
- return [placeholder(undefined), [withoutTransform || transformValue === undefined ? type.i0 : transformValue(type.i0)]];
382
+ return [placeholder(undefined), [withoutTransform || transformValue === undefined ? type.paramA : transformValue(type.paramA)]];
361
383
  }
362
384
  }
363
385
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Duration","Effect","Fiber","Layer","Number","Queue","RcRef","Redacted","Scope","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","Pg","PgConnString","Cursor","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","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","fromDurationInputUnsafe","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","message","promise","end","pipe","timeoutOption","timeoutOrElse","duration","seconds","onTimeout","fail","Error","fnUntraced","compiler","makeCompiler","transformQueryNames","transformJson","transformRows","transformResultNames","defaultTransforms","array","ConnectionImpl","pg","constructor","runWithClient","f","callback","resume","makeCancel","done","cancel","client","onError","cleanup","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","run","params","err","result","succeed","Array","isArray","map","r","rows","execute","sql","executeRaw","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","fromChannel","fromTransform","_","scope","provide","reserveRaw","addFinalizer","cursor","close","read","isArrayNonEmpty","fiber","getCurrent","getUnsafe","services","as","cause_","reserve","listenClient","config","parsed","parse","Object","assign","acquirer","transactionAcquirer","spanAttributes","entries","json","fragment","PgJson","listen","channel","queue","get","onNotification","msg","payload","offerUnsafe","escapeIdentifier","notify","cancelEffects","WeakMap","has","processId","processID","ending","interruptible","set","layerConfig","effectServices","unwrap","asEffect","flatMap","add","SqlClient","layer","layerFromPool","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","paramA","defaultEscape","custom"],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Effect from "effect/Effect";
5
+ import * as Layer from "effect/Layer";
6
+ import * as Migrator from "effect/unstable/sql/Migrator";
7
+ import type * as Client from "effect/unstable/sql/SqlClient";
8
+ import type { SqlError } from "effect/unstable/sql/SqlError";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export * from "effect/unstable/sql/Migrator";
13
+ /**
14
+ * @category constructor
15
+ * @since 1.0.0
16
+ */
17
+ export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
18
+ /**
19
+ * @category layers
20
+ * @since 1.0.0
21
+ */
22
+ export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, Client.SqlClient | R>;
23
+ //# sourceMappingURL=PgMigrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;GAGG;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,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CA0DrB,CAAA;AAEF;;;GAGG;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,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
@@ -0,0 +1,74 @@
1
+ import * as Layer from "effect/Layer";
2
+ import * as Migrator from "effect/unstable/sql/Migrator";
3
+ /**
4
+ * @since 1.0.0
5
+ */
6
+ export * from "effect/unstable/sql/Migrator";
7
+ /**
8
+ * @category constructor
9
+ * @since 1.0.0
10
+ */
11
+ export const run = /*#__PURE__*/Migrator.make({
12
+ // TODO: Wait for Command module
13
+ // dumpSchema(path, table) {
14
+ // const pgDump = (args: Array<string>) =>
15
+ // Effect.gen(function*() {
16
+ // const sql = yield* PgClient
17
+ // const dump = yield* pipe(
18
+ // Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
19
+ // Command.env({
20
+ // PATH: (globalThis as any).process?.env.PATH,
21
+ // PGHOST: sql.config.host,
22
+ // PGPORT: sql.config.port?.toString(),
23
+ // PGUSER: sql.config.username,
24
+ // PGPASSWORD: sql.config.password
25
+ // ? Redacted.value(sql.config.password)
26
+ // : undefined,
27
+ // PGDATABASE: sql.config.database,
28
+ // PGSSLMODE: sql.config.ssl ? "require" : "prefer"
29
+ // }),
30
+ // Command.string
31
+ // )
32
+ //
33
+ // return dump.replace(/^--.*$/gm, "")
34
+ // .replace(/^SET .*$/gm, "")
35
+ // .replace(/^SELECT pg_catalog\..*$/gm, "")
36
+ // .replace(/\n{2,}/gm, "\n\n")
37
+ // .trim()
38
+ // }).pipe(
39
+ // Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
40
+ // )
41
+ //
42
+ // const pgDumpSchema = pgDump(["--schema-only"])
43
+ //
44
+ // const pgDumpMigrations = pgDump([
45
+ // "--column-inserts",
46
+ // "--data-only",
47
+ // `--table=${table}`
48
+ // ])
49
+ //
50
+ // const pgDumpAll = Effect.map(
51
+ // Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
52
+ // ([schema, migrations]) => schema + "\n\n" + migrations
53
+ // )
54
+ //
55
+ // const pgDumpFile = (path: string) =>
56
+ // Effect.gen(function*() {
57
+ // const fs = yield* FileSystem
58
+ // const path_ = yield* Path
59
+ // const dump = yield* pgDumpAll
60
+ // yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
61
+ // yield* fs.writeFileString(path, dump)
62
+ // }).pipe(
63
+ // Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
64
+ // )
65
+ //
66
+ // return pgDumpFile(path)
67
+ // }
68
+ });
69
+ /**
70
+ * @category layers
71
+ * @since 1.0.0
72
+ */
73
+ export const layer = options => Layer.effectDiscard(run(options));
74
+ //# sourceMappingURL=PgMigrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;AAIA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ export * as PgClient from "./PgClient.ts";
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+ export * as PgMigrator from "./PgMigrator.ts";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ // @barrel: Auto-generated exports. Do not edit manually.
1
5
  /**
2
6
  * @since 1.0.0
3
7
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["PgClient","PgMigrator"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}