@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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @runlot/pg
2
2
 
3
- `env.db` 위에서 node-postgres(`pg`) 모양으로 쓰는 어댑터예요. 이미 `pg` 를 쓰는 코드와
4
- ORM 을 고치지 않고 runlot 의 데이터베이스에 붙일 수 있어요.
3
+ `env.db` 위에서 node-postgres(`pg`) 모양으로 쓰는 어댑터입니다. 이미 `pg` 를 쓰는 코드와
4
+ ORM 을 고치지 않고 runlot 의 데이터베이스에 붙일 수 있습니다.
5
5
 
6
6
  ```ts
7
7
  import { Pool } from "@runlot/pg";
@@ -15,14 +15,14 @@ export default {
15
15
  };
16
16
  ```
17
17
 
18
- ## 무엇이 되나요
18
+ ## 무엇을 할 수 있나요
19
19
 
20
- - `Pool.query(text, values)` — 호출마다 새 세션이에요. 문장 하나짜리 질의에 알맞아요.
20
+ - `Pool.query(text, values)` — 호출마다 새 세션입니다. 문장 하나짜리 질의에 알맞습니다.
21
21
  - `Pool.connect()` / `new Client({ db })` — 세션 하나를 쥐어요. `BEGIN … COMMIT`,
22
- prepared statement, `SET` 이 그 안에서 유지돼요. `release()` 나 `end()` 로 돌려주세요.
23
- - 오류는 `DatabaseError` 로 던지고 `err.code` 가 SQLSTATE 예요 (`23505` 같은 값).
22
+ prepared statement, `SET` 이 그 안에서 유지됩니다. `release()` 나 `end()` 로 돌려주세요.
23
+ - 오류는 `DatabaseError` 로 던지고 `err.code` 가 SQLSTATE 입니다 (`23505` 같은 값).
24
24
  - `types.setTypeParser(oid, fn)` 으로 타입 변환을 바꿀 수 있어요. 기본은 `pg` 와
25
- 같아요 — `timestamptz`·`date` 는 `Date`, `int8`·`numeric` 은 문자열이에요.
25
+ 같습니다 — `timestamptz`·`date` 는 `Date`, `int8`·`numeric` 은 문자열입니다.
26
26
 
27
27
  ## ORM
28
28
 
@@ -35,15 +35,15 @@ export default {
35
35
  | Sequelize | `import { sequelize } from "@runlot/pg/sequelize"` → `sequelize(env.db)` |
36
36
  | Knex | `import { knex } from "@runlot/pg/knex"` → `knex(env.db)` |
37
37
 
38
- `runlot deploy` 로 배포하면 따로 할 일이 없어요. 배포 번들러(`@runlot/pg/bundler`)가
38
+ `runlot deploy` 로 배포하면 따로 할 일이 없습니다. 배포 번들러(`@runlot/pg/bundler`)가
39
39
  `pg` 를 이 패키지로 풀고, ORM 이 node 내장 모듈을 쓰면 `nodejs_compat` 를,
40
- Prisma 의 WASM 쿼리 컴파일러는 별도 모듈로 `runlot.json` 에 적어 줘요.
40
+ Prisma 의 WASM 쿼리 컴파일러는 별도 모듈로 `runlot.json` 에 적습니다.
41
41
 
42
- 다른 도구로 직접 묶는다면 같은 일을 해 줘야 해요: `pg` → `@runlot/pg` alias,
42
+ 다른 도구로 직접 묶는다면 같은 일을 해야 합니다: `pg` → `@runlot/pg` alias,
43
43
  node 내장은 `node:` 접두로 외부에 두고 매니페스트에 `"compatibilityFlags":
44
44
  ["nodejs_compat"]`, `fs`·`os`·`tty` 는 빈 스텁, `.wasm` 은 번들 밖 모듈로 두고
45
- 매니페스트 `modules` 에 `{ "name", "type": "wasm", "path" }` 로 적기. `buildWorker`
46
- 를 직접 불러도 돼요:
45
+ 매니페스트 `modules` 에 `{ "name", "type": "wasm", "path" }` 로 적습니다. `buildWorker`
46
+ 를 직접 불러도 됩니다:
47
47
 
48
48
  ```ts
49
49
  import { buildWorker } from "@runlot/pg/bundler";
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":"AAkCA,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,44 @@
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. The alias holds
10
+ // only for the modules **this** pass resolves: on the `framework: next` path OpenNext
11
+ // has already bundled the app before we run, so an ORM inside that bundle got its `pg`
12
+ // from the project. Nothing here can make `instanceof Pool` hold across that seam, which
13
+ // is why the classes in client.ts pin their own constructor names.
14
+ // - leaves Node built-ins external with the `node:` prefix for workerd's `nodejs_compat`.
15
+ // Requested built-ins go in report.nodeImports, which tells the deployer to add
16
+ // `nodejs_compat` to the manifest.
17
+ // - stubs built-ins missing from this workerd build's `nodejs_compat` (`fs`, `os`, and
18
+ // `tty`, verified) plus `module`, which requires a file URL at load time. This is what
19
+ // Wrangler fills with unenv. ORMs require these at load time but do not use them on the
20
+ // paths we run; using one throws.
21
+ // - resolves CJS `require("util")` through a require table in the banner. Dynamic require
22
+ // cannot remain in ESM output, and esbuild's `__toCommonJS` bridge returns an object,
23
+ // which breaks modules such as `assert(x)` whose default is a function. A table returning
24
+ // statically imported namespaces fixes that; it is added on the second bundle after the
25
+ // first pass identifies required modules.
26
+ // - keeps `.wasm` as an external module name. workerd disallows WASM compilation inside a
27
+ // bundle, so it can enter only through a configuration `wasm = embed` module.
28
+ // report.wasmModules tells the deployer which files to include and under which names.
29
+ // - uses the browser build of `debug`, because its Node build accesses `process.stderr.fd`.
30
+ // - resolves other DB drivers and optional dependencies as empty modules; workers lack and
31
+ // do not need them.
29
32
  import { createHash } from "node:crypto";
30
33
  import { build } from "esbuild";
31
- /** node 내장 모듈 이름. bare 이름(`util`)을 `node:util` 로 바꿔 외부로 남긴다. */
34
+ /** Node built-in module names. Leaves bare names such as `util` external as `node:util`. */
32
35
  const NODE_BUILTINS = new Set([
33
36
  "assert", "async_hooks", "buffer", "child_process", "cluster", "console", "constants", "crypto", "dgram",
34
37
  "diagnostics_channel", "dns", "domain", "events", "fs", "http", "http2", "https", "inspector", "module", "net",
35
38
  "os", "path", "perf_hooks", "process", "punycode", "querystring", "readline", "repl", "stream", "string_decoder",
36
39
  "sys", "timers", "tls", "trace_events", "tty", "url", "util", "v8", "vm", "wasi", "worker_threads", "zlib",
37
40
  ]);
38
- /** 다른 DB 드라이버·선택 의존. 빈 모듈로 푼다. */
41
+ /** Other database drivers and optional dependencies, resolved as empty modules. */
39
42
  const EMPTY = new Set([
40
43
  "mariadb/callback", "mariadb", "mysql", "mysql2", "sqlite3", "better-sqlite3", "oracledb", "tedious", "mssql",
41
44
  "ibm_db", "pg-native", "pg-query-stream", "pg-hstore", "pg-copy-streams", "snowflake-sdk", "@sap/hana-client",
@@ -43,10 +46,10 @@ const EMPTY = new Set([
43
46
  "@google-cloud/spanner", "spanner", "libsql", "@libsql/client", "@sqlite.org/sqlite-wasm", "sap-hana-client",
44
47
  "@sap/hana-client/extension/Stream", "pg-cloudflare", "cloudflare:sockets", "pgpass",
45
48
  ]);
46
- /** `nodejs_compat` 에 없거나(fs·os·tty) 로드 시점에 파일 URL 을 요구하는(module) 내장의 스텁. */
49
+ /** Stubs for built-ins unavailable in `nodejs_compat` (fs, os, tty) or requiring a file URL at load time (module). */
47
50
  const STUBS = {
48
- fs: `// node:fs 의 빈 스텁. 이 workerd 빌드의 nodejs_compat 에는 fs 가 없다 (실측).
49
- const missing = (name) => (..._a) => { throw new Error("node:fs." + name + " 은 워커에 없습니다"); };
51
+ fs: `// Empty stub for node:fs. This workerd build's nodejs_compat does not include fs (verified).
52
+ const missing = (name) => (..._a) => { throw new Error("node:fs." + name + " is not available in the worker"); };
50
53
  export const existsSync = () => false;
51
54
  export const readFileSync = missing("readFileSync");
52
55
  export const writeFileSync = missing("writeFileSync");
@@ -78,7 +81,7 @@ export default {
78
81
  createReadStream, createWriteStream, readFile, writeFile, readdir, realpath, stat, lstat, mkdir, unlink, access, promises, constants,
79
82
  };
80
83
  `,
81
- os: `// node:os 스텁. unenv 와 같은 값이다.
84
+ os: `// Stub for node:os. Same values as unenv.
82
85
  export const EOL = "\\n";
83
86
  export const platform = () => "linux";
84
87
  export const type = () => "Linux";
@@ -95,19 +98,36 @@ export const networkInterfaces = () => ({});
95
98
  export const userInfo = () => ({ username: "", uid: -1, gid: -1, shell: null, homedir: "/" });
96
99
  export default { EOL, platform, type, release, hostname, homedir, tmpdir, cpus, totalmem, freemem, arch, endianness, networkInterfaces, userInfo };
97
100
  `,
98
- tty: `// node:tty 스텁. colorette(knex) 가 색을 켤지 물을 때만 쓴다.
101
+ tty: `// Stub for node:tty. Only used when colorette (knex) asks whether to enable color.
99
102
  export const isatty = () => false;
100
103
  export class ReadStream {}
101
104
  export class WriteStream {}
102
105
  export default { isatty, ReadStream, WriteStream };
103
106
  `,
104
- module: `// node:module 스텁. fdir(tinyglobby ← TypeORM) 가 모듈 최상단에서 createRequire(import.meta.url) 를
105
- // 부르는데, 워커의 import.meta.url 은 파일 URL 이 아니라 실제 node:module 이 던진다. 로드만 지나가면 된다.
106
- export function createRequire(_from) {
107
- return (id) => { throw new Error("require(" + JSON.stringify(id) + ") 은 워커에 없습니다"); };
108
- }
109
- export const builtinModules = [];
110
- export default { createRequire, builtinModules };
107
+ // node:module is **present** in nodejs_compat; only one of its functions is
108
+ // unusable here. fdir (tinyglobby ← TypeORM) calls createRequire(import.meta.url)
109
+ // at module scope and the worker's import.meta.url is not a file URL, so the
110
+ // real createRequire throws. Replacing the whole module was too wide a fix:
111
+ // Next's require-hook.js reads `require("module").prototype.require` and
112
+ // `_resolveFilename`, and against a plain object that is
113
+ // "Cannot read properties of undefined" on the first request
114
+ // (docs/nextjs.md §8). So stand on the real one and narrow the repair to
115
+ // createRequire. CommonJS on purpose — `require("node:module")` has to come
116
+ // back as the Module **function**, which a namespace object is not.
117
+ module: `const real = require("node:module");
118
+ const FALLBACK = "file:///worker.js";
119
+ const createRequire = (from) => {
120
+ try {
121
+ return real.createRequire(from);
122
+ } catch {
123
+ // Not a file URL — the worker's own module identity. Resolution still only
124
+ // reaches built-ins, which is all that ever worked here.
125
+ return real.createRequire(FALLBACK);
126
+ }
127
+ };
128
+ module.exports = new Proxy(real, {
129
+ get: (target, prop, recv) => (prop === "createRequire" ? createRequire : Reflect.get(target, prop, recv)),
130
+ });
111
131
  `,
112
132
  };
113
133
  const STUB_NS = "runlot-stub";
@@ -117,12 +137,26 @@ function requireBanner(mods) {
117
137
  const lines = [];
118
138
  names.forEach((m, i) => lines.push(`import * as __rl_node_${i} from ${JSON.stringify(m)};`));
119
139
  lines.push(`const __rl_node = { ${names.map((m, i) => `${JSON.stringify(m)}: __rl_node_${i}`).join(", ")} };`);
140
+ // What require() hands back has to be **patchable**. An ES module namespace
141
+ // is not: assigning to one throws, and CJS code written for Node patches the
142
+ // module object in place. Next does exactly that —
143
+ // `nodeTimers.setImmediate = patchedSetImmediate` — and against a namespace
144
+ // it died with "Cannot assign to property 'setImmediate' of [object Module]"
145
+ // on the first request (docs/nextjs.md §8).
146
+ //
147
+ // A builtin's `default` is the CJS object: measured writable, and carrying
148
+ // the same functions as the namespace. So prefer it whenever it is an object,
149
+ // and fill in any named export it happens to lack — one shared object, so a
150
+ // patch one module makes is the patch every other one sees, as in Node.
120
151
  lines.push(`const require = (id) => { const k = id.startsWith("node:") ? id : "node:" + id; const ns = __rl_node[k]; ` +
121
- `if (!ns) throw new Error("require(" + JSON.stringify(id) + ") 은 워커에 없습니다"); ` +
122
- `return typeof ns.default === "function" ? ns.default : (ns.default && typeof ns.default === "object" && Object.keys(ns).length <= 1 ? ns.default : ns); };`);
152
+ `if (!ns) throw new Error("require(" + JSON.stringify(id) + ") is not available in the worker"); ` +
153
+ `if (typeof ns.default === "function") return ns.default; ` +
154
+ `if (!ns.default || typeof ns.default !== "object") return ns; ` +
155
+ `for (const key of Object.keys(ns)) { if (key !== "default" && !(key in ns.default)) { try { ns.default[key] = ns[key]; } catch {} } } ` +
156
+ `return ns.default; };`);
123
157
  return lines.join("\n");
124
158
  }
125
- /** wasm 파일의 모듈 이름. 기본은 파일 이름이고, 다른 파일이 같은 이름을 쓰면 해시를 붙인다. */
159
+ /** Module name for a WASM file. Defaults to its filename; adds a hash if another file uses it. */
126
160
  function wasmName(state, abs) {
127
161
  const base = abs.slice(abs.lastIndexOf("/") + 1);
128
162
  const have = state.wasm.get(base);
@@ -144,7 +178,20 @@ function workerPlugin(state, opts) {
144
178
  return { path: name, external: true };
145
179
  });
146
180
  b.onResolve({ filter: /^[^./]/ }, async (args) => {
147
- if (args.namespace === STUB_NS || args.namespace === EMPTY_NS)
181
+ if (args.namespace === STUB_NS) {
182
+ // A stub may stand **on top of** the real module rather than replace
183
+ // it (node:module does). Its own import has to reach workerd, not
184
+ // come back here and recurse.
185
+ const b0 = args.path.startsWith("node:") ? args.path.slice(5) : args.path;
186
+ if (NODE_BUILTINS.has(b0)) {
187
+ state.nodeBuiltins.add("node:" + b0);
188
+ if (args.kind === "require-call")
189
+ state.requireBuiltins.add("node:" + b0);
190
+ return { path: "node:" + b0, external: true };
191
+ }
192
+ return undefined;
193
+ }
194
+ if (args.namespace === EMPTY_NS)
148
195
  return undefined;
149
196
  if (args.path === "pg" && args.kind !== "entry-point") {
150
197
  const r = await b.resolve(pgAlias, { kind: args.kind, resolveDir: opts.absWorkingDir, importer: args.importer });
@@ -177,8 +224,8 @@ function workerPlugin(state, opts) {
177
224
  };
178
225
  }
179
226
  /**
180
- * 워커 하나를 묶는다. 파일은 쓰지 않는다 — 바이트와 보고서를 돌려주고, 어디에
181
- * 어떤 이름으로 둘지는 부르는 쪽(배포 도구·E2E)이 정한다.
227
+ * Bundles one worker without writing files. Returns its bytes and report; the caller
228
+ * (the deployment tool or E2E) chooses where and under what name to place them.
182
229
  */
183
230
  export async function buildWorker(opts) {
184
231
  const outfile = opts.outfile ?? "worker/index.js";
@@ -186,14 +233,15 @@ export async function buildWorker(opts) {
186
233
  const state = { nodeBuiltins: new Set(), requireBuiltins: new Set(), wasm: new Map() };
187
234
  const options = {
188
235
  bundle: true,
189
- // `browser` 조건·필드는 쓰지 않는다: TypeORM 의 package.json `browser` 맵이
190
- // 모든 드라이버를 빈 스텁으로 바꿔 DataSource 가 드라이버 없이 뜬다 (실측).
236
+ // Do not use the `browser` condition or field: TypeORM's package.json `browser` map
237
+ // replaces every driver with an empty stub, leaving DataSource without a driver.
191
238
  platform: "neutral",
192
239
  conditions: ["workerd", "worker", "node", "import", "default"],
193
240
  mainFields: ["module", "main"],
194
241
  format: "esm",
195
242
  target: "es2022",
196
- // 문자열의 비 ASCII 를 \u 로 풀지 않는다 — workerd 는 UTF-8 을 그대로 읽고, 스택의 한국어 메시지가 사람이 읽을 수 있어야 한다.
243
+ // Do not escape non-ASCII strings as \u: workerd reads UTF-8 directly, and Korean
244
+ // messages in stacks must remain human-readable.
197
245
  charset: "utf8",
198
246
  entryPoints: [opts.entry],
199
247
  outfile,
@@ -209,11 +257,11 @@ export async function buildWorker(opts) {
209
257
  const r = await build(options);
210
258
  const file = r.outputFiles?.[0];
211
259
  if (!file)
212
- throw new Error("esbuild가 결과를 내지 않았다");
260
+ throw new Error("esbuild produced no output");
213
261
  return { code: file.contents, state };
214
262
  };
215
263
  let { code, state } = await pass();
216
- // CJS 가 요구한 node 내장이 있으면 배너의 require 표를 갖고 한 번 더 묶는다.
264
+ // If CJS required Node built-ins, bundle again with the banner's require table.
217
265
  if (state.requireBuiltins.size > 0) {
218
266
  ({ code, state } = await pass(requireBanner(state.requireBuiltins)));
219
267
  }
@@ -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":"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"}
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,12 +71,25 @@ 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 {
76
79
  max?: number | undefined;
80
+ /**
81
+ * How long `connect()` and `end()` wait for the closes that `release()`
82
+ * started, in milliseconds. Defaults to `DEFAULT_CLOSE_WAIT_MS`.
83
+ *
84
+ * The wait is bounded on purpose: a close that never settles — a session the
85
+ * actor has already lost — must not turn into a pool that never hands out a
86
+ * client again. pg has no such option and ignores unknown ones, so this is
87
+ * additive.
88
+ */
89
+ closeWaitMs?: number | undefined;
77
90
  }
91
+ /** The bound on how long a pool waits for `release()`'s closes. */
92
+ export declare const DEFAULT_CLOSE_WAIT_MS = 5000;
78
93
  export declare class Pool extends Emitter {
79
94
  #private;
80
95
  readonly db: Db;
@@ -86,8 +101,11 @@ export declare class Pool extends Emitter {
86
101
  get ended(): boolean;
87
102
  connect(): Promise<PoolClient>;
88
103
  connect(cb: (err: Error | null, client?: PoolClient, release?: (err?: Error) => void) => void): void;
104
+ /** Called by `PoolClient.release()`, which cannot await its own close. */
105
+ _closing(close: Promise<void>): void;
89
106
  _forget(c: PoolClient): void;
90
- /** 세션 없는 질의. facade 의 호출당 세션이 pg 의 "빌려서 쓰고 돌려준다" 와 같다. */
107
+ /** A query with no session. The facade's session-per-call is the same as
108
+ * pg's "borrow it, use it, give it back". */
91
109
  query<R = Record<string, unknown>>(text: string | QueryConfig, values?: unknown[]): Promise<QueryResult<R>>;
92
110
  query<R = Record<string, unknown>>(text: string | QueryConfig, cb: QueryCallback<R>): void;
93
111
  query<R = Record<string, unknown>>(text: string | QueryConfig, values: unknown[], cb: QueryCallback<R>): void;
@@ -95,11 +113,12 @@ export declare class Pool extends Emitter {
95
113
  end(cb: (err?: Error) => void): void;
96
114
  }
97
115
  /**
98
- * `db` 를 미리 묶은 pg 모양의 모듈.
116
+ * A pg-shaped module with `db` bound in advance.
99
117
  *
100
- * ORM 이 드라이버 모듈을 통째로 받는 자리(TypeORM 의 `driver`, Sequelize 의
101
- * `dialectModule`, Knex 의 `_driver()`)에 넘긴다. 그 ORM 들은 `new Pool(옵션)` 을
102
- * 자기 옵션으로 부르므로, `db` 를 옵션에 실어 줄 길이 없다 — 여기서 묶는다.
118
+ * It is handed to the places where an ORM takes a whole driver module
119
+ * (TypeORM's `driver`, Sequelize's `dialectModule`, Knex's `_driver()`). Those
120
+ * ORMs call `new Pool(options)` with their own options, so there is no way to
121
+ * put `db` into the options — it is bound here.
103
122
  */
104
123
  export declare function pgModule(db: Db): PgModule;
105
124
  export interface PgModule {
@@ -107,12 +126,13 @@ export interface PgModule {
107
126
  Pool: typeof Pool;
108
127
  DatabaseError: typeof DatabaseError;
109
128
  defaults: typeof defaults;
110
- /** Sequelize 의 `lib.types.getTypeParser`, Drizzle 의 `types.builtins`. */
129
+ /** Sequelize's `lib.types.getTypeParser`, Drizzle's `types.builtins`. */
111
130
  types: typeof types;
112
131
  native: null;
113
132
  escapeIdentifier(s: string): string;
114
133
  escapeLiteral(s: string): string;
115
134
  }
116
- /** pg 의 `defaults`. TypeORM 이 `parseInt8` 을 만진다 — 우리는 int8 을 늘 문자열로 둔다. */
135
+ /** pg's `defaults`. TypeORM touches `parseInt8` — we always keep int8 as a
136
+ * string. */
117
137
  export declare const defaults: Record<string, unknown>;
118
138
  //# 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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"}