@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.
package/src/PgMigrator.ts CHANGED
@@ -1,28 +1,16 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import * as Command from "@effect/platform/Command"
5
- import type { CommandExecutor } from "@effect/platform/CommandExecutor"
6
- import { FileSystem } from "@effect/platform/FileSystem"
7
- import { Path } from "@effect/platform/Path"
8
- import * as Migrator from "@effect/sql/Migrator"
9
- import type * as Client from "@effect/sql/SqlClient"
10
- import type { SqlError } from "@effect/sql/SqlError"
11
- import * as Effect from "effect/Effect"
12
- import { pipe } from "effect/Function"
4
+ import type * as Effect from "effect/Effect"
13
5
  import * as Layer from "effect/Layer"
14
- import * as Redacted from "effect/Redacted"
15
- import { PgClient } from "./PgClient.js"
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"
16
9
 
17
10
  /**
18
11
  * @since 1.0.0
19
12
  */
20
- export * from "@effect/sql/Migrator"
21
-
22
- /**
23
- * @since 1.0.0
24
- */
25
- export * from "@effect/sql/Migrator/FileSystem"
13
+ export * from "effect/unstable/sql/Migrator"
26
14
 
27
15
  /**
28
16
  * @category constructor
@@ -33,63 +21,64 @@ export const run: <R2 = never>(
33
21
  ) => Effect.Effect<
34
22
  ReadonlyArray<readonly [id: number, name: string]>,
35
23
  Migrator.MigrationError | SqlError,
36
- FileSystem | Path | PgClient | Client.SqlClient | CommandExecutor | R2
24
+ Client.SqlClient | R2
37
25
  > = Migrator.make({
38
- dumpSchema(path, table) {
39
- const pgDump = (args: Array<string>) =>
40
- Effect.gen(function*() {
41
- const sql = yield* PgClient
42
- const dump = yield* pipe(
43
- Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
44
- Command.env({
45
- PATH: (globalThis as any).process?.env.PATH,
46
- PGHOST: sql.config.host,
47
- PGPORT: sql.config.port?.toString(),
48
- PGUSER: sql.config.username,
49
- PGPASSWORD: sql.config.password
50
- ? Redacted.value(sql.config.password)
51
- : undefined,
52
- PGDATABASE: sql.config.database,
53
- PGSSLMODE: sql.config.ssl ? "require" : "prefer"
54
- }),
55
- Command.string
56
- )
57
-
58
- return dump.replace(/^--.*$/gm, "")
59
- .replace(/^SET .*$/gm, "")
60
- .replace(/^SELECT pg_catalog\..*$/gm, "")
61
- .replace(/\n{2,}/gm, "\n\n")
62
- .trim();
63
- }).pipe(
64
- Effect.mapError((error) => new Migrator.MigrationError({ reason: "failed", message: error.message }))
65
- )
66
-
67
- const pgDumpSchema = pgDump(["--schema-only"])
68
-
69
- const pgDumpMigrations = pgDump([
70
- "--column-inserts",
71
- "--data-only",
72
- `--table=${table}`
73
- ])
74
-
75
- const pgDumpAll = Effect.map(
76
- Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
77
- ([schema, migrations]) => schema + "\n\n" + migrations
78
- )
79
-
80
- const pgDumpFile = (path: string) =>
81
- Effect.gen(function*() {
82
- const fs = yield* FileSystem
83
- const path_ = yield* Path
84
- const dump = yield* pgDumpAll
85
- yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
86
- yield* fs.writeFileString(path, dump)
87
- }).pipe(
88
- Effect.mapError((error) => new Migrator.MigrationError({ reason: "failed", message: error.message }))
89
- )
90
-
91
- return pgDumpFile(path)
92
- }
26
+ // TODO: Wait for Command module
27
+ // dumpSchema(path, table) {
28
+ // const pgDump = (args: Array<string>) =>
29
+ // Effect.gen(function*() {
30
+ // const sql = yield* PgClient
31
+ // const dump = yield* pipe(
32
+ // Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
33
+ // Command.env({
34
+ // PATH: (globalThis as any).process?.env.PATH,
35
+ // PGHOST: sql.config.host,
36
+ // PGPORT: sql.config.port?.toString(),
37
+ // PGUSER: sql.config.username,
38
+ // PGPASSWORD: sql.config.password
39
+ // ? Redacted.value(sql.config.password)
40
+ // : undefined,
41
+ // PGDATABASE: sql.config.database,
42
+ // PGSSLMODE: sql.config.ssl ? "require" : "prefer"
43
+ // }),
44
+ // Command.string
45
+ // )
46
+ //
47
+ // return dump.replace(/^--.*$/gm, "")
48
+ // .replace(/^SET .*$/gm, "")
49
+ // .replace(/^SELECT pg_catalog\..*$/gm, "")
50
+ // .replace(/\n{2,}/gm, "\n\n")
51
+ // .trim()
52
+ // }).pipe(
53
+ // Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
54
+ // )
55
+ //
56
+ // const pgDumpSchema = pgDump(["--schema-only"])
57
+ //
58
+ // const pgDumpMigrations = pgDump([
59
+ // "--column-inserts",
60
+ // "--data-only",
61
+ // `--table=${table}`
62
+ // ])
63
+ //
64
+ // const pgDumpAll = Effect.map(
65
+ // Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
66
+ // ([schema, migrations]) => schema + "\n\n" + migrations
67
+ // )
68
+ //
69
+ // const pgDumpFile = (path: string) =>
70
+ // Effect.gen(function*() {
71
+ // const fs = yield* FileSystem
72
+ // const path_ = yield* Path
73
+ // const dump = yield* pgDumpAll
74
+ // yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
75
+ // yield* fs.writeFileString(path, dump)
76
+ // }).pipe(
77
+ // Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
78
+ // )
79
+ //
80
+ // return pgDumpFile(path)
81
+ // }
93
82
  })
94
83
 
95
84
  /**
@@ -101,5 +90,5 @@ export const layer = <R>(
101
90
  ): Layer.Layer<
102
91
  never,
103
92
  Migrator.MigrationError | SqlError,
104
- PgClient | Client.SqlClient | CommandExecutor | FileSystem | Path | R
93
+ Client.SqlClient | R
105
94
  > => Layer.effectDiscard(run(options))
package/src/index.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- export * as PgClient from "./PgClient.js"
4
+
5
+ // @barrel: Auto-generated exports. Do not edit manually.
6
+
7
+ /**
8
+ * @since 1.0.0
9
+ */
10
+ export * as PgClient from "./PgClient.ts"
5
11
 
6
12
  /**
7
13
  * @since 1.0.0
8
14
  */
9
- export * as PgMigrator from "./PgMigrator.js"
15
+ export * as PgMigrator from "./PgMigrator.ts"
@@ -1,6 +0,0 @@
1
- {
2
- "sideEffects": [],
3
- "main": "../dist/cjs/PgClient.js",
4
- "module": "../dist/esm/PgClient.js",
5
- "types": "../dist/dts/PgClient.d.ts"
6
- }
@@ -1,6 +0,0 @@
1
- {
2
- "sideEffects": [],
3
- "main": "../dist/cjs/PgMigrator.js",
4
- "module": "../dist/esm/PgMigrator.js",
5
- "types": "../dist/dts/PgMigrator.d.ts"
6
- }
@@ -1,385 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeCompiler = exports.make = exports.layerConfig = exports.layer = exports.TypeId = exports.PgClient = void 0;
7
- var Reactivity = _interopRequireWildcard(require("@effect/experimental/Reactivity"));
8
- var Client = _interopRequireWildcard(require("@effect/sql/SqlClient"));
9
- var _SqlError = require("@effect/sql/SqlError");
10
- var Statement = _interopRequireWildcard(require("@effect/sql/Statement"));
11
- var Arr = _interopRequireWildcard(require("effect/Array"));
12
- var Chunk = _interopRequireWildcard(require("effect/Chunk"));
13
- var Config = _interopRequireWildcard(require("effect/Config"));
14
- var Context = _interopRequireWildcard(require("effect/Context"));
15
- var Duration = _interopRequireWildcard(require("effect/Duration"));
16
- var Effect = _interopRequireWildcard(require("effect/Effect"));
17
- var Fiber = _interopRequireWildcard(require("effect/Fiber"));
18
- var Layer = _interopRequireWildcard(require("effect/Layer"));
19
- var Number = _interopRequireWildcard(require("effect/Number"));
20
- var Option = _interopRequireWildcard(require("effect/Option"));
21
- var RcRef = _interopRequireWildcard(require("effect/RcRef"));
22
- var Redacted = _interopRequireWildcard(require("effect/Redacted"));
23
- var Scope = _interopRequireWildcard(require("effect/Scope"));
24
- var Stream = _interopRequireWildcard(require("effect/Stream"));
25
- var Pg = _interopRequireWildcard(require("pg"));
26
- var PgConnString = _interopRequireWildcard(require("pg-connection-string"));
27
- var _pgCursor = _interopRequireDefault(require("pg-cursor"));
28
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
30
- /**
31
- * @since 1.0.0
32
- */
33
-
34
- const ATTR_DB_SYSTEM_NAME = "db.system.name";
35
- const ATTR_DB_NAMESPACE = "db.namespace";
36
- const ATTR_SERVER_ADDRESS = "server.address";
37
- const ATTR_SERVER_PORT = "server.port";
38
- /**
39
- * @category type ids
40
- * @since 1.0.0
41
- */
42
- const TypeId = exports.TypeId = "~@effect/sql-pg/PgClient";
43
- /**
44
- * @category tags
45
- * @since 1.0.0
46
- */
47
- const PgClient = exports.PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/PgClient");
48
- /**
49
- * @category constructors
50
- * @since 1.0.0
51
- */
52
- const make = options => Effect.gen(function* () {
53
- const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
54
- const transformRows = options.transformResultNames ? Statement.defaultTransforms(options.transformResultNames, options.transformJson).array : undefined;
55
- const pool = new Pg.Pool({
56
- connectionString: options.url ? Redacted.value(options.url) : undefined,
57
- user: options.username,
58
- host: options.host,
59
- database: options.database,
60
- password: options.password ? Redacted.value(options.password) : undefined,
61
- ssl: options.ssl,
62
- port: options.port,
63
- stream: options.stream,
64
- connectionTimeoutMillis: options.connectTimeout ? Duration.toMillis(options.connectTimeout) : undefined,
65
- idleTimeoutMillis: options.idleTimeout ? Duration.toMillis(options.idleTimeout) : undefined,
66
- max: options.maxConnections,
67
- min: options.minConnections,
68
- maxLifetimeSeconds: options.connectionTTL ? Duration.toSeconds(options.connectionTTL) : undefined,
69
- application_name: options.applicationName ?? "@effect/sql-pg",
70
- types: options.types
71
- });
72
- pool.on("error", _err => {});
73
- yield* Effect.acquireRelease(Effect.tryPromise({
74
- try: () => pool.query("SELECT 1"),
75
- catch: cause => new _SqlError.SqlError({
76
- cause,
77
- message: "PgClient: Failed to connect"
78
- })
79
- }), () => Effect.promise(() => pool.end()).pipe(Effect.interruptible, Effect.timeoutOption(1000))).pipe(Effect.timeoutFail({
80
- duration: options.connectTimeout ?? Duration.seconds(5),
81
- onTimeout: () => new _SqlError.SqlError({
82
- cause: new Error("Connection timed out"),
83
- message: "PgClient: Connection timed out"
84
- })
85
- }));
86
- class ConnectionImpl {
87
- pg;
88
- constructor(pg) {
89
- this.pg = pg;
90
- }
91
- runWithClient(f) {
92
- if (this.pg !== undefined) {
93
- return Effect.async(resume => {
94
- f(this.pg, resume);
95
- return makeCancel(pool, this.pg);
96
- });
97
- }
98
- return Effect.async(resume => {
99
- let done = false;
100
- let cancel = undefined;
101
- let client = undefined;
102
- function onError(cause) {
103
- cleanup(cause);
104
- resume(Effect.fail(new _SqlError.SqlError({
105
- cause,
106
- message: "Connection error"
107
- })));
108
- }
109
- function cleanup(cause) {
110
- if (!done) client?.release(cause);
111
- done = true;
112
- client?.off("error", onError);
113
- }
114
- pool.connect((cause, client_) => {
115
- if (cause) {
116
- return resume(Effect.fail(new _SqlError.SqlError({
117
- cause,
118
- message: "Failed to acquire connection"
119
- })));
120
- } else if (!client_) {
121
- return resume(Effect.fail(new _SqlError.SqlError({
122
- message: "Failed to acquire connection",
123
- cause: new Error("No client returned")
124
- })));
125
- } else if (done) {
126
- client_.release();
127
- return;
128
- }
129
- client = client_;
130
- client.once("error", onError);
131
- cancel = makeCancel(pool, client);
132
- f(client, eff => {
133
- cleanup();
134
- resume(eff);
135
- });
136
- });
137
- return Effect.suspend(() => {
138
- if (!cancel) {
139
- cleanup();
140
- return Effect.void;
141
- }
142
- return Effect.ensuring(cancel, Effect.sync(cleanup));
143
- });
144
- });
145
- }
146
- run(query, params) {
147
- return this.runWithClient((client, resume) => {
148
- client.query(query, params, (err, result) => {
149
- if (err) {
150
- resume(Effect.fail(new _SqlError.SqlError({
151
- cause: err,
152
- message: "Failed to execute statement"
153
- })));
154
- } else {
155
- // Multi-statement queries return an array of results
156
- resume(Effect.succeed(Array.isArray(result) ? result.map(r => r.rows ?? []) : result.rows ?? []));
157
- }
158
- });
159
- });
160
- }
161
- execute(sql, params, transformRows) {
162
- return transformRows ? Effect.map(this.run(sql, params), transformRows) : this.run(sql, params);
163
- }
164
- executeRaw(sql, params) {
165
- return this.runWithClient((client, resume) => {
166
- client.query(sql, params, (err, result) => {
167
- if (err) {
168
- resume(Effect.fail(new _SqlError.SqlError({
169
- cause: err,
170
- message: "Failed to execute statement"
171
- })));
172
- } else {
173
- resume(Effect.succeed(result));
174
- }
175
- });
176
- });
177
- }
178
- executeWithoutTransform(sql, params) {
179
- return this.run(sql, params);
180
- }
181
- executeValues(sql, params) {
182
- return this.runWithClient((client, resume) => {
183
- client.query({
184
- text: sql,
185
- rowMode: "array",
186
- values: params
187
- }, (err, result) => {
188
- if (err) {
189
- resume(Effect.fail(new _SqlError.SqlError({
190
- cause: err,
191
- message: "Failed to execute statement"
192
- })));
193
- } else {
194
- resume(Effect.succeed(result.rows));
195
- }
196
- });
197
- });
198
- }
199
- executeUnprepared(sql, params, transformRows) {
200
- return this.execute(sql, params, transformRows);
201
- }
202
- executeStream(sql, params, transformRows) {
203
- // eslint-disable-next-line @typescript-eslint/no-this-alias
204
- const self = this;
205
- return Effect.gen(function* () {
206
- const scope = yield* Effect.scope;
207
- const client = self.pg ?? (yield* reserveRaw);
208
- yield* Scope.addFinalizer(scope, Effect.promise(() => cursor.close()));
209
- const cursor = client.query(new _pgCursor.default(sql, params));
210
- const pull = Effect.async(resume => {
211
- cursor.read(128, (err, rows) => {
212
- if (err) {
213
- resume(Effect.fail(Option.some(new _SqlError.SqlError({
214
- cause: err,
215
- message: "Failed to execute statement"
216
- }))));
217
- } else if (Arr.isNonEmptyArray(rows)) {
218
- resume(Effect.succeed(Chunk.unsafeFromArray(transformRows ? transformRows(rows) : rows)));
219
- } else {
220
- resume(Effect.fail(Option.none()));
221
- }
222
- });
223
- });
224
- return Stream.repeatEffectChunkOption(pull);
225
- }).pipe(Stream.unwrapScoped);
226
- }
227
- }
228
- const reserveRaw = Effect.async(resume => {
229
- const fiber = Option.getOrThrow(Fiber.getCurrentFiber());
230
- const scope = Context.unsafeGet(fiber.currentContext, Scope.Scope);
231
- let cause = undefined;
232
- function onError(cause_) {
233
- cause = cause_;
234
- }
235
- pool.connect((err, client, release) => {
236
- if (err) {
237
- resume(Effect.fail(new _SqlError.SqlError({
238
- cause: err,
239
- message: "Failed to acquire connection for transaction"
240
- })));
241
- return;
242
- } else if (!client) {
243
- resume(Effect.fail(new _SqlError.SqlError({
244
- message: "Failed to acquire connection for transaction",
245
- cause: new Error("No client returned")
246
- })));
247
- return;
248
- }
249
- // Else we know we have client defined, so we can proceed with the connection
250
- client.on("error", onError);
251
- resume(Effect.as(Scope.addFinalizer(scope, Effect.sync(() => {
252
- client.off("error", onError);
253
- release(cause);
254
- })), client));
255
- });
256
- });
257
- const reserve = Effect.map(reserveRaw, client => new ConnectionImpl(client));
258
- const listenClient = yield* RcRef.make({
259
- acquire: reserveRaw
260
- });
261
- let config = options;
262
- if (pool.options.connectionString) {
263
- try {
264
- const parsed = PgConnString.parse(pool.options.connectionString);
265
- config = {
266
- ...config,
267
- host: config.host ?? parsed.host ?? undefined,
268
- port: config.port ?? (parsed.port ? Option.getOrUndefined(Number.parse(parsed.port)) : undefined),
269
- username: config.username ?? parsed.user ?? undefined,
270
- password: config.password ?? (parsed.password ? Redacted.make(parsed.password) : undefined),
271
- database: config.database ?? parsed.database ?? undefined
272
- };
273
- } catch {
274
- //
275
- }
276
- }
277
- return Object.assign(yield* Client.make({
278
- acquirer: Effect.succeed(new ConnectionImpl()),
279
- transactionAcquirer: reserve,
280
- compiler,
281
- 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]],
282
- transformRows
283
- }), {
284
- [TypeId]: TypeId,
285
- config,
286
- json: _ => PgJson(_),
287
- listen: channel => Stream.asyncPush(Effect.fnUntraced(function* (emit) {
288
- const client = yield* RcRef.get(listenClient);
289
- function onNotification(msg) {
290
- if (msg.channel === channel && msg.payload) {
291
- emit.single(msg.payload);
292
- }
293
- }
294
- yield* Effect.addFinalizer(() => Effect.promise(() => {
295
- client.off("notification", onNotification);
296
- return client.query(`UNLISTEN ${Pg.escapeIdentifier(channel)}`);
297
- }));
298
- yield* Effect.tryPromise({
299
- try: () => client.query(`LISTEN ${Pg.escapeIdentifier(channel)}`),
300
- catch: cause => new _SqlError.SqlError({
301
- cause,
302
- message: "Failed to listen"
303
- })
304
- });
305
- client.on("notification", onNotification);
306
- })),
307
- notify: (channel, payload) => Effect.async(resume => {
308
- pool.query(`NOTIFY ${Pg.escapeIdentifier(channel)}, $1`, [payload], err => {
309
- if (err) {
310
- resume(Effect.fail(new _SqlError.SqlError({
311
- cause: err,
312
- message: "Failed to notify"
313
- })));
314
- } else {
315
- resume(Effect.void);
316
- }
317
- });
318
- })
319
- });
320
- });
321
- exports.make = make;
322
- const cancelEffects = /*#__PURE__*/new WeakMap();
323
- const makeCancel = (pool, client) => {
324
- if (cancelEffects.has(client)) {
325
- return cancelEffects.get(client);
326
- }
327
- const processId = client.processID;
328
- const eff = processId !== undefined
329
- // query cancelation is best-effort, so we don't fail if it doesn't work
330
- ? Effect.async(resume => {
331
- if (pool.ending) return resume(Effect.void);
332
- pool.query(`SELECT pg_cancel_backend(${processId})`, () => {
333
- resume(Effect.void);
334
- });
335
- }).pipe(Effect.interruptible, Effect.timeoutOption(5000)) : undefined;
336
- cancelEffects.set(client, eff);
337
- return eff;
338
- };
339
- /**
340
- * @category layers
341
- * @since 1.0.0
342
- */
343
- 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));
344
- /**
345
- * @category layers
346
- * @since 1.0.0
347
- */
348
- exports.layerConfig = layerConfig;
349
- 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));
350
- /**
351
- * @category constructor
352
- * @since 1.0.0
353
- */
354
- exports.layer = layer;
355
- const makeCompiler = (transform, transformJson = true) => {
356
- const transformValue = transformJson && transform ? Statement.defaultTransforms(transform).value : undefined;
357
- return Statement.makeCompiler({
358
- dialect: "pg",
359
- placeholder(_) {
360
- return `$${_}`;
361
- },
362
- onIdentifier: transform ? function (value, withoutTransform) {
363
- return withoutTransform ? escape(value) : escape(transform(value));
364
- } : escape,
365
- onRecordUpdate(placeholders, valueAlias, valueColumns, values, returning) {
366
- return [`(values ${placeholders}) AS ${valueAlias}${valueColumns}${returning ? ` RETURNING ${returning[0]}` : ""}`, returning ? values.flat().concat(returning[1]) : values.flat()];
367
- },
368
- onCustom(type, placeholder, withoutTransform) {
369
- switch (type.kind) {
370
- case "PgJson":
371
- {
372
- return [placeholder(undefined), [withoutTransform || transformValue === undefined ? type.i0 : transformValue(type.i0)]];
373
- }
374
- }
375
- }
376
- });
377
- };
378
- exports.makeCompiler = makeCompiler;
379
- const escape = /*#__PURE__*/Statement.defaultEscape("\"");
380
- /**
381
- * @category custom types
382
- * @since 1.0.0
383
- */
384
- const PgJson = /*#__PURE__*/Statement.custom("PgJson");
385
- //# sourceMappingURL=PgClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PgClient.js","names":["Reactivity","_interopRequireWildcard","require","Client","_SqlError","Statement","Arr","Chunk","Config","Context","Duration","Effect","Fiber","Layer","Number","Option","RcRef","Redacted","Scope","Stream","Pg","PgConnString","_pgCursor","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","TypeId","exports","PgClient","GenericTag","make","options","gen","compiler","makeCompiler","transformQueryNames","transformJson","transformRows","transformResultNames","defaultTransforms","array","undefined","pool","Pool","connectionString","url","value","user","username","host","database","password","ssl","port","stream","connectionTimeoutMillis","connectTimeout","toMillis","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","SqlError","message","promise","end","pipe","interruptible","timeoutOption","timeoutFail","duration","seconds","onTimeout","Error","ConnectionImpl","pg","constructor","runWithClient","async","resume","makeCancel","done","cancel","client","onError","cleanup","fail","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","run","params","err","result","succeed","Array","isArray","map","rows","execute","sql","executeRaw","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","scope","reserveRaw","addFinalizer","cursor","close","Cursor","pull","read","some","isNonEmptyArray","unsafeFromArray","none","repeatEffectChunkOption","unwrapScoped","fiber","getOrThrow","getCurrentFiber","unsafeGet","currentContext","cause_","as","reserve","listenClient","acquire","config","parsed","parse","getOrUndefined","assign","acquirer","transactionAcquirer","spanAttributes","entries","json","_","PgJson","listen","channel","asyncPush","fnUntraced","emit","onNotification","msg","payload","single","escapeIdentifier","notify","cancelEffects","processId","processID","ending","layerConfig","scopedContext","unwrap","flatMap","add","SqlClient","provide","layer","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","i0","defaultEscape","custom"],"sources":["../../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}