@effect/sql-pg 4.0.0-beta.35 → 4.0.0-beta.37

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 +1 @@
1
- {"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AASxB;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAmC,CAAA;AAExD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,0BAA0B,CAAA;AAE/C;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,SAAS;IAChD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrE,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;CACrF;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,wCAA0D,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;IAE5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;IAEjD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;IAE5C,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAEpD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAEnD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAAA;CAClD;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,cAAc,KACtB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAsDpE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,QAAQ;sBAEC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;+BAEpC,MAAM,GAAG,SAAS;8BACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;oCAE7B,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS;mCACtC,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS;6BAC3C,OAAO,GAAG,SAAS;qBAC3B,EAAE,CAAC,iBAAiB,GAAG,SAAS;4EAkRnD,CAAA;AAwBF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAChC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAYlC,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,cAAc,KACrB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAMX,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAE/D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAAA;CAClD,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAMZ,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,YAAY,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,uBAAoB,KACnB,SAAS,CAAC,QAsCZ,CAAA;AAID;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B;;;GAGG;AACH,UAAU,MAAO,SAAQ,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;CAAG;AACrD;;;GAGG;AACH,QAAA,MAAM,MAAM,yDAAqC,CAAA"}
1
+ {"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
package/dist/PgClient.js CHANGED
@@ -19,7 +19,7 @@ import * as ServiceMap from "effect/ServiceMap";
19
19
  import * as Stream from "effect/Stream";
20
20
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
21
21
  import * as Client from "effect/unstable/sql/SqlClient";
22
- import { SqlError } from "effect/unstable/sql/SqlError";
22
+ import { AuthenticationError, AuthorizationError, ConnectionError, ConstraintError, DeadlockError, LockTimeoutError, SerializationError, SqlError, SqlSyntaxError, StatementTimeoutError, UnknownError } from "effect/unstable/sql/SqlError";
23
23
  import * as Statement from "effect/unstable/sql/Statement";
24
24
  import * as Pg from "pg";
25
25
  import * as PgConnString from "pg-connection-string";
@@ -28,6 +28,51 @@ const ATTR_DB_SYSTEM_NAME = "db.system.name";
28
28
  const ATTR_DB_NAMESPACE = "db.namespace";
29
29
  const ATTR_SERVER_ADDRESS = "server.address";
30
30
  const ATTR_SERVER_PORT = "server.port";
31
+ const pgCodeFromCause = cause => {
32
+ if (typeof cause !== "object" || cause === null || !("code" in cause)) {
33
+ return undefined;
34
+ }
35
+ const code = cause.code;
36
+ return typeof code === "string" ? code : undefined;
37
+ };
38
+ const classifyError = (cause, message, operation) => {
39
+ const props = {
40
+ cause,
41
+ message,
42
+ operation
43
+ };
44
+ const code = pgCodeFromCause(cause);
45
+ if (code !== undefined) {
46
+ if (code.startsWith("08")) {
47
+ return new ConnectionError(props);
48
+ }
49
+ if (code.startsWith("28")) {
50
+ return new AuthenticationError(props);
51
+ }
52
+ if (code === "42501") {
53
+ return new AuthorizationError(props);
54
+ }
55
+ if (code.startsWith("42")) {
56
+ return new SqlSyntaxError(props);
57
+ }
58
+ if (code.startsWith("23")) {
59
+ return new ConstraintError(props);
60
+ }
61
+ if (code === "40P01") {
62
+ return new DeadlockError(props);
63
+ }
64
+ if (code === "40001") {
65
+ return new SerializationError(props);
66
+ }
67
+ if (code === "55P03") {
68
+ return new LockTimeoutError(props);
69
+ }
70
+ if (code === "57014") {
71
+ return new StatementTimeoutError(props);
72
+ }
73
+ }
74
+ return new UnknownError(props);
75
+ };
31
76
  /**
32
77
  * @category type ids
33
78
  * @since 1.0.0
@@ -68,14 +113,16 @@ export const make = options => fromPool({
68
113
  yield* Effect.acquireRelease(Effect.tryPromise({
69
114
  try: () => pool.query("SELECT 1"),
70
115
  catch: cause => new SqlError({
71
- cause,
72
- message: "PgClient: Failed to connect"
116
+ reason: classifyError(cause, "PgClient: Failed to connect", "connect")
73
117
  })
74
118
  }), () => Effect.promise(() => pool.end()).pipe(Effect.timeoutOption(1000))).pipe(Effect.timeoutOrElse({
75
119
  duration: options.connectTimeout ?? Duration.seconds(5),
76
120
  onTimeout: () => Effect.fail(new SqlError({
77
- cause: new Error("Connection timed out"),
78
- message: "PgClient: Connection timed out"
121
+ reason: new ConnectionError({
122
+ cause: new Error("Connection timed out"),
123
+ message: "PgClient: Connection timed out",
124
+ operation: "connect"
125
+ })
79
126
  }))
80
127
  }));
81
128
  return pool;
@@ -108,8 +155,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
108
155
  function onError(cause) {
109
156
  cleanup(cause);
110
157
  resume(Effect.fail(new SqlError({
111
- cause,
112
- message: "Connection error"
158
+ reason: classifyError(cause, "Connection error", "acquireConnection")
113
159
  })));
114
160
  }
115
161
  function cleanup(cause) {
@@ -120,13 +166,15 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
120
166
  pool.connect((cause, client_) => {
121
167
  if (cause) {
122
168
  return resume(Effect.fail(new SqlError({
123
- cause,
124
- message: "Failed to acquire connection"
169
+ reason: classifyError(cause, "Failed to acquire connection", "acquireConnection")
125
170
  })));
126
171
  } else if (!client_) {
127
172
  return resume(Effect.fail(new SqlError({
128
- message: "Failed to acquire connection",
129
- cause: new Error("No client returned")
173
+ reason: new ConnectionError({
174
+ message: "Failed to acquire connection",
175
+ cause: new Error("No client returned"),
176
+ operation: "acquireConnection"
177
+ })
130
178
  })));
131
179
  } else if (done) {
132
180
  client_.release();
@@ -154,8 +202,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
154
202
  client.query(query, params, (err, result) => {
155
203
  if (err) {
156
204
  resume(Effect.fail(new SqlError({
157
- cause: err,
158
- message: "Failed to execute statement"
205
+ reason: classifyError(err, "Failed to execute statement", "execute")
159
206
  })));
160
207
  } else {
161
208
  // Multi-statement queries return an array of results
@@ -172,8 +219,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
172
219
  client.query(sql, params, (err, result) => {
173
220
  if (err) {
174
221
  resume(Effect.fail(new SqlError({
175
- cause: err,
176
- message: "Failed to execute statement"
222
+ reason: classifyError(err, "Failed to execute statement", "execute")
177
223
  })));
178
224
  } else {
179
225
  resume(Effect.succeed(result));
@@ -193,8 +239,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
193
239
  }, (err, result) => {
194
240
  if (err) {
195
241
  resume(Effect.fail(new SqlError({
196
- cause: err,
197
- message: "Failed to execute statement"
242
+ reason: classifyError(err, "Failed to execute statement", "execute")
198
243
  })));
199
244
  } else {
200
245
  resume(Effect.succeed(result.rows));
@@ -217,8 +262,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
217
262
  cursor.read(128, (err, rows) => {
218
263
  if (err) {
219
264
  resume(Effect.fail(new SqlError({
220
- cause: err,
221
- message: "Failed to execute statement"
265
+ reason: classifyError(err, "Failed to execute statement", "stream")
222
266
  })));
223
267
  } else if (Arr.isArrayNonEmpty(rows)) {
224
268
  resume(Effect.succeed(transformRows ? transformRows(rows) : rows));
@@ -237,8 +281,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
237
281
  pool.connect((err, client, release) => {
238
282
  if (err) {
239
283
  resume(Effect.fail(new SqlError({
240
- cause: err,
241
- message: "Failed to acquire connection for transaction"
284
+ reason: classifyError(err, "Failed to acquire connection for transaction", "acquireConnection")
242
285
  })));
243
286
  } else {
244
287
  resume(Effect.as(Scope.addFinalizer(scope, Effect.sync(() => {
@@ -253,8 +296,22 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
253
296
  });
254
297
  });
255
298
  const reserve = Effect.map(reserveRaw, client => new ConnectionImpl(client));
299
+ const onListenClientError = _ => {};
256
300
  const listenClient = yield* RcRef.make({
257
- acquire: reserveRaw
301
+ acquire: Effect.acquireRelease(Effect.tryPromise({
302
+ try: async () => {
303
+ const client = new Pg.Client(pool.options);
304
+ await client.connect();
305
+ client.on("error", onListenClientError);
306
+ return client;
307
+ },
308
+ catch: cause => new SqlError({
309
+ reason: classifyError(cause, "Failed to acquire connection for listen", "acquireConnection")
310
+ })
311
+ }), client => Effect.promise(() => {
312
+ client.off("error", onListenClientError);
313
+ return client.end();
314
+ }).pipe(Effect.timeoutOption(1000)))
258
315
  });
259
316
  let config = {
260
317
  url: pool.options.connectionString ? Redacted.make(pool.options.connectionString) : undefined,
@@ -307,8 +364,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
307
364
  yield* Effect.tryPromise({
308
365
  try: () => client.query(`LISTEN ${Pg.escapeIdentifier(channel)}`),
309
366
  catch: cause => new SqlError({
310
- cause,
311
- message: "Failed to listen"
367
+ reason: classifyError(cause, "Failed to listen", "listen")
312
368
  })
313
369
  });
314
370
  client.on("notification", onNotification);
@@ -317,8 +373,7 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
317
373
  pool.query(`NOTIFY ${Pg.escapeIdentifier(channel)}, $1`, [payload], err => {
318
374
  if (err) {
319
375
  resume(Effect.fail(new SqlError({
320
- cause: err,
321
- message: "Failed to notify"
376
+ reason: classifyError(err, "Failed to notify", "notify")
322
377
  })));
323
378
  } else {
324
379
  resume(Effect.void);
@@ -1 +1 @@
1
- {"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Duration","Effect","Fiber","Layer","Number","Option","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","fromInputUnsafe","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","getOrUndefined","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":[]}
1
+ {"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Duration","Effect","Fiber","Layer","Number","Option","Queue","RcRef","Redacted","Scope","ServiceMap","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","StatementTimeoutError","UnknownError","Statement","Pg","PgConnString","Cursor","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","pgCodeFromCause","cause","undefined","code","classifyError","message","operation","props","startsWith","TypeId","PgClient","Service","make","options","fromPool","acquire","gen","pool","Pool","connectionString","url","value","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","reason","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","onListenClientError","listenClient","config","parsed","parse","getOrUndefined","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-pg",
3
- "version": "4.0.0-beta.35",
3
+ "version": "4.0.0-beta.37",
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.11.0",
47
47
  "@types/pg": "^8.16.0",
48
48
  "@types/pg-cursor": "^2.7.2",
49
- "effect": "^4.0.0-beta.35"
49
+ "effect": "^4.0.0-beta.37"
50
50
  },
51
51
  "peerDependencies": {
52
- "effect": "^4.0.0-beta.35"
52
+ "effect": "^4.0.0-beta.37"
53
53
  },
54
54
  "dependencies": {
55
55
  "pg": "^8.18.0",
package/src/PgClient.ts CHANGED
@@ -20,7 +20,19 @@ import * as Stream from "effect/Stream"
20
20
  import * as Reactivity from "effect/unstable/reactivity/Reactivity"
21
21
  import * as Client from "effect/unstable/sql/SqlClient"
22
22
  import type { Connection } from "effect/unstable/sql/SqlConnection"
23
- import { SqlError } from "effect/unstable/sql/SqlError"
23
+ import {
24
+ AuthenticationError,
25
+ AuthorizationError,
26
+ ConnectionError,
27
+ ConstraintError,
28
+ DeadlockError,
29
+ LockTimeoutError,
30
+ SerializationError,
31
+ SqlError,
32
+ SqlSyntaxError,
33
+ StatementTimeoutError,
34
+ UnknownError
35
+ } from "effect/unstable/sql/SqlError"
24
36
  import type { Custom, Fragment } from "effect/unstable/sql/Statement"
25
37
  import * as Statement from "effect/unstable/sql/Statement"
26
38
  import type { Duplex } from "node:stream"
@@ -34,6 +46,53 @@ const ATTR_DB_NAMESPACE = "db.namespace"
34
46
  const ATTR_SERVER_ADDRESS = "server.address"
35
47
  const ATTR_SERVER_PORT = "server.port"
36
48
 
49
+ const pgCodeFromCause = (cause: unknown): string | undefined => {
50
+ if (typeof cause !== "object" || cause === null || !("code" in cause)) {
51
+ return undefined
52
+ }
53
+ const code = cause.code
54
+ return typeof code === "string" ? code : undefined
55
+ }
56
+
57
+ const classifyError = (
58
+ cause: unknown,
59
+ message: string,
60
+ operation: string
61
+ ) => {
62
+ const props = { cause, message, operation }
63
+ const code = pgCodeFromCause(cause)
64
+ if (code !== undefined) {
65
+ if (code.startsWith("08")) {
66
+ return new ConnectionError(props)
67
+ }
68
+ if (code.startsWith("28")) {
69
+ return new AuthenticationError(props)
70
+ }
71
+ if (code === "42501") {
72
+ return new AuthorizationError(props)
73
+ }
74
+ if (code.startsWith("42")) {
75
+ return new SqlSyntaxError(props)
76
+ }
77
+ if (code.startsWith("23")) {
78
+ return new ConstraintError(props)
79
+ }
80
+ if (code === "40P01") {
81
+ return new DeadlockError(props)
82
+ }
83
+ if (code === "40001") {
84
+ return new SerializationError(props)
85
+ }
86
+ if (code === "55P03") {
87
+ return new LockTimeoutError(props)
88
+ }
89
+ if (code === "57014") {
90
+ return new StatementTimeoutError(props)
91
+ }
92
+ }
93
+ return new UnknownError(props)
94
+ }
95
+
37
96
  /**
38
97
  * @category type ids
39
98
  * @since 1.0.0
@@ -136,7 +195,7 @@ export const make = (
136
195
  yield* Effect.acquireRelease(
137
196
  Effect.tryPromise({
138
197
  try: () => pool.query("SELECT 1"),
139
- catch: (cause) => new SqlError({ cause, message: "PgClient: Failed to connect" })
198
+ catch: (cause) => new SqlError({ reason: classifyError(cause, "PgClient: Failed to connect", "connect") })
140
199
  }),
141
200
  () =>
142
201
  Effect.promise(() => pool.end()).pipe(
@@ -148,8 +207,11 @@ export const make = (
148
207
  onTimeout: () =>
149
208
  Effect.fail(
150
209
  new SqlError({
151
- cause: new Error("Connection timed out"),
152
- message: "PgClient: Connection timed out"
210
+ reason: new ConnectionError({
211
+ cause: new Error("Connection timed out"),
212
+ message: "PgClient: Connection timed out",
213
+ operation: "connect"
214
+ })
153
215
  })
154
216
  )
155
217
  })
@@ -208,7 +270,7 @@ export const fromPool = Effect.fnUntraced(function*(
208
270
  let client: Pg.PoolClient | undefined = undefined
209
271
  function onError(cause: Error) {
210
272
  cleanup(cause)
211
- resume(Effect.fail(new SqlError({ cause, message: "Connection error" })))
273
+ resume(Effect.fail(new SqlError({ reason: classifyError(cause, "Connection error", "acquireConnection") })))
212
274
  }
213
275
  function cleanup(cause?: Error) {
214
276
  if (!done) client?.release(cause)
@@ -217,11 +279,23 @@ export const fromPool = Effect.fnUntraced(function*(
217
279
  }
218
280
  pool.connect((cause, client_) => {
219
281
  if (cause) {
220
- return resume(Effect.fail(new SqlError({ cause, message: "Failed to acquire connection" })))
282
+ return resume(
283
+ Effect.fail(
284
+ new SqlError({
285
+ reason: classifyError(cause, "Failed to acquire connection", "acquireConnection")
286
+ })
287
+ )
288
+ )
221
289
  } else if (!client_) {
222
290
  return resume(
223
291
  Effect.fail(
224
- new SqlError({ message: "Failed to acquire connection", cause: new Error("No client returned") })
292
+ new SqlError({
293
+ reason: new ConnectionError({
294
+ message: "Failed to acquire connection",
295
+ cause: new Error("No client returned"),
296
+ operation: "acquireConnection"
297
+ })
298
+ })
225
299
  )
226
300
  )
227
301
  } else if (done) {
@@ -250,7 +324,9 @@ export const fromPool = Effect.fnUntraced(function*(
250
324
  return this.runWithClient<ReadonlyArray<any>>((client, resume) => {
251
325
  client.query(query, params as any, (err, result) => {
252
326
  if (err) {
253
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to execute statement" })))
327
+ resume(
328
+ Effect.fail(new SqlError({ reason: classifyError(err, "Failed to execute statement", "execute") }))
329
+ )
254
330
  } else {
255
331
  // Multi-statement queries return an array of results
256
332
  resume(Effect.succeed(
@@ -276,7 +352,9 @@ export const fromPool = Effect.fnUntraced(function*(
276
352
  return this.runWithClient<Pg.Result>((client, resume) => {
277
353
  client.query(sql, params as any, (err, result) => {
278
354
  if (err) {
279
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to execute statement" })))
355
+ resume(
356
+ Effect.fail(new SqlError({ reason: classifyError(err, "Failed to execute statement", "execute") }))
357
+ )
280
358
  } else {
281
359
  resume(Effect.succeed(result))
282
360
  }
@@ -296,7 +374,9 @@ export const fromPool = Effect.fnUntraced(function*(
296
374
  },
297
375
  (err, result) => {
298
376
  if (err) {
299
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to execute statement" })))
377
+ resume(
378
+ Effect.fail(new SqlError({ reason: classifyError(err, "Failed to execute statement", "execute") }))
379
+ )
300
380
  } else {
301
381
  resume(Effect.succeed(result.rows))
302
382
  }
@@ -326,7 +406,7 @@ export const fromPool = Effect.fnUntraced(function*(
326
406
  return Effect.callback<Arr.NonEmptyReadonlyArray<any>, SqlError | Cause.Done>((resume) => {
327
407
  cursor.read(128, (err, rows) => {
328
408
  if (err) {
329
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to execute statement" })))
409
+ resume(Effect.fail(new SqlError({ reason: classifyError(err, "Failed to execute statement", "stream") })))
330
410
  } else if (Arr.isArrayNonEmpty(rows)) {
331
411
  resume(Effect.succeed(transformRows ? transformRows(rows) as any : rows))
332
412
  } else {
@@ -344,7 +424,17 @@ export const fromPool = Effect.fnUntraced(function*(
344
424
  let cause: Error | undefined = undefined
345
425
  pool.connect((err, client, release) => {
346
426
  if (err) {
347
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to acquire connection for transaction" })))
427
+ resume(
428
+ Effect.fail(
429
+ new SqlError({
430
+ reason: classifyError(
431
+ err,
432
+ "Failed to acquire connection for transaction",
433
+ "acquireConnection"
434
+ )
435
+ })
436
+ )
437
+ )
348
438
  } else {
349
439
  resume(Effect.as(
350
440
  Scope.addFinalizer(
@@ -365,8 +455,31 @@ export const fromPool = Effect.fnUntraced(function*(
365
455
  })
366
456
  const reserve = Effect.map(reserveRaw, (client) => new ConnectionImpl(client))
367
457
 
458
+ const onListenClientError = (_: Error) => {
459
+ }
460
+
368
461
  const listenClient = yield* RcRef.make({
369
- acquire: reserveRaw
462
+ acquire: Effect.acquireRelease(
463
+ Effect.tryPromise({
464
+ try: async () => {
465
+ const client = new Pg.Client(pool.options)
466
+ await client.connect()
467
+ client.on("error", onListenClientError)
468
+ return client
469
+ },
470
+ catch: (cause) =>
471
+ new SqlError({
472
+ reason: classifyError(cause, "Failed to acquire connection for listen", "acquireConnection")
473
+ })
474
+ }),
475
+ (client) =>
476
+ Effect.promise(() => {
477
+ client.off("error", onListenClientError)
478
+ return client.end()
479
+ }).pipe(
480
+ Effect.timeoutOption(1000)
481
+ )
482
+ )
370
483
  })
371
484
 
372
485
  let config: PgClientConfig = {
@@ -431,7 +544,7 @@ export const fromPool = Effect.fnUntraced(function*(
431
544
  )
432
545
  yield* Effect.tryPromise({
433
546
  try: () => client.query(`LISTEN ${Pg.escapeIdentifier(channel)}`),
434
- catch: (cause) => new SqlError({ cause, message: "Failed to listen" })
547
+ catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to listen", "listen") })
435
548
  })
436
549
  client.on("notification", onNotification)
437
550
  })),
@@ -439,7 +552,7 @@ export const fromPool = Effect.fnUntraced(function*(
439
552
  Effect.callback<void, SqlError>((resume) => {
440
553
  pool.query(`NOTIFY ${Pg.escapeIdentifier(channel)}, $1`, [payload], (err) => {
441
554
  if (err) {
442
- resume(Effect.fail(new SqlError({ cause: err, message: "Failed to notify" })))
555
+ resume(Effect.fail(new SqlError({ reason: classifyError(err, "Failed to notify", "notify") })))
443
556
  } else {
444
557
  resume(Effect.void)
445
558
  }