@runlot/pg 0.1.0-rc.12 → 0.1.0-rc.121
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/README.md +12 -12
- package/dist/bundler.d.ts +9 -9
- package/dist/bundler.d.ts.map +1 -1
- package/dist/bundler.js +99 -51
- package/dist/bundler.js.map +1 -1
- package/dist/client.d.ts +34 -14
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +173 -33
- package/dist/client.js.map +1 -1
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +6 -5
- package/dist/emitter.js.map +1 -1
- package/dist/errors.d.ts +8 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -7
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/orm/drizzle.d.ts.map +1 -1
- package/dist/orm/drizzle.js +5 -4
- package/dist/orm/drizzle.js.map +1 -1
- package/dist/orm/knex.d.ts.map +1 -1
- package/dist/orm/knex.js +7 -8
- package/dist/orm/knex.js.map +1 -1
- package/dist/orm/kysely.js +3 -3
- package/dist/orm/kysely.js.map +1 -1
- package/dist/orm/prisma.d.ts.map +1 -1
- package/dist/orm/prisma.js +16 -12
- package/dist/orm/prisma.js.map +1 -1
- package/dist/orm/sequelize.d.ts.map +1 -1
- package/dist/orm/sequelize.js +9 -6
- package/dist/orm/sequelize.js.map +1 -1
- package/dist/orm/typeorm.d.ts.map +1 -1
- package/dist/orm/typeorm.js +6 -5
- package/dist/orm/typeorm.js.map +1 -1
- package/dist/type-parsers.d.ts +14 -10
- package/dist/type-parsers.d.ts.map +1 -1
- package/dist/type-parsers.js +41 -31
- package/dist/type-parsers.js.map +1 -1
- package/dist/types.d.ts +24 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -4
- package/dist/types.js.map +1 -1
- package/package.json +9 -4
package/dist/client.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
//
|
|
1
|
+
// `Client`, `Pool` and `PoolClient` in the node-postgres shape
|
|
2
|
+
// (docs/pg-driver-support.md §3.2).
|
|
2
3
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// `BEGIN…COMMIT`, prepared
|
|
6
|
-
//
|
|
4
|
+
// There is no connection. `Pool.query` goes to `env.db.tryExec` (a session per
|
|
5
|
+
// call), while `Client` and the `PoolClient` that `Pool.connect()` gives you
|
|
6
|
+
// hold one `env.db.session()` — `BEGIN…COMMIT`, prepared statements and `SET`
|
|
7
|
+
// are kept inside that. `release()` is `close()`.
|
|
7
8
|
import { Emitter } from "./emitter.js";
|
|
8
9
|
import { DatabaseError } from "./errors.js";
|
|
9
10
|
import { convertCell, types } from "./type-parsers.js";
|
|
10
|
-
// ----
|
|
11
|
-
/** CommandComplete
|
|
11
|
+
// ---- The shape of a result ----
|
|
12
|
+
/** Moves a CommandComplete tag into pg's `command`, `rowCount` and `oid`. */
|
|
12
13
|
export function parseCommandTag(tag) {
|
|
13
14
|
if (!tag)
|
|
14
15
|
return { command: "", rowCount: null, oid: 0 };
|
|
@@ -58,8 +59,9 @@ function shapeResult(r, cfg) {
|
|
|
58
59
|
const o = {};
|
|
59
60
|
for (let i = 0; i < columns.length; i++) {
|
|
60
61
|
const name = columns[i].name;
|
|
61
|
-
//
|
|
62
|
-
//
|
|
62
|
+
// When a column is named "__proto__", assignment calls the prototype
|
|
63
|
+
// setter (the same reason as in the facade). That one name is placed
|
|
64
|
+
// with defineProperty.
|
|
63
65
|
if (name === "__proto__") {
|
|
64
66
|
Object.defineProperty(o, name, { value: v[i], enumerable: true, writable: true, configurable: true });
|
|
65
67
|
}
|
|
@@ -71,7 +73,8 @@ function shapeResult(r, cfg) {
|
|
|
71
73
|
});
|
|
72
74
|
}
|
|
73
75
|
const tag = parseCommandTag(r.commandTag);
|
|
74
|
-
//
|
|
76
|
+
// An Execute in the extended protocol may have no tag. If there are
|
|
77
|
+
// columns, treat it as a SELECT.
|
|
75
78
|
if (tag.command === "" && columns.length > 0) {
|
|
76
79
|
tag.command = "SELECT";
|
|
77
80
|
tag.rowCount = rows.length;
|
|
@@ -90,8 +93,8 @@ function normalizeParams(values) {
|
|
|
90
93
|
return values.map((v) => {
|
|
91
94
|
if (v === undefined)
|
|
92
95
|
return null;
|
|
93
|
-
// pg
|
|
94
|
-
// JSON
|
|
96
|
+
// pg serialises an array parameter as a PostgreSQL array literal. The
|
|
97
|
+
// facade sends an array as JSON, so we match pg's shape here.
|
|
95
98
|
if (Array.isArray(v))
|
|
96
99
|
return arrayLiteral(v);
|
|
97
100
|
if (v instanceof Uint8Array && !(v instanceof ArrayBuffer)) {
|
|
@@ -135,15 +138,45 @@ function pickCallback(args) {
|
|
|
135
138
|
return a;
|
|
136
139
|
return undefined;
|
|
137
140
|
}
|
|
141
|
+
// Read off Symbol rather than written as `Symbol.dispose`: this package compiles
|
|
142
|
+
// against lib ES2022, which does not declare it, and a runtime without it simply
|
|
143
|
+
// has no disposable handles.
|
|
144
|
+
const DISPOSE = Symbol.dispose;
|
|
145
|
+
/**
|
|
146
|
+
* Also dispose the handle, when the facade gives us a disposable one.
|
|
147
|
+
*
|
|
148
|
+
* `close()` alone was not enough in production: on `js/eatkk` the actor's
|
|
149
|
+
* `/owner/counts` read `sessionHandles {opened:3, closed:3, reaped:3, open:0}`,
|
|
150
|
+
* and `reaped ⊆ closed` — every handle the app opened came back by the 30 s TTL
|
|
151
|
+
* and none by a client close, because the close was still in flight when the
|
|
152
|
+
* request's context ended and was cancelled with it. The facade's
|
|
153
|
+
* `[Symbol.dispose]` closes through `waitUntil`, which outlives the request, so
|
|
154
|
+
* a handle that has one gets it too. It is synchronous and best-effort: a throw
|
|
155
|
+
* here must not become the caller's error, since the session is gone either way.
|
|
156
|
+
*/
|
|
157
|
+
function disposeSession(s) {
|
|
158
|
+
if (DISPOSE === undefined)
|
|
159
|
+
return;
|
|
160
|
+
const d = s[DISPOSE];
|
|
161
|
+
if (typeof d !== "function")
|
|
162
|
+
return;
|
|
163
|
+
try {
|
|
164
|
+
d.call(s);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// Nowhere to report it. The actor reclaims the session by TTL (§3.1).
|
|
168
|
+
}
|
|
169
|
+
}
|
|
138
170
|
// ---- Client ----
|
|
139
171
|
/**
|
|
140
|
-
*
|
|
141
|
-
* `connect()`
|
|
142
|
-
*
|
|
172
|
+
* A client that holds one session. `connect()` opens the session and `end()`
|
|
173
|
+
* closes it. A `query` before `connect()` opens the session on its own — pg
|
|
174
|
+
* throws there, but opening is easier for an ORM to deal with and loses
|
|
175
|
+
* nothing.
|
|
143
176
|
*/
|
|
144
177
|
export class Client extends Emitter {
|
|
145
178
|
db;
|
|
146
|
-
/** Sequelize
|
|
179
|
+
/** Sequelize hooks `client.connection.on('parameterStatus')`. */
|
|
147
180
|
connection = new Emitter();
|
|
148
181
|
processID = null;
|
|
149
182
|
secretKey = null;
|
|
@@ -156,7 +189,7 @@ export class Client extends Emitter {
|
|
|
156
189
|
super();
|
|
157
190
|
const db = config.db ?? boundDb(config);
|
|
158
191
|
if (!db)
|
|
159
|
-
throw new Error("@runlot/pg: `db`
|
|
192
|
+
throw new Error("@runlot/pg: `db` is required. Create a client with new Client({ db: env.db }).");
|
|
160
193
|
this.db = db;
|
|
161
194
|
}
|
|
162
195
|
get session() {
|
|
@@ -208,8 +241,14 @@ export class Client extends Emitter {
|
|
|
208
241
|
const s = this.#session;
|
|
209
242
|
this.#session = null;
|
|
210
243
|
this._connected = false;
|
|
211
|
-
if (s)
|
|
212
|
-
|
|
244
|
+
if (s) {
|
|
245
|
+
try {
|
|
246
|
+
await s.close();
|
|
247
|
+
}
|
|
248
|
+
finally {
|
|
249
|
+
disposeSession(s);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
213
252
|
this.emit("end");
|
|
214
253
|
}
|
|
215
254
|
escapeIdentifier(s) {
|
|
@@ -240,26 +279,36 @@ export class PoolClient extends Client {
|
|
|
240
279
|
super({ db });
|
|
241
280
|
this.#pool = pool;
|
|
242
281
|
}
|
|
243
|
-
/** pg
|
|
282
|
+
/** pg's `release(err?)`. Passing an error throws the session away — we
|
|
283
|
+
* always throw it away, so it is the same. */
|
|
244
284
|
release(_err) {
|
|
245
285
|
if (this.#released)
|
|
246
286
|
return;
|
|
247
287
|
this.#released = true;
|
|
248
288
|
this.#pool._forget(this);
|
|
249
|
-
//
|
|
250
|
-
|
|
289
|
+
// `release()` is synchronous in pg's API, so the close cannot be awaited
|
|
290
|
+
// here. It used to be fire-and-forget, which let the next `connect()`
|
|
291
|
+
// overtake it and ask the actor for a session while the released one was
|
|
292
|
+
// still counted — the engine's session cap refuses that. The promise goes
|
|
293
|
+
// to the pool instead: `connect()` and `end()` wait for outstanding closes
|
|
294
|
+
// first. There is still nowhere to report a close failure; the actor
|
|
295
|
+
// reclaims the session by TTL (§3.1).
|
|
296
|
+
this.#pool._closing(this.end());
|
|
251
297
|
}
|
|
252
298
|
}
|
|
299
|
+
/** The bound on how long a pool waits for `release()`'s closes. */
|
|
300
|
+
export const DEFAULT_CLOSE_WAIT_MS = 5_000;
|
|
253
301
|
export class Pool extends Emitter {
|
|
254
302
|
db;
|
|
255
303
|
options;
|
|
256
304
|
#clients = new Set();
|
|
305
|
+
#closing = new Set();
|
|
257
306
|
#ended = false;
|
|
258
307
|
constructor(config) {
|
|
259
308
|
super();
|
|
260
309
|
const db = config.db ?? boundDb(config);
|
|
261
310
|
if (!db)
|
|
262
|
-
throw new Error("@runlot/pg: `db`
|
|
311
|
+
throw new Error("@runlot/pg: `db` is required. Create a pool with new Pool({ db: env.db }).");
|
|
263
312
|
this.db = db;
|
|
264
313
|
this.options = { ...config };
|
|
265
314
|
}
|
|
@@ -282,15 +331,52 @@ export class Pool extends Emitter {
|
|
|
282
331
|
p.then((c) => cb(null, c, (err) => c.release(err)), (e) => cb(e));
|
|
283
332
|
}
|
|
284
333
|
async #acquire() {
|
|
334
|
+
if (this.#ended)
|
|
335
|
+
throw new Error("Cannot use a pool after calling end on the pool");
|
|
336
|
+
// Before asking for a new session, let the sessions that `release()` is
|
|
337
|
+
// closing finish. Otherwise the two cross at the actor and the engine's
|
|
338
|
+
// session cap refuses the new one.
|
|
339
|
+
await this.#settleClosing();
|
|
285
340
|
if (this.#ended)
|
|
286
341
|
throw new Error("Cannot use a pool after calling end on the pool");
|
|
287
342
|
const c = new PoolClient(this, this.db);
|
|
288
|
-
//
|
|
343
|
+
// The session is opened here. In pg too, once connect() returns the
|
|
344
|
+
// connection is alive.
|
|
289
345
|
await c.connect();
|
|
290
346
|
this.#clients.add(c);
|
|
291
347
|
this.emit("connect", c);
|
|
292
348
|
return c;
|
|
293
349
|
}
|
|
350
|
+
/** Called by `PoolClient.release()`, which cannot await its own close. */
|
|
351
|
+
_closing(close) {
|
|
352
|
+
const tracked = close.catch(() => undefined).then(() => undefined);
|
|
353
|
+
this.#closing.add(tracked);
|
|
354
|
+
void tracked.then(() => this.#closing.delete(tracked));
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Waits for the closes outstanding **now**, for at most `closeWaitMs`.
|
|
358
|
+
*
|
|
359
|
+
* One round only: a close that starts during the wait is not waited for, so
|
|
360
|
+
* two clients releasing in a loop cannot keep a caller here for ever.
|
|
361
|
+
*/
|
|
362
|
+
async #settleClosing() {
|
|
363
|
+
if (this.#closing.size === 0)
|
|
364
|
+
return;
|
|
365
|
+
const outstanding = Promise.all([...this.#closing]).then(() => undefined);
|
|
366
|
+
const raw = this.options.closeWaitMs;
|
|
367
|
+
const bound = typeof raw === "number" && Number.isFinite(raw) && raw >= 0 ? raw : DEFAULT_CLOSE_WAIT_MS;
|
|
368
|
+
let timer;
|
|
369
|
+
const expiry = new Promise((resolve) => {
|
|
370
|
+
timer = setTimeout(resolve, bound);
|
|
371
|
+
});
|
|
372
|
+
try {
|
|
373
|
+
await Promise.race([outstanding, expiry]);
|
|
374
|
+
}
|
|
375
|
+
finally {
|
|
376
|
+
if (timer !== undefined)
|
|
377
|
+
clearTimeout(timer);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
294
380
|
_forget(c) {
|
|
295
381
|
this.#clients.delete(c);
|
|
296
382
|
this.emit("remove", c);
|
|
@@ -307,13 +393,58 @@ export class Pool extends Emitter {
|
|
|
307
393
|
this.#ended = true;
|
|
308
394
|
const all = [...this.#clients];
|
|
309
395
|
this.#clients.clear();
|
|
310
|
-
|
|
396
|
+
// The closes `release()` started count as work this pool still owes, so
|
|
397
|
+
// end() is not done until they are — bounded the same way.
|
|
398
|
+
const p = Promise.all(all.map((c) => c.end().catch(() => undefined)))
|
|
399
|
+
.then(() => this.#settleClosing())
|
|
400
|
+
.then(() => undefined);
|
|
311
401
|
if (!cb)
|
|
312
402
|
return p;
|
|
313
403
|
p.then(() => cb(), (e) => cb(e));
|
|
314
404
|
}
|
|
315
405
|
}
|
|
316
|
-
// ----
|
|
406
|
+
// ---- Constructor names are part of the driver contract ----
|
|
407
|
+
//
|
|
408
|
+
// An ORM may decide what it was handed by reading the **class name**. Drizzle's
|
|
409
|
+
// node-postgres session does exactly that before it opens a transaction:
|
|
410
|
+
//
|
|
411
|
+
// const isPool = this.client instanceof Pool
|
|
412
|
+
// || Object.getPrototypeOf(this.client).constructor.name.includes("Pool");
|
|
413
|
+
//
|
|
414
|
+
// and when that is false it sends `BEGIN` through `Pool.query()` — a session per
|
|
415
|
+
// call, so the BEGIN is rolled back the moment it lands and every statement
|
|
416
|
+
// after it runs outside any transaction, with no error anywhere. A silently
|
|
417
|
+
// unwrapped transaction is the worst shape a defect can take.
|
|
418
|
+
//
|
|
419
|
+
// Two reasons the name is the only signal that reaches Drizzle:
|
|
420
|
+
//
|
|
421
|
+
// - `instanceof Pool` cannot hold. `Pool` there is the `pg` module Drizzle
|
|
422
|
+
// itself imported. `bundler.ts` aliases `pg` → `@runlot/pg` for the workers
|
|
423
|
+
// it builds, but on the `framework: next` path OpenNext bundles the app
|
|
424
|
+
// first (`web/packages/next/src/build.ts`), and our alias never sees that
|
|
425
|
+
// pass: inside the OpenNext bundle `pg` resolves to whatever the project
|
|
426
|
+
// has. Even when it resolves back to this package, it is a second copy at a
|
|
427
|
+
// second path, so its `Pool` is a different class object than the one that
|
|
428
|
+
// built the pool. `instanceof` is false either way.
|
|
429
|
+
// - OpenNext builds with `minify: true`, and `Function.prototype.name` follows
|
|
430
|
+
// the minified binding. `class Pool` becomes `class e`, and
|
|
431
|
+
// `"e".includes("Pool")` is false.
|
|
432
|
+
//
|
|
433
|
+
// So the names are pinned here rather than asked of a bundler flag. A
|
|
434
|
+
// `keepNames` setting would only cover the bundles we run ourselves; these
|
|
435
|
+
// classes travel inside the user's build, through minifiers we never configure.
|
|
436
|
+
function pinName(cls, name) {
|
|
437
|
+
Object.defineProperty(cls, "name", { value: name, configurable: true });
|
|
438
|
+
}
|
|
439
|
+
pinName(Client, "Client");
|
|
440
|
+
pinName(Pool, "Pool");
|
|
441
|
+
// **"Client", not "PoolClient".** In pg, `pool.connect()` answers with a
|
|
442
|
+
// `Client` that has had `release` attached, so "PoolClient" is a name no ORM
|
|
443
|
+
// sniffing pg has ever seen. It also contains "Pool", which would make
|
|
444
|
+
// Drizzle's check above read a borrowed client as a pool: it would then call
|
|
445
|
+
// `connect()` on it (answering `undefined`) and `release()` on the result.
|
|
446
|
+
pinName(PoolClient, "Client");
|
|
447
|
+
// ---- Binding the module ----
|
|
317
448
|
const BOUND = Symbol.for("@runlot/pg.bound");
|
|
318
449
|
function boundDb(config) {
|
|
319
450
|
if (config && typeof config === "object" && typeof config.tryExec === "function")
|
|
@@ -322,15 +453,17 @@ function boundDb(config) {
|
|
|
322
453
|
return b;
|
|
323
454
|
}
|
|
324
455
|
/**
|
|
325
|
-
* `db`
|
|
456
|
+
* A pg-shaped module with `db` bound in advance.
|
|
326
457
|
*
|
|
327
|
-
*
|
|
328
|
-
* `dialectModule`, Knex
|
|
329
|
-
*
|
|
458
|
+
* It is handed to the places where an ORM takes a whole driver module
|
|
459
|
+
* (TypeORM's `driver`, Sequelize's `dialectModule`, Knex's `_driver()`). Those
|
|
460
|
+
* ORMs call `new Pool(options)` with their own options, so there is no way to
|
|
461
|
+
* put `db` into the options — it is bound here.
|
|
330
462
|
*/
|
|
331
463
|
export function pgModule(db) {
|
|
332
|
-
//
|
|
333
|
-
//
|
|
464
|
+
// Because an ORM passes its own connection options straight through, a key
|
|
465
|
+
// called `db` can arrive by accident (Knex's `connection` becomes the Client
|
|
466
|
+
// options wholesale). We use it only when it has the shape of a Db.
|
|
334
467
|
const pick = (c) => (isDb(c?.db) ? c.db : db);
|
|
335
468
|
class BoundClient extends Client {
|
|
336
469
|
constructor(config) {
|
|
@@ -342,6 +475,12 @@ export function pgModule(db) {
|
|
|
342
475
|
super({ ...(config ?? {}), db: pick(config) });
|
|
343
476
|
}
|
|
344
477
|
}
|
|
478
|
+
// Same contract as the base classes above, and the same reason: these are the
|
|
479
|
+
// classes TypeORM, Sequelize and Knex construct, so they are the ones an ORM
|
|
480
|
+
// reads a name off. "BoundPool" keeps "Pool" in it and keeps the stack
|
|
481
|
+
// readable.
|
|
482
|
+
pinName(BoundClient, "Client");
|
|
483
|
+
pinName(BoundPool, "BoundPool");
|
|
345
484
|
return {
|
|
346
485
|
Client: BoundClient,
|
|
347
486
|
Pool: BoundPool,
|
|
@@ -356,7 +495,8 @@ export function pgModule(db) {
|
|
|
356
495
|
function isDb(v) {
|
|
357
496
|
return !!v && typeof v === "object" && typeof v.tryExec === "function";
|
|
358
497
|
}
|
|
359
|
-
/** pg
|
|
498
|
+
/** pg's `defaults`. TypeORM touches `parseInt8` — we always keep int8 as a
|
|
499
|
+
* string. */
|
|
360
500
|
export const defaults = {
|
|
361
501
|
parseInt8: false,
|
|
362
502
|
ssl: false,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/emitter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAQA,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE7C,qBAAa,OAAO;;IAGlB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKrC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI9C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKvC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAQtC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIjD,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMxC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAkBjD"}
|
package/dist/emitter.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
//
|
|
1
|
+
// A minimal emitter used without node:events.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
// ORM
|
|
5
|
-
//
|
|
6
|
-
//
|
|
3
|
+
// A user worker comes up without `nodejs_compat` (config.go — `experimental`
|
|
4
|
+
// alone). What an ORM hooks onto a Client or Pool is about
|
|
5
|
+
// `on('error')`, `once('end')` and `removeListener`, so that is all it needs.
|
|
6
|
+
// Pulling in the whole EventEmitter would, at that moment, make this package
|
|
7
|
+
// require the node runtime.
|
|
7
8
|
export class Emitter {
|
|
8
9
|
#listeners = new Map();
|
|
9
10
|
on(event, fn) {
|
package/dist/emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,6EAA6E;AAC7E,2DAA2D;AAC3D,8EAA8E;AAC9E,6EAA6E;AAC7E,4BAA4B;AAI5B,MAAM,OAAO,OAAO;IAClB,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;IAElE,EAAE,CAAC,KAAa,EAAE,EAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,EAAY;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,EAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,EAAY;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,EAAY;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,KAAc;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;;YAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,GAAG,IAAe;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,EAAY,EAAE,IAAa;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { DbErrorData } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* node-postgres
|
|
3
|
+
* The shape of node-postgres' `DatabaseError`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* ORMs read the SQLSTATE out of `err.code` (Prisma's 23505 → unique violation
|
|
6
|
+
* mapping, Knex's retry decision). The Error that `env.db.exec` throws loses
|
|
7
|
+
* its custom fields at the RPC boundary, but this adapter is JS inside the
|
|
8
|
+
* worker and can make its own Error — so it takes the value from `tryExec` and
|
|
9
|
+
* throws here.
|
|
9
10
|
*/
|
|
10
11
|
export declare class DatabaseError extends Error {
|
|
11
12
|
readonly code: string;
|
|
@@ -13,7 +14,8 @@ export declare class DatabaseError extends Error {
|
|
|
13
14
|
readonly detail: string | undefined;
|
|
14
15
|
readonly hint: string | undefined;
|
|
15
16
|
readonly position: string | undefined;
|
|
16
|
-
/** pg
|
|
17
|
+
/** pg always keeps this field. We have no value for it, so it stays
|
|
18
|
+
* undefined. */
|
|
17
19
|
readonly schema: string | undefined;
|
|
18
20
|
readonly table: string | undefined;
|
|
19
21
|
readonly column: string | undefined;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;qBACiB;IACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAa;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,CAAC,EAAE,WAAW;CAY3B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D"}
|
package/dist/errors.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* node-postgres
|
|
2
|
+
* The shape of node-postgres' `DatabaseError`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* ORMs read the SQLSTATE out of `err.code` (Prisma's 23505 → unique violation
|
|
5
|
+
* mapping, Knex's retry decision). The Error that `env.db.exec` throws loses
|
|
6
|
+
* its custom fields at the RPC boundary, but this adapter is JS inside the
|
|
7
|
+
* worker and can make its own Error — so it takes the value from `tryExec` and
|
|
8
|
+
* throws here.
|
|
8
9
|
*/
|
|
9
10
|
export class DatabaseError extends Error {
|
|
10
11
|
code;
|
|
@@ -12,7 +13,8 @@ export class DatabaseError extends Error {
|
|
|
12
13
|
detail;
|
|
13
14
|
hint;
|
|
14
15
|
position;
|
|
15
|
-
/** pg
|
|
16
|
+
/** pg always keeps this field. We have no value for it, so it stays
|
|
17
|
+
* undefined. */
|
|
16
18
|
schema = undefined;
|
|
17
19
|
table = undefined;
|
|
18
20
|
column = undefined;
|
|
@@ -27,7 +29,8 @@ export class DatabaseError extends Error {
|
|
|
27
29
|
length;
|
|
28
30
|
constructor(e) {
|
|
29
31
|
super(e.message);
|
|
30
|
-
// pg
|
|
32
|
+
// pg's DatabaseError has the name "error". There is code that checks that
|
|
33
|
+
// value.
|
|
31
34
|
this.name = "error";
|
|
32
35
|
this.code = e.code;
|
|
33
36
|
this.severity = e.severity;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,IAAI,CAAqB;IACzB,QAAQ,CAAqB;IACtC;qBACiB;IACR,MAAM,GAAuB,SAAS,CAAC;IACvC,KAAK,GAAuB,SAAS,CAAC;IACtC,MAAM,GAAuB,SAAS,CAAC;IACvC,UAAU,GAAuB,SAAS,CAAC;IAC3C,QAAQ,GAAuB,SAAS,CAAC;IACzC,IAAI,GAAuB,SAAS,CAAC;IACrC,IAAI,GAAuB,SAAS,CAAC;IACrC,OAAO,GAAuB,SAAS,CAAC;IACxC,gBAAgB,GAAuB,SAAS,CAAC;IACjD,aAAa,GAAuB,SAAS,CAAC;IAC9C,KAAK,GAAuB,SAAS,CAAC;IACtC,MAAM,CAAS;IAExB,YAAY,CAAc;QACxB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjB,0EAA0E;QAC1E,SAAS;QACT,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,OAAO,CAAC,YAAY,aAAa,CAAC;AACpC,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAY,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9F,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/H,QAAA,MAAM,gBAAgB,uBAAoC,CAAC;AAC3D,QAAA,MAAM,aAAa,uBAAiC,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3C,wBAWE"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
// @runlot/pg —
|
|
1
|
+
// @runlot/pg — a node-postgres compatible adapter on top of `env.db`
|
|
2
|
+
// (docs/pg-driver-support.md §3.2).
|
|
2
3
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
4
|
+
// The default export has the shape of the `pg` module. When an ORM looks for the driver
|
|
5
|
+
// with `import pg from "pg"`, a bundler alias (`pg` → `@runlot/pg`) hands it this module.
|
|
5
6
|
import { Client, Pool, PoolClient, defaults, pgModule } from "./client.js";
|
|
6
7
|
import { DatabaseError } from "./errors.js";
|
|
7
8
|
import { types } from "./type-parsers.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,oCAAoC;AACpC,EAAE;AACF,wFAAwF;AACxF,0FAA0F;AAC1F,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG9F,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;AAE3C,eAAe;IACb,MAAM;IACN,IAAI;IACJ,UAAU;IACV,aAAa;IACb,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM,EAAE,IAAI;IACZ,gBAAgB;IAChB,aAAa;CACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../src/orm/drizzle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../src/orm/drizzle.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wBAAgB,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrF,EAAE,EAAE,EAAE,EACN,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,cAAc,CAAC,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAG7C"}
|
package/dist/orm/drizzle.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
// Drizzle: `drizzle-orm/node-postgres
|
|
1
|
+
// Drizzle: we give our Pool to `drizzle-orm/node-postgres`.
|
|
2
2
|
//
|
|
3
|
-
// Drizzle
|
|
4
|
-
// (session.js).
|
|
5
|
-
//
|
|
3
|
+
// Drizzle only calls `client.query({text, values, rowMode:'array', types})`
|
|
4
|
+
// (session.js). It tries to receive dates and intervals as strings through
|
|
5
|
+
// `types.getTypeParser`, and this adapter's per-query parser injection supports
|
|
6
|
+
// exactly that.
|
|
6
7
|
import { drizzle as nodePg } from "drizzle-orm/node-postgres";
|
|
7
8
|
import { Pool } from "../client.js";
|
|
8
9
|
export function drizzle(db, config) {
|
package/dist/orm/drizzle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../src/orm/drizzle.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../src/orm/drizzle.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,gFAAgF;AAChF,gBAAgB;AAChB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAuB,MAAM,2BAA2B,CAAC;AAInF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,MAAM,UAAU,OAAO,CACrB,EAAM,EACN,MAA+B;IAE/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,IAAyB,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAA2D,CAAC;AACpI,CAAC"}
|
package/dist/orm/knex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../src/orm/knex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../src/orm/knex.ts"],"names":[],"mappings":"AAMA,OAAoB,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAG3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,QAAQ,CAOlD;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,IAAI,CAStF"}
|
package/dist/orm/knex.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
// Knex: `client: 'pg'`
|
|
2
|
-
//
|
|
3
|
-
// 받는다.
|
|
1
|
+
// Knex: the `_driver()` of `client: 'pg'` does `require('pg')`. We build a client
|
|
2
|
+
// class that puts our module in that spot — Knex accepts a class for `client`.
|
|
4
3
|
//
|
|
5
|
-
// Knex
|
|
6
|
-
//
|
|
7
|
-
// 0
|
|
4
|
+
// Knex's pg client does `new Client()` + `connect()` per connection and reads
|
|
5
|
+
// `select version()` on the first one. The pool is managed by tarn; with a
|
|
6
|
+
// minimum size of 0 it holds no idle sessions.
|
|
8
7
|
import knexFactory, {} from "knex";
|
|
9
8
|
import PgClient from "knex/lib/dialects/postgres/index.js";
|
|
10
9
|
import { pgModule } from "../client.js";
|
|
@@ -20,8 +19,8 @@ export function knex(db, config) {
|
|
|
20
19
|
return knexFactory({
|
|
21
20
|
...(config ?? {}),
|
|
22
21
|
client: knexClient(db),
|
|
23
|
-
//
|
|
24
|
-
//
|
|
22
|
+
// A value has to be here or Knex warns that there is no connection. This
|
|
23
|
+
// object goes straight into `new Client(options)`, so it carries no `db` key.
|
|
25
24
|
connection: { runlot: true },
|
|
26
25
|
pool: { min: 0, max: 4, ...(config?.pool ?? {}) },
|
|
27
26
|
});
|