@runlot/pg 0.1.0-rc.11 → 0.1.0-rc.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/dist/bundler.d.ts +9 -9
- package/dist/bundler.d.ts.map +1 -1
- package/dist/bundler.js +99 -51
- package/dist/bundler.js.map +1 -1
- package/dist/client.d.ts +34 -14
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +173 -33
- package/dist/client.js.map +1 -1
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +6 -5
- package/dist/emitter.js.map +1 -1
- package/dist/errors.d.ts +8 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +10 -7
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/orm/drizzle.d.ts.map +1 -1
- package/dist/orm/drizzle.js +5 -4
- package/dist/orm/drizzle.js.map +1 -1
- package/dist/orm/knex.d.ts.map +1 -1
- package/dist/orm/knex.js +7 -8
- package/dist/orm/knex.js.map +1 -1
- package/dist/orm/kysely.js +3 -3
- package/dist/orm/kysely.js.map +1 -1
- package/dist/orm/prisma.d.ts.map +1 -1
- package/dist/orm/prisma.js +16 -12
- package/dist/orm/prisma.js.map +1 -1
- package/dist/orm/sequelize.d.ts.map +1 -1
- package/dist/orm/sequelize.js +9 -6
- package/dist/orm/sequelize.js.map +1 -1
- package/dist/orm/typeorm.d.ts.map +1 -1
- package/dist/orm/typeorm.js +6 -5
- package/dist/orm/typeorm.js.map +1 -1
- package/dist/type-parsers.d.ts +14 -10
- package/dist/type-parsers.d.ts.map +1 -1
- package/dist/type-parsers.js +41 -31
- package/dist/type-parsers.js.map +1 -1
- package/dist/types.d.ts +24 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -4
- package/dist/types.js.map +1 -1
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @runlot/pg
|
|
2
2
|
|
|
3
|
-
`env.db` 위에서 node-postgres(`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` 이 그 안에서
|
|
23
|
-
- 오류는 `DatabaseError` 로 던지고 `err.code` 가 SQLSTATE
|
|
22
|
+
prepared statement, `SET` 이 그 안에서 유지됩니다. `release()` 나 `end()` 로 돌려주세요.
|
|
23
|
+
- 오류는 `DatabaseError` 로 던지고 `err.code` 가 SQLSTATE 입니다 (`23505` 같은 값).
|
|
24
24
|
- `types.setTypeParser(oid, fn)` 으로 타입 변환을 바꿀 수 있어요. 기본은 `pg` 와
|
|
25
|
-
|
|
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` 로 배포하면 따로 할 일이
|
|
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
|
-
다른 도구로 직접 묶는다면 같은 일을
|
|
42
|
+
다른 도구로 직접 묶는다면 같은 일을 해야 합니다: `pg` → `@runlot/pg` alias,
|
|
43
43
|
node 내장은 `node:` 접두로 외부에 두고 매니페스트에 `"compatibilityFlags":
|
|
44
44
|
["nodejs_compat"]`, `fs`·`os`·`tty` 는 빈 스텁, `.wasm` 은 번들 밖 모듈로 두고
|
|
45
|
-
매니페스트 `modules` 에 `{ "name", "type": "wasm", "path" }` 로
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
8
|
+
/** Node built-ins left external by the worker (sorted, such as `node:util`). Requires `nodejs_compat` when nonempty. */
|
|
9
9
|
nodeImports: string[];
|
|
10
|
-
/**
|
|
10
|
+
/** WASM modules that must be included alongside it. */
|
|
11
11
|
wasmModules: WasmModule[];
|
|
12
12
|
}
|
|
13
13
|
export interface BuildWorkerOptions {
|
|
14
|
-
/**
|
|
14
|
+
/** Entry point, relative to absWorkingDir or absolute. */
|
|
15
15
|
entry: string;
|
|
16
16
|
absWorkingDir: string;
|
|
17
|
-
/**
|
|
17
|
+
/** Metafile output name. Defaults to `worker/index.js`; no file is written. */
|
|
18
18
|
outfile?: string;
|
|
19
|
-
/** `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
|
-
*
|
|
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
|
package/dist/bundler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"
|
|
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
|
-
//
|
|
2
|
-
//
|
|
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
|
-
//
|
|
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`
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// -
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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`
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
`
|
|
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
|
-
/**
|
|
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
|
|
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
|
-
*
|
|
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`
|
|
190
|
-
//
|
|
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
|
-
//
|
|
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
|
|
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
|
}
|
package/dist/bundler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAAA,
|
|
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 })
|
|
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
|
|
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
|
-
*
|
|
44
|
-
* `connect()`
|
|
45
|
-
*
|
|
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
|
|
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
|
|
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
|
-
/**
|
|
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`
|
|
116
|
+
* A pg-shaped module with `db` bound in advance.
|
|
99
117
|
*
|
|
100
|
-
*
|
|
101
|
-
* `dialectModule`, Knex
|
|
102
|
-
*
|
|
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
|
|
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
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|