@runlot/pg 0.1.0-rc.73 → 0.1.0-rc.75

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 (44) hide show
  1. package/dist/bundler.d.ts +9 -9
  2. package/dist/bundler.d.ts.map +1 -1
  3. package/dist/bundler.js +89 -45
  4. package/dist/bundler.js.map +1 -1
  5. package/dist/client.d.ts +20 -14
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +37 -27
  8. package/dist/client.js.map +1 -1
  9. package/dist/emitter.d.ts.map +1 -1
  10. package/dist/emitter.js +6 -5
  11. package/dist/emitter.js.map +1 -1
  12. package/dist/errors.d.ts +8 -6
  13. package/dist/errors.d.ts.map +1 -1
  14. package/dist/errors.js +10 -7
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +4 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/orm/drizzle.d.ts.map +1 -1
  20. package/dist/orm/drizzle.js +5 -4
  21. package/dist/orm/drizzle.js.map +1 -1
  22. package/dist/orm/knex.d.ts.map +1 -1
  23. package/dist/orm/knex.js +7 -8
  24. package/dist/orm/knex.js.map +1 -1
  25. package/dist/orm/kysely.js +3 -3
  26. package/dist/orm/kysely.js.map +1 -1
  27. package/dist/orm/prisma.d.ts.map +1 -1
  28. package/dist/orm/prisma.js +16 -12
  29. package/dist/orm/prisma.js.map +1 -1
  30. package/dist/orm/sequelize.d.ts.map +1 -1
  31. package/dist/orm/sequelize.js +9 -6
  32. package/dist/orm/sequelize.js.map +1 -1
  33. package/dist/orm/typeorm.d.ts.map +1 -1
  34. package/dist/orm/typeorm.js +6 -5
  35. package/dist/orm/typeorm.js.map +1 -1
  36. package/dist/type-parsers.d.ts +14 -10
  37. package/dist/type-parsers.d.ts.map +1 -1
  38. package/dist/type-parsers.js +41 -31
  39. package/dist/type-parsers.js.map +1 -1
  40. package/dist/types.d.ts +20 -13
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +6 -4
  43. package/dist/types.js.map +1 -1
  44. package/package.json +2 -2
package/dist/bundler.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  export interface WasmModule {
2
- /** 워커가 import 하는 지정자이자 매니페스트 `modules[].name`. */
2
+ /** The specifier imported by the worker and manifest `modules[].name`. */
3
3
  name: string;
4
- /** 소스 파일의 절대 경로. */
4
+ /** Absolute source-file path. */
5
5
  path: string;
6
6
  }
7
7
  export interface WorkerBundleReport {
8
- /** 워커가 외부에 남긴 node 내장 (`node:util` 꼴, 정렬). 비어 있지 않으면 `nodejs_compat` 가 필요하다. */
8
+ /** Node built-ins left external by the worker (sorted, such as `node:util`). Requires `nodejs_compat` when nonempty. */
9
9
  nodeImports: string[];
10
- /** 곁에 실어야 하는 wasm 모듈. */
10
+ /** WASM modules that must be included alongside it. */
11
11
  wasmModules: WasmModule[];
12
12
  }
13
13
  export interface BuildWorkerOptions {
14
- /** 진입점. absWorkingDir 기준 상대 또는 절대 경로. */
14
+ /** Entry point, relative to absWorkingDir or absolute. */
15
15
  entry: string;
16
16
  absWorkingDir: string;
17
- /** metafile 의 출력 이름. 기본 `worker/index.js`. 파일은 쓰지 않는다. */
17
+ /** Metafile output name. Defaults to `worker/index.js`; no file is written. */
18
18
  outfile?: string;
19
- /** `pg` 를 어디로 보낼지. 기본 `@runlot/pg`. 풀리지 않으면 `pg` 는 그대로 둔다. */
19
+ /** Where to resolve `pg`. Defaults to `@runlot/pg`; leaves `pg` alone if unresolved. */
20
20
  pgAlias?: string;
21
21
  define?: Record<string, string>;
22
22
  minify?: boolean;
@@ -26,8 +26,8 @@ export interface WorkerBundle {
26
26
  report: WorkerBundleReport;
27
27
  }
28
28
  /**
29
- * 워커 하나를 묶는다. 파일은 쓰지 않는다 — 바이트와 보고서를 돌려주고, 어디에
30
- * 어떤 이름으로 둘지는 부르는 쪽(배포 도구·E2E)이 정한다.
29
+ * Bundles one worker without writing files. Returns its bytes and report; the caller
30
+ * (the deployment tool or E2E) chooses where and under what name to place them.
31
31
  */
32
32
  export declare function buildWorker(opts: BuildWorkerOptions): Promise<WorkerBundle>;
33
33
  //# sourceMappingURL=bundler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,yBAAyB;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AA+JD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2CjF"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,wHAAwH;IACxH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uDAAuD;IACvD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AA0MD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA4CjF"}
package/dist/bundler.js CHANGED
@@ -1,41 +1,40 @@
1
- // 워커 번들러 — 사용자의 배포 도구(`runlot deploy`)와 이 패키지의 E2E 가 **같은**
2
- // 규칙으로 워커를 묶는다 (docs/pg-driver-support.md §3.3 "번들러가 한 일과 그 뜻").
1
+ // Worker bundler — the user's deployment tool (`runlot deploy`) and this package's E2E
2
+ // bundle workers with the **same** rules (docs/pg-driver-support.md §3.3).
3
3
  //
4
- // 규칙이 한 곳에 있어야 하는 이유: E2E 가 실물 workerd 에서 재는 것은 "이 규칙으로
5
- // 묶은 워커가 도는가" 다. 배포 도구가 다른 규칙으로 묶으면 그 초록은 사용자의
6
- // 배포에 대한 답이 아니다.
4
+ // The rules must live in one place because the E2E measures whether a worker bundled with
5
+ // these rules runs in real workerd. A green result from different deployment rules does not
6
+ // answer anything about the user's deployment.
7
7
  //
8
- // 하는 일:
9
- // - `pg` → `@runlot/pg`. ORM 들이 `import pg from "pg"` 를 모듈 최상단에서 한다.
10
- // - node 내장은 `node:` 접두로 외부에 남긴다 (workerd 의 `nodejs_compat` 가
11
- // 푼다). 어느 내장을 요구했는지가 report.nodeImports 에 남고, 비어 있지
12
- // 않으면 배포 도구가 매니페스트에 `nodejs_compat` 를 적는다.
13
- // - 이 workerd 빌드의 `nodejs_compat` 에 **없는** 셋(`fs`·`os`·`tty`, 실측)과
14
- // 로드 시점에 파일 URL 을 요구하는 `module` 은 스텁으로 채운다 — wrangler 가
15
- // unenv 로 채우는 자리다. ORM 은 로드 시점에 이것들을 require 하고 우리가
16
- // 도는 경로에서는 쓰지 않는다. 쓰면 던진다.
17
- // - CJS 의 `require("util")` 은 배너의 require 표로 푼다. ESM 출력에서 동적
18
- // require 는 남을 수 없고, esbuild 의 가교(`__toCommonJS`)는 객체를 만들어
19
- // `assert(x)` 처럼 default 가 함수인 모듈이 죽는다 (실측). 그래서 정적으로
20
- // import 한 네임스페이스를 돌려주는 표를 하나 만들고, default 가 함수면
21
- // 그것을 준다. 표는 첫 번들이 무엇을 require 했는지 본 뒤 두 번째 번들에 얹는다.
22
- // - `.wasm` 은 번들 밖 모듈 이름으로 남긴다. workerd 는 번들 안 WASM 컴파일을
23
- // 막으므로("Wasm code generation disallowed by embedder") 설정의 `wasm = embed`
24
- // 모듈로만 들어간다. report.wasmModules 가 어떤 파일을 어떤 이름으로 곁에
25
- // 둬야 하는지 말하고, 배포 도구가 그것을 번들에 싣고 매니페스트 `modules`
26
- // 에 적는다.
27
- // - `debug` 는 브라우저 빌드로. node 빌드가 로드 시점에 `process.stderr.fd` 를 만진다.
28
- // - 다른 DB 드라이버·선택 의존은 빈 모듈로. 워커에 없고 필요도 없다.
8
+ // It:
9
+ // - aliases `pg` to `@runlot/pg`; ORMs import `pg` at module top level.
10
+ // - leaves Node built-ins external with the `node:` prefix for workerd's `nodejs_compat`.
11
+ // Requested built-ins go in report.nodeImports, which tells the deployer to add
12
+ // `nodejs_compat` to the manifest.
13
+ // - stubs built-ins missing from this workerd build's `nodejs_compat` (`fs`, `os`, and
14
+ // `tty`, verified) plus `module`, which requires a file URL at load time. This is what
15
+ // Wrangler fills with unenv. ORMs require these at load time but do not use them on the
16
+ // paths we run; using one throws.
17
+ // - resolves CJS `require("util")` through a require table in the banner. Dynamic require
18
+ // cannot remain in ESM output, and esbuild's `__toCommonJS` bridge returns an object,
19
+ // which breaks modules such as `assert(x)` whose default is a function. A table returning
20
+ // statically imported namespaces fixes that; it is added on the second bundle after the
21
+ // first pass identifies required modules.
22
+ // - keeps `.wasm` as an external module name. workerd disallows WASM compilation inside a
23
+ // bundle, so it can enter only through a configuration `wasm = embed` module.
24
+ // report.wasmModules tells the deployer which files to include and under which names.
25
+ // - uses the browser build of `debug`, because its Node build accesses `process.stderr.fd`.
26
+ // - resolves other DB drivers and optional dependencies as empty modules; workers lack and
27
+ // do not need them.
29
28
  import { createHash } from "node:crypto";
30
29
  import { build } from "esbuild";
31
- /** node 내장 모듈 이름. bare 이름(`util`)을 `node:util` 로 바꿔 외부로 남긴다. */
30
+ /** Node built-in module names. Leaves bare names such as `util` external as `node:util`. */
32
31
  const NODE_BUILTINS = new Set([
33
32
  "assert", "async_hooks", "buffer", "child_process", "cluster", "console", "constants", "crypto", "dgram",
34
33
  "diagnostics_channel", "dns", "domain", "events", "fs", "http", "http2", "https", "inspector", "module", "net",
35
34
  "os", "path", "perf_hooks", "process", "punycode", "querystring", "readline", "repl", "stream", "string_decoder",
36
35
  "sys", "timers", "tls", "trace_events", "tty", "url", "util", "v8", "vm", "wasi", "worker_threads", "zlib",
37
36
  ]);
38
- /** 다른 DB 드라이버·선택 의존. 빈 모듈로 푼다. */
37
+ /** Other database drivers and optional dependencies, resolved as empty modules. */
39
38
  const EMPTY = new Set([
40
39
  "mariadb/callback", "mariadb", "mysql", "mysql2", "sqlite3", "better-sqlite3", "oracledb", "tedious", "mssql",
41
40
  "ibm_db", "pg-native", "pg-query-stream", "pg-hstore", "pg-copy-streams", "snowflake-sdk", "@sap/hana-client",
@@ -43,7 +42,7 @@ const EMPTY = new Set([
43
42
  "@google-cloud/spanner", "spanner", "libsql", "@libsql/client", "@sqlite.org/sqlite-wasm", "sap-hana-client",
44
43
  "@sap/hana-client/extension/Stream", "pg-cloudflare", "cloudflare:sockets", "pgpass",
45
44
  ]);
46
- /** `nodejs_compat` 에 없거나(fs·os·tty) 로드 시점에 파일 URL 을 요구하는(module) 내장의 스텁. */
45
+ /** Stubs for built-ins unavailable in `nodejs_compat` (fs, os, tty) or requiring a file URL at load time (module). */
47
46
  const STUBS = {
48
47
  fs: `// Empty stub for node:fs. This workerd build's nodejs_compat does not include fs (verified).
49
48
  const missing = (name) => (..._a) => { throw new Error("node:fs." + name + " is not available in the worker"); };
@@ -101,13 +100,30 @@ export class ReadStream {}
101
100
  export class WriteStream {}
102
101
  export default { isatty, ReadStream, WriteStream };
103
102
  `,
104
- module: `// Stub for node:module. fdir (tinyglobby ← TypeORM) calls createRequire(import.meta.url)
105
- // at module scope, but the worker's import.meta.url is not a file URL, so the real node:module throws. It only needs to load.
106
- export function createRequire(_from) {
107
- return (id) => { throw new Error("require(" + JSON.stringify(id) + ") is not available in the worker"); };
108
- }
109
- export const builtinModules = [];
110
- export default { createRequire, builtinModules };
103
+ // node:module is **present** in nodejs_compat; only one of its functions is
104
+ // unusable here. fdir (tinyglobby ← TypeORM) calls createRequire(import.meta.url)
105
+ // at module scope and the worker's import.meta.url is not a file URL, so the
106
+ // real createRequire throws. Replacing the whole module was too wide a fix:
107
+ // Next's require-hook.js reads `require("module").prototype.require` and
108
+ // `_resolveFilename`, and against a plain object that is
109
+ // "Cannot read properties of undefined" on the first request
110
+ // (docs/nextjs.md §8). So stand on the real one and narrow the repair to
111
+ // createRequire. CommonJS on purpose — `require("node:module")` has to come
112
+ // back as the Module **function**, which a namespace object is not.
113
+ module: `const real = require("node:module");
114
+ const FALLBACK = "file:///worker.js";
115
+ const createRequire = (from) => {
116
+ try {
117
+ return real.createRequire(from);
118
+ } catch {
119
+ // Not a file URL — the worker's own module identity. Resolution still only
120
+ // reaches built-ins, which is all that ever worked here.
121
+ return real.createRequire(FALLBACK);
122
+ }
123
+ };
124
+ module.exports = new Proxy(real, {
125
+ get: (target, prop, recv) => (prop === "createRequire" ? createRequire : Reflect.get(target, prop, recv)),
126
+ });
111
127
  `,
112
128
  };
113
129
  const STUB_NS = "runlot-stub";
@@ -117,12 +133,26 @@ function requireBanner(mods) {
117
133
  const lines = [];
118
134
  names.forEach((m, i) => lines.push(`import * as __rl_node_${i} from ${JSON.stringify(m)};`));
119
135
  lines.push(`const __rl_node = { ${names.map((m, i) => `${JSON.stringify(m)}: __rl_node_${i}`).join(", ")} };`);
136
+ // What require() hands back has to be **patchable**. An ES module namespace
137
+ // is not: assigning to one throws, and CJS code written for Node patches the
138
+ // module object in place. Next does exactly that —
139
+ // `nodeTimers.setImmediate = patchedSetImmediate` — and against a namespace
140
+ // it died with "Cannot assign to property 'setImmediate' of [object Module]"
141
+ // on the first request (docs/nextjs.md §8).
142
+ //
143
+ // A builtin's `default` is the CJS object: measured writable, and carrying
144
+ // the same functions as the namespace. So prefer it whenever it is an object,
145
+ // and fill in any named export it happens to lack — one shared object, so a
146
+ // patch one module makes is the patch every other one sees, as in Node.
120
147
  lines.push(`const require = (id) => { const k = id.startsWith("node:") ? id : "node:" + id; const ns = __rl_node[k]; ` +
121
148
  `if (!ns) throw new Error("require(" + JSON.stringify(id) + ") is not available in the worker"); ` +
122
- `return typeof ns.default === "function" ? ns.default : (ns.default && typeof ns.default === "object" && Object.keys(ns).length <= 1 ? ns.default : ns); };`);
149
+ `if (typeof ns.default === "function") return ns.default; ` +
150
+ `if (!ns.default || typeof ns.default !== "object") return ns; ` +
151
+ `for (const key of Object.keys(ns)) { if (key !== "default" && !(key in ns.default)) { try { ns.default[key] = ns[key]; } catch {} } } ` +
152
+ `return ns.default; };`);
123
153
  return lines.join("\n");
124
154
  }
125
- /** wasm 파일의 모듈 이름. 기본은 파일 이름이고, 다른 파일이 같은 이름을 쓰면 해시를 붙인다. */
155
+ /** Module name for a WASM file. Defaults to its filename; adds a hash if another file uses it. */
126
156
  function wasmName(state, abs) {
127
157
  const base = abs.slice(abs.lastIndexOf("/") + 1);
128
158
  const have = state.wasm.get(base);
@@ -144,7 +174,20 @@ function workerPlugin(state, opts) {
144
174
  return { path: name, external: true };
145
175
  });
146
176
  b.onResolve({ filter: /^[^./]/ }, async (args) => {
147
- if (args.namespace === STUB_NS || args.namespace === EMPTY_NS)
177
+ if (args.namespace === STUB_NS) {
178
+ // A stub may stand **on top of** the real module rather than replace
179
+ // it (node:module does). Its own import has to reach workerd, not
180
+ // come back here and recurse.
181
+ const b0 = args.path.startsWith("node:") ? args.path.slice(5) : args.path;
182
+ if (NODE_BUILTINS.has(b0)) {
183
+ state.nodeBuiltins.add("node:" + b0);
184
+ if (args.kind === "require-call")
185
+ state.requireBuiltins.add("node:" + b0);
186
+ return { path: "node:" + b0, external: true };
187
+ }
188
+ return undefined;
189
+ }
190
+ if (args.namespace === EMPTY_NS)
148
191
  return undefined;
149
192
  if (args.path === "pg" && args.kind !== "entry-point") {
150
193
  const r = await b.resolve(pgAlias, { kind: args.kind, resolveDir: opts.absWorkingDir, importer: args.importer });
@@ -177,8 +220,8 @@ function workerPlugin(state, opts) {
177
220
  };
178
221
  }
179
222
  /**
180
- * 워커 하나를 묶는다. 파일은 쓰지 않는다 — 바이트와 보고서를 돌려주고, 어디에
181
- * 어떤 이름으로 둘지는 부르는 쪽(배포 도구·E2E)이 정한다.
223
+ * Bundles one worker without writing files. Returns its bytes and report; the caller
224
+ * (the deployment tool or E2E) chooses where and under what name to place them.
182
225
  */
183
226
  export async function buildWorker(opts) {
184
227
  const outfile = opts.outfile ?? "worker/index.js";
@@ -186,14 +229,15 @@ export async function buildWorker(opts) {
186
229
  const state = { nodeBuiltins: new Set(), requireBuiltins: new Set(), wasm: new Map() };
187
230
  const options = {
188
231
  bundle: true,
189
- // `browser` 조건·필드는 쓰지 않는다: TypeORM 의 package.json `browser` 맵이
190
- // 모든 드라이버를 빈 스텁으로 바꿔 DataSource 가 드라이버 없이 뜬다 (실측).
232
+ // Do not use the `browser` condition or field: TypeORM's package.json `browser` map
233
+ // replaces every driver with an empty stub, leaving DataSource without a driver.
191
234
  platform: "neutral",
192
235
  conditions: ["workerd", "worker", "node", "import", "default"],
193
236
  mainFields: ["module", "main"],
194
237
  format: "esm",
195
238
  target: "es2022",
196
- // 문자열의 비 ASCII 를 \u 로 풀지 않는다 — workerd 는 UTF-8 을 그대로 읽고, 스택의 한국어 메시지가 사람이 읽을 수 있어야 한다.
239
+ // Do not escape non-ASCII strings as \u: workerd reads UTF-8 directly, and Korean
240
+ // messages in stacks must remain human-readable.
197
241
  charset: "utf8",
198
242
  entryPoints: [opts.entry],
199
243
  outfile,
@@ -213,7 +257,7 @@ export async function buildWorker(opts) {
213
257
  return { code: file.contents, state };
214
258
  };
215
259
  let { code, state } = await pass();
216
- // CJS 가 요구한 node 내장이 있으면 배너의 require 표를 갖고 한 번 더 묶는다.
260
+ // If CJS required Node built-ins, bundle again with the banner's require table.
217
261
  if (state.requireBuiltins.size > 0) {
218
262
  ({ code, state } = await pass(requireBanner(state.requireBuiltins)));
219
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,2EAA2E;AAC3E,EAAE;AACF,0FAA0F;AAC1F,4FAA4F;AAC5F,+CAA+C;AAC/C,EAAE;AACF,MAAM;AACN,0EAA0E;AAC1E,4FAA4F;AAC5F,oFAAoF;AACpF,uCAAuC;AACvC,yFAAyF;AACzF,2FAA2F;AAC3F,4FAA4F;AAC5F,sCAAsC;AACtC,4FAA4F;AAC5F,0FAA0F;AAC1F,8FAA8F;AAC9F,4FAA4F;AAC5F,8CAA8C;AAC9C,4FAA4F;AAC5F,kFAAkF;AAClF,0FAA0F;AAC1F,8FAA8F;AAC9F,6FAA6F;AAC7F,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAkC,MAAM,SAAS,CAAC;AAiChE,4FAA4F;AAC5F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO;IACxG,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK;IAC9G,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;IAChH,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;CAC3G,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;IACpB,kBAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO;IAC7G,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB;IAC7G,UAAU,EAAE,SAAS,EAAE,gCAAgC,EAAE,QAAQ,EAAE,6BAA6B;IAChG,uBAAuB,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,iBAAiB;IAC5G,mCAAmC,EAAE,eAAe,EAAE,oBAAoB,EAAE,QAAQ;CACrF,CAAC,CAAC;AAEH,sHAAsH;AACtH,MAAM,KAAK,GAA2B;IACpC,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCL;IACC,EAAE,EAAE;;;;;;;;;;;;;;;;CAgBL;IACC,GAAG,EAAE;;;;;CAKN;IACC,4EAA4E;IAC5E,kFAAkF;IAClF,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,yDAAyD;IACzD,6DAA6D;IAC7D,yEAAyE;IACzE,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,EAAE;;;;;;;;;;;;;;CAcT;CACA,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,SAAS,aAAa,CAAC,IAAiB;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/G,4EAA4E;IAC5E,6EAA6E;IAC7E,mDAAmD;IACnD,4EAA4E;IAC5E,6EAA6E;IAC7E,4CAA4C;IAC5C,EAAE;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,wEAAwE;IACxE,KAAK,CAAC,IAAI,CACR,2GAA2G;QACzG,kGAAkG;QAClG,2DAA2D;QAC3D,gEAAgE;QAChE,wIAAwI;QACxI,uBAAuB,CAC1B,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AASD,kGAAkG;AAClG,SAAS,QAAQ,CAAC,KAAgB,EAAE,GAAW;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB,EAAE,IAAwB;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,CAAC;YACL,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACjG,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;oBAC/B,qEAAqE;oBACrE,kEAAkE;oBAClE,8BAA8B;oBAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1E,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC1B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;wBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;4BAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;wBAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBAChD,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAClD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACtD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjH,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;wBAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC7D,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;oBAChE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;oBAChI,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;wBAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/D,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;gBACrC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBAChG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;oBACvC,IAAI,IAAI,IAAI,KAAK;wBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;oBAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;wBAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;oBAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAClD,CAAC;gBACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;gBAC1E,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1G,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5G,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAwB;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,EAAE,MAAe,EAAmD,EAAE;QACtF,MAAM,KAAK,GAAc,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAClG,MAAM,OAAO,GAAiB;YAC5B,MAAM,EAAE,IAAI;YACZ,oFAAoF;YACpF,iFAAiF;YACjF,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC9D,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC9B,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,QAAQ;YAChB,kFAAkF;YAClF,iDAAiD;YACjD,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;YACpC,MAAM,EAAE,EAAE,sBAAsB,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YAC1E,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,QAAQ;YAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC,CAAC;IACF,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IACnC,gFAAgF;IAChF,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC3C,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5H;KACF,CAAC;AACJ,CAAC"}
package/dist/client.d.ts CHANGED
@@ -28,26 +28,28 @@ export interface QueryConfig {
28
28
  } | undefined;
29
29
  }
30
30
  export type QueryCallback<R = Record<string, unknown>> = (err: Error | null, result?: QueryResult<R>) => void;
31
- /** `new Client({ db })` / `new Pool({ db })` 의 재료. 나머지 키는 pg 호환용이고 무시된다. */
31
+ /** The material for `new Client({ db })` / `new Pool({ db })`. The other keys
32
+ * are there for pg compatibility and are ignored. */
32
33
  export interface ClientConfig {
33
34
  db?: Db | undefined;
34
35
  [key: string]: unknown;
35
36
  }
36
- /** CommandComplete 태그를 pg 의 `command`·`rowCount`·`oid` 로 옮긴다. */
37
+ /** Moves a CommandComplete tag into pg's `command`, `rowCount` and `oid`. */
37
38
  export declare function parseCommandTag(tag: string | null): {
38
39
  command: string;
39
40
  rowCount: number | null;
40
41
  oid: number;
41
42
  };
42
43
  /**
43
- * 세션 하나를 쥐는 클라이언트. `connect()` 는 세션을 열고 `end()` 는 닫는다.
44
- * `connect()` 전의 `query` 는 세션을 알아서 연다 — pg 는 거기서 던지지만,
45
- * 여는 편이 ORM 이 다루기 쉽고 잃는 것이 없다.
44
+ * A client that holds one session. `connect()` opens the session and `end()`
45
+ * closes it. A `query` before `connect()` opens the session on its own — pg
46
+ * throws there, but opening is easier for an ORM to deal with and loses
47
+ * nothing.
46
48
  */
47
49
  export declare class Client extends Emitter {
48
50
  #private;
49
51
  readonly db: Db;
50
- /** Sequelize 가 `client.connection.on('parameterStatus')` 를 건다. */
52
+ /** Sequelize hooks `client.connection.on('parameterStatus')`. */
51
53
  readonly connection: Emitter;
52
54
  readonly processID: number | null;
53
55
  readonly secretKey: number | null;
@@ -69,7 +71,8 @@ export declare class Client extends Emitter {
69
71
  export declare class PoolClient extends Client {
70
72
  #private;
71
73
  constructor(pool: Pool, db: Db);
72
- /** pg 의 `release(err?)`. 오류를 주면 세션을 버린다 — 우리는 늘 버리므로 같다. */
74
+ /** pg's `release(err?)`. Passing an error throws the session away — we
75
+ * always throw it away, so it is the same. */
73
76
  release(_err?: Error | boolean): void;
74
77
  }
75
78
  export interface PoolConfig extends ClientConfig {
@@ -87,7 +90,8 @@ export declare class Pool extends Emitter {
87
90
  connect(): Promise<PoolClient>;
88
91
  connect(cb: (err: Error | null, client?: PoolClient, release?: (err?: Error) => void) => void): void;
89
92
  _forget(c: PoolClient): void;
90
- /** 세션 없는 질의. facade 의 호출당 세션이 pg 의 "빌려서 쓰고 돌려준다" 와 같다. */
93
+ /** A query with no session. The facade's session-per-call is the same as
94
+ * pg's "borrow it, use it, give it back". */
91
95
  query<R = Record<string, unknown>>(text: string | QueryConfig, values?: unknown[]): Promise<QueryResult<R>>;
92
96
  query<R = Record<string, unknown>>(text: string | QueryConfig, cb: QueryCallback<R>): void;
93
97
  query<R = Record<string, unknown>>(text: string | QueryConfig, values: unknown[], cb: QueryCallback<R>): void;
@@ -95,11 +99,12 @@ export declare class Pool extends Emitter {
95
99
  end(cb: (err?: Error) => void): void;
96
100
  }
97
101
  /**
98
- * `db` 를 미리 묶은 pg 모양의 모듈.
102
+ * A pg-shaped module with `db` bound in advance.
99
103
  *
100
- * ORM 이 드라이버 모듈을 통째로 받는 자리(TypeORM 의 `driver`, Sequelize 의
101
- * `dialectModule`, Knex 의 `_driver()`)에 넘긴다. 그 ORM 들은 `new Pool(옵션)` 을
102
- * 자기 옵션으로 부르므로, `db` 를 옵션에 실어 줄 길이 없다 — 여기서 묶는다.
104
+ * It is handed to the places where an ORM takes a whole driver module
105
+ * (TypeORM's `driver`, Sequelize's `dialectModule`, Knex's `_driver()`). Those
106
+ * ORMs call `new Pool(options)` with their own options, so there is no way to
107
+ * put `db` into the options — it is bound here.
103
108
  */
104
109
  export declare function pgModule(db: Db): PgModule;
105
110
  export interface PgModule {
@@ -107,12 +112,13 @@ export interface PgModule {
107
112
  Pool: typeof Pool;
108
113
  DatabaseError: typeof DatabaseError;
109
114
  defaults: typeof defaults;
110
- /** Sequelize 의 `lib.types.getTypeParser`, Drizzle 의 `types.builtins`. */
115
+ /** Sequelize's `lib.types.getTypeParser`, Drizzle's `types.builtins`. */
111
116
  types: typeof types;
112
117
  native: null;
113
118
  escapeIdentifier(s: string): string;
114
119
  escapeLiteral(s: string): string;
115
120
  }
116
- /** pg 의 `defaults`. TypeORM 이 `parseInt8` 을 만진다 — 우리는 int8 을 늘 문자열로 둔다. */
121
+ /** pg's `defaults`. TypeORM touches `parseInt8` — we always keep int8 as a
122
+ * string. */
117
123
  export declare const defaults: Record<string, unknown>;
118
124
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
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)) {
@@ -137,13 +140,14 @@ function pickCallback(args) {
137
140
  }
138
141
  // ---- Client ----
139
142
  /**
140
- * 세션 하나를 쥐는 클라이언트. `connect()` 는 세션을 열고 `end()` 는 닫는다.
141
- * `connect()` 전의 `query` 는 세션을 알아서 연다 — pg 는 거기서 던지지만,
142
- * 여는 편이 ORM 이 다루기 쉽고 잃는 것이 없다.
143
+ * A client that holds one session. `connect()` opens the session and `end()`
144
+ * closes it. A `query` before `connect()` opens the session on its own — pg
145
+ * throws there, but opening is easier for an ORM to deal with and loses
146
+ * nothing.
143
147
  */
144
148
  export class Client extends Emitter {
145
149
  db;
146
- /** Sequelize 가 `client.connection.on('parameterStatus')` 를 건다. */
150
+ /** Sequelize hooks `client.connection.on('parameterStatus')`. */
147
151
  connection = new Emitter();
148
152
  processID = null;
149
153
  secretKey = null;
@@ -240,13 +244,15 @@ export class PoolClient extends Client {
240
244
  super({ db });
241
245
  this.#pool = pool;
242
246
  }
243
- /** pg 의 `release(err?)`. 오류를 주면 세션을 버린다 — 우리는 늘 버리므로 같다. */
247
+ /** pg's `release(err?)`. Passing an error throws the session away — we
248
+ * always throw it away, so it is the same. */
244
249
  release(_err) {
245
250
  if (this.#released)
246
251
  return;
247
252
  this.#released = true;
248
253
  this.#pool._forget(this);
249
- // 닫기 실패는 보고할 곳이 없다. 세션은 액터가 TTL 로 거둔다 (§3.1).
254
+ // There is nowhere to report a close failure. The actor reclaims the
255
+ // session by TTL (§3.1).
250
256
  void this.end().catch(() => undefined);
251
257
  }
252
258
  }
@@ -285,7 +291,8 @@ export class Pool extends Emitter {
285
291
  if (this.#ended)
286
292
  throw new Error("Cannot use a pool after calling end on the pool");
287
293
  const c = new PoolClient(this, this.db);
288
- // 세션은 여기서 연다. pg 도 connect() 가 돌아오면 연결이 살아 있다.
294
+ // The session is opened here. In pg too, once connect() returns the
295
+ // connection is alive.
289
296
  await c.connect();
290
297
  this.#clients.add(c);
291
298
  this.emit("connect", c);
@@ -313,7 +320,7 @@ export class Pool extends Emitter {
313
320
  p.then(() => cb(), (e) => cb(e));
314
321
  }
315
322
  }
316
- // ---- 모듈 묶기 ----
323
+ // ---- Binding the module ----
317
324
  const BOUND = Symbol.for("@runlot/pg.bound");
318
325
  function boundDb(config) {
319
326
  if (config && typeof config === "object" && typeof config.tryExec === "function")
@@ -322,15 +329,17 @@ function boundDb(config) {
322
329
  return b;
323
330
  }
324
331
  /**
325
- * `db` 를 미리 묶은 pg 모양의 모듈.
332
+ * A pg-shaped module with `db` bound in advance.
326
333
  *
327
- * ORM 이 드라이버 모듈을 통째로 받는 자리(TypeORM 의 `driver`, Sequelize 의
328
- * `dialectModule`, Knex 의 `_driver()`)에 넘긴다. 그 ORM 들은 `new Pool(옵션)` 을
329
- * 자기 옵션으로 부르므로, `db` 를 옵션에 실어 줄 길이 없다 — 여기서 묶는다.
334
+ * It is handed to the places where an ORM takes a whole driver module
335
+ * (TypeORM's `driver`, Sequelize's `dialectModule`, Knex's `_driver()`). Those
336
+ * ORMs call `new Pool(options)` with their own options, so there is no way to
337
+ * put `db` into the options — it is bound here.
330
338
  */
331
339
  export function pgModule(db) {
332
- // ORM 이 자기 접속 옵션을 그대로 넘기므로 `db` 라는 키가 우연히 들어올 수
333
- // 있다 (Knex 의 `connection` 은 통째로 Client 옵션이 된다). Db 모양일 때만 쓴다.
340
+ // Because an ORM passes its own connection options straight through, a key
341
+ // called `db` can arrive by accident (Knex's `connection` becomes the Client
342
+ // options wholesale). We use it only when it has the shape of a Db.
334
343
  const pick = (c) => (isDb(c?.db) ? c.db : db);
335
344
  class BoundClient extends Client {
336
345
  constructor(config) {
@@ -356,7 +365,8 @@ export function pgModule(db) {
356
365
  function isDb(v) {
357
366
  return !!v && typeof v === "object" && typeof v.tryExec === "function";
358
367
  }
359
- /** pg 의 `defaults`. TypeORM 이 `parseInt8` 을 만진다 — 우리는 int8 을 늘 문자열로 둔다. */
368
+ /** pg's `defaults`. TypeORM touches `parseInt8` — we always keep int8 as a
369
+ * string. */
360
370
  export const defaults = {
361
371
  parseInt8: false,
362
372
  ssl: false,