@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.
Files changed (45) hide show
  1. package/README.md +12 -12
  2. package/dist/bundler.d.ts +9 -9
  3. package/dist/bundler.d.ts.map +1 -1
  4. package/dist/bundler.js +99 -51
  5. package/dist/bundler.js.map +1 -1
  6. package/dist/client.d.ts +34 -14
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +173 -33
  9. package/dist/client.js.map +1 -1
  10. package/dist/emitter.d.ts.map +1 -1
  11. package/dist/emitter.js +6 -5
  12. package/dist/emitter.js.map +1 -1
  13. package/dist/errors.d.ts +8 -6
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js +10 -7
  16. package/dist/errors.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/orm/drizzle.d.ts.map +1 -1
  21. package/dist/orm/drizzle.js +5 -4
  22. package/dist/orm/drizzle.js.map +1 -1
  23. package/dist/orm/knex.d.ts.map +1 -1
  24. package/dist/orm/knex.js +7 -8
  25. package/dist/orm/knex.js.map +1 -1
  26. package/dist/orm/kysely.js +3 -3
  27. package/dist/orm/kysely.js.map +1 -1
  28. package/dist/orm/prisma.d.ts.map +1 -1
  29. package/dist/orm/prisma.js +16 -12
  30. package/dist/orm/prisma.js.map +1 -1
  31. package/dist/orm/sequelize.d.ts.map +1 -1
  32. package/dist/orm/sequelize.js +9 -6
  33. package/dist/orm/sequelize.js.map +1 -1
  34. package/dist/orm/typeorm.d.ts.map +1 -1
  35. package/dist/orm/typeorm.js +6 -5
  36. package/dist/orm/typeorm.js.map +1 -1
  37. package/dist/type-parsers.d.ts +14 -10
  38. package/dist/type-parsers.d.ts.map +1 -1
  39. package/dist/type-parsers.js +41 -31
  40. package/dist/type-parsers.js.map +1 -1
  41. package/dist/types.d.ts +24 -10
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/types.js +6 -4
  44. package/dist/types.js.map +1 -1
  45. package/package.json +9 -4
package/dist/client.js CHANGED
@@ -1,14 +1,15 @@
1
- // node-postgres 모양의 `Client`·`Pool`·`PoolClient` (docs/pg-driver-support.md §3.2).
1
+ // `Client`, `Pool` and `PoolClient` in the node-postgres shape
2
+ // (docs/pg-driver-support.md §3.2).
2
3
  //
3
- // 연결은 없다. `Pool.query` 는 `env.db.tryExec` 로 가고 (호출당 세션), `Client`
4
- // 와 `Pool.connect()` 가 주는 `PoolClient` 는 `env.db.session()` 하나를 쥔다 —
5
- // `BEGIN…COMMIT`, prepared statement, `SET` 이 그 안에서 유지된다. `release()`
6
- // 가 곧 `close()` 다.
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 태그를 pg 의 `command`·`rowCount`·`oid` 로 옮긴다. */
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
- // 열 이름이 "__proto__" 면 대입이 프로토타입 setter 를 부른다 (facade 와
62
- // 같은 이유). 그 이름만 defineProperty 로 놓는다.
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
- // 확장 프로토콜의 Execute 는 태그가 없을 수 있다. 열이 있으면 SELECT 로 본다.
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 는 배열 파라미터를 PostgreSQL 배열 리터럴로 직렬화한다. facade 는 배열을
94
- // JSON 으로 보내므로 여기서 pg 와 같은 모양으로 맞춘다.
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
- * 세션 하나를 쥐는 클라이언트. `connect()` 는 세션을 열고 `end()` 는 닫는다.
141
- * `connect()` 전의 `query` 는 세션을 알아서 연다 — pg 는 거기서 던지지만,
142
- * 여는 편이 ORM 이 다루기 쉽고 잃는 것이 없다.
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 가 `client.connection.on('parameterStatus')` 를 건다. */
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` 가 없습니다 — new Client({ db: env.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
- await s.close();
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 의 `release(err?)`. 오류를 주면 세션을 버린다 — 우리는 늘 버리므로 같다. */
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
- // 닫기 실패는 보고할 곳이 없다. 세션은 액터가 TTL 로 거둔다 (§3.1).
250
- void this.end().catch(() => undefined);
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` 가 없습니다 — new Pool({ db: env.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
- // 세션은 여기서 연다. pg 도 connect() 가 돌아오면 연결이 살아 있다.
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
- const p = Promise.all(all.map((c) => c.end().catch(() => undefined))).then(() => undefined);
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` 를 미리 묶은 pg 모양의 모듈.
456
+ * A pg-shaped module with `db` bound in advance.
326
457
  *
327
- * ORM 이 드라이버 모듈을 통째로 받는 자리(TypeORM 의 `driver`, Sequelize 의
328
- * `dialectModule`, Knex 의 `_driver()`)에 넘긴다. 그 ORM 들은 `new Pool(옵션)` 을
329
- * 자기 옵션으로 부르므로, `db` 를 옵션에 실어 줄 길이 없다 — 여기서 묶는다.
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
- // ORM 이 자기 접속 옵션을 그대로 넘기므로 `db` 라는 키가 우연히 들어올 수
333
- // 있다 (Knex 의 `connection` 은 통째로 Client 옵션이 된다). Db 모양일 때만 쓴다.
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 의 `defaults`. TypeORM 이 `parseInt8` 을 만진다 — 우리는 int8 을 늘 문자열로 둔다. */
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,
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAOA,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"}
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
- // node:events 없이 쓰는 최소 emitter.
1
+ // A minimal emitter used without node:events.
2
2
  //
3
- // 사용자 워커는 `nodejs_compat` 없이 뜬다 (config.go — `experimental` 하나).
4
- // ORM 이 Client/Pool 에 거는 것은 `on('error')`·`once('end')`·`removeListener`
5
- // 정도라, 그것만 있으면 된다. EventEmitter 전체를 들이면 그 순간 이 패키지가
6
- // node 런타임을 요구하게 된다.
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,iEAAiE;AACjE,yEAAyE;AACzE,oDAAoD;AACpD,qBAAqB;AAIrB,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"}
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 의 `DatabaseError` 모양.
3
+ * The shape of node-postgres' `DatabaseError`.
4
4
  *
5
- * ORM 들은 `err.code` 로 SQLSTATE 를 읽는다 (Prisma 의 23505 → unique violation
6
- * 매핑, Knex 의 재시도 판단). `env.db.exec` 가 던지는 Error 는 RPC 경계에서
7
- * 커스텀 필드를 잃지만, 이 어댑터는 워커 안 JS 라 자기 Error 를 만들 수 있다 —
8
- * 그래서 `tryExec` 의 값을 받아 여기서 던진다.
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 는 이 필드를 늘 둔다. 우리는 값이 없어 undefined 로 둔다. */
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;
@@ -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;;;;;;;GAOG;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,iDAAiD;IACjD,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;CAW3B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D"}
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 의 `DatabaseError` 모양.
2
+ * The shape of node-postgres' `DatabaseError`.
3
3
  *
4
- * ORM 들은 `err.code` 로 SQLSTATE 를 읽는다 (Prisma 의 23505 → unique violation
5
- * 매핑, Knex 의 재시도 판단). `env.db.exec` 가 던지는 Error 는 RPC 경계에서
6
- * 커스텀 필드를 잃지만, 이 어댑터는 워커 안 JS 라 자기 Error 를 만들 수 있다 —
7
- * 그래서 `tryExec` 의 값을 받아 여기서 던진다.
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 는 이 필드를 늘 둔다. 우리는 값이 없어 undefined 로 둔다. */
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 의 DatabaseError 는 name 이 "error" 다. 그 값을 검사하는 코드가 있다.
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;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,IAAI,CAAqB;IACzB,QAAQ,CAAqB;IACtC,iDAAiD;IACxC,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,2DAA2D;QAC3D,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,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"}
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 — `env.db` 위의 node-postgres 호환 어댑터 (docs/pg-driver-support.md §3.2).
1
+ // @runlot/pg — a node-postgres compatible adapter on top of `env.db`
2
+ // (docs/pg-driver-support.md §3.2).
2
3
  //
3
- // 기본 export 는 `pg` 모듈 모양이다. ORM 이 `import pg from "pg"` 로 드라이버를
4
- // 찾을 때 번들러 alias(`pg` → `@runlot/pg`)로 이 모듈을 준다.
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,kFAAkF;AAClF,EAAE;AACF,gEAAgE;AAChE,iDAAiD;AACjD,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
+ {"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":"AAKA,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"}
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"}
@@ -1,8 +1,9 @@
1
- // Drizzle: `drizzle-orm/node-postgres` 에 우리 Pool 을 준다.
1
+ // Drizzle: we give our Pool to `drizzle-orm/node-postgres`.
2
2
  //
3
- // Drizzle 은 `client.query({text, values, rowMode:'array', types})` 만 부른다
4
- // (session.js). `types.getTypeParser` 로 날짜·간격을 문자열로 받으려 하고,
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../src/orm/drizzle.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,4DAA4D;AAC5D,kCAAkC;AAClC,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../src/orm/knex.ts"],"names":[],"mappings":"AAOA,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"}
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'` 의 `_driver()` 가 `require('pg')` 를 한다. 그 자리를
2
- // 우리 모듈로 바꾼 클라이언트 클래스를 만든다 — Knex 는 `client` 에 클래스를
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 의 pg 클라이언트는 연결마다 `new Client()` + `connect()` 를 하고
6
- // 첫 연결에서 `select version()` 을 읽는다. 풀은 tarn 이 관리하며 최소 크기를
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
- // 값이 있어야 Knex 가 "connection 이 없다" 로 경고하지 않는다. 이 객체가
24
- // 그대로 `new Client(옵션)` 으로 가므로 `db` 키를 두지 않는다.
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
  });