joist-driver-bun-pg 1.294.0 → 2.0.0
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/build/BunPgDriver.d.ts +1 -1
- package/build/BunPgDriver.d.ts.map +1 -1
- package/build/BunPgDriver.js +17 -17
- package/build/BunPgDriver.js.map +1 -1
- package/package.json +2 -2
package/build/BunPgDriver.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SQL, type TransactionSQL } from "bun";
|
|
2
|
-
import { Driver, EntityManager, JoinRowTodo, ParsedFindQuery, Todo } from "joist-
|
|
2
|
+
import { Driver, EntityManager, JoinRowTodo, ParsedFindQuery, Todo } from "joist-core";
|
|
3
3
|
export declare class BunPgDriver implements Driver<TransactionSQL> {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(_sql?: SQL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunPgDriver.d.ts","sourceRoot":"","sources":["../src/BunPgDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACnE,OAAO,EAGL,MAAM,EAMN,aAAa,EAGb,WAAW,EAGX,eAAe,EAEf,IAAI,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"BunPgDriver.d.ts","sourceRoot":"","sources":["../src/BunPgDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACnE,OAAO,EAGL,MAAM,EAMN,aAAa,EAGb,WAAW,EAGX,eAAe,EAEf,IAAI,EACL,MAAM,YAAY,CAAC;AAOpB,qBAAa,WAAY,YAAW,MAAM,CAAC,cAAc,CAAC;;gBAI5C,IAAI,GAAE,GAAS;IAK3B,WAAW,CACT,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIvE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsB5F,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAajH,IAAI,cAAc,OAEjB;CACF"}
|
package/build/BunPgDriver.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BunPgDriver = void 0;
|
|
4
4
|
const bun_1 = require("bun");
|
|
5
|
-
const
|
|
6
|
-
const { getRuntimeConfig, cleanSql, generateOps } =
|
|
5
|
+
const joist_core_1 = require("joist-core");
|
|
6
|
+
const { getRuntimeConfig, cleanSql, generateOps } = joist_core_1.driverApi;
|
|
7
7
|
class BunPgDriver {
|
|
8
8
|
#idAssigner;
|
|
9
9
|
#sql;
|
|
10
10
|
constructor(_sql = bun_1.sql) {
|
|
11
11
|
this.#sql = _sql;
|
|
12
|
-
this.#idAssigner = new
|
|
12
|
+
this.#idAssigner = new joist_core_1.SequenceIdAssigner((s) => this.#sql.unsafe(s));
|
|
13
13
|
}
|
|
14
14
|
executeFind(em, parsed, settings) {
|
|
15
15
|
throw new Error("Method not implemented.");
|
|
@@ -23,20 +23,20 @@ class BunPgDriver {
|
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
25
|
// This should be done on a reserved connection...
|
|
26
|
-
await (0,
|
|
26
|
+
await (0, joist_core_1.driverBeforeBegin)(em, this.#sql);
|
|
27
27
|
const result = await this.#sql.begin(async (txn) => {
|
|
28
28
|
em.txn = txn;
|
|
29
29
|
try {
|
|
30
|
-
await (0,
|
|
30
|
+
await (0, joist_core_1.driverAfterBegin)(em, txn);
|
|
31
31
|
const result = await fn(txn);
|
|
32
|
-
await (0,
|
|
32
|
+
await (0, joist_core_1.driverBeforeCommit)(em, txn);
|
|
33
33
|
return result;
|
|
34
34
|
}
|
|
35
35
|
finally {
|
|
36
36
|
em.txn = undefined;
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
|
-
await (0,
|
|
39
|
+
await (0, joist_core_1.driverAfterCommit)(em, this.#sql);
|
|
40
40
|
return result;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -44,7 +44,7 @@ class BunPgDriver {
|
|
|
44
44
|
throw new Error("Method not implemented.");
|
|
45
45
|
}
|
|
46
46
|
async flush(em, todos, joinRows) {
|
|
47
|
-
const sql = (em.txn ?? (0,
|
|
47
|
+
const sql = (em.txn ?? (0, joist_core_1.fail)("Expected EntityManager.txn to be set"));
|
|
48
48
|
await this.#idAssigner.assignNewIds(todos);
|
|
49
49
|
const ops = generateOps(todos);
|
|
50
50
|
// Do INSERTs+UPDATEs first so that we avoid DELETE cascades invalidating oplocks
|
|
@@ -62,17 +62,17 @@ class BunPgDriver {
|
|
|
62
62
|
exports.BunPgDriver = BunPgDriver;
|
|
63
63
|
function batchInsert(txn, op) {
|
|
64
64
|
const { tableName, columns, columnValues } = op;
|
|
65
|
-
const { sql: cte, bindings } = (0,
|
|
65
|
+
const { sql: cte, bindings } = (0, joist_core_1.buildCteSql)((0, joist_core_1.buildUnnestCte)("data", columns, columnValues));
|
|
66
66
|
const sql = cleanSql(`
|
|
67
67
|
${cte}
|
|
68
|
-
INSERT INTO ${(0,
|
|
68
|
+
INSERT INTO ${(0, joist_core_1.kq)(tableName)} (${columns.map((c) => (0, joist_core_1.kq)(c.columnName)).join(", ")})
|
|
69
69
|
SELECT * FROM data
|
|
70
70
|
`);
|
|
71
71
|
return convertToSql(txn, sql, bindings);
|
|
72
72
|
}
|
|
73
73
|
async function batchUpdate(txn, op) {
|
|
74
74
|
const { tableName, columns, columnValues, updatedAt } = op;
|
|
75
|
-
const { sql: cte, bindings } = (0,
|
|
75
|
+
const { sql: cte, bindings } = (0, joist_core_1.buildCteSql)((0, joist_core_1.buildUnnestCte)("data", columns, columnValues));
|
|
76
76
|
// JS Dates only have millisecond-level precision, so we may have dropped/lost accuracy when
|
|
77
77
|
// reading Postgres's microsecond-level `timestamptz` values; using `date_trunc` "downgrades"
|
|
78
78
|
// the pg data to match what we have in the JS Date.
|
|
@@ -80,20 +80,20 @@ async function batchUpdate(txn, op) {
|
|
|
80
80
|
// ...but Temporal's types don't have this flaw.
|
|
81
81
|
const truncateToMills = !getRuntimeConfig().temporal;
|
|
82
82
|
const maybeUpdatedAt = updatedAt && truncateToMills
|
|
83
|
-
? ` AND date_trunc('milliseconds', ${(0,
|
|
83
|
+
? ` AND date_trunc('milliseconds', ${(0, joist_core_1.kqDot)(tableName, updatedAt)}) = data.__original_updated_at`
|
|
84
84
|
: updatedAt
|
|
85
|
-
? ` AND ${(0,
|
|
85
|
+
? ` AND ${(0, joist_core_1.kqDot)(tableName, updatedAt)} = data.__original_updated_at`
|
|
86
86
|
: "";
|
|
87
87
|
const sql = `
|
|
88
88
|
${cte}
|
|
89
|
-
UPDATE ${(0,
|
|
89
|
+
UPDATE ${(0, joist_core_1.kq)(tableName)}
|
|
90
90
|
SET ${columns
|
|
91
91
|
.filter((c) => c.columnName !== "id" && c.columnName !== "__original_updated_at")
|
|
92
|
-
.map((c) => `${(0,
|
|
92
|
+
.map((c) => `${(0, joist_core_1.kq)(c.columnName)} = data.${(0, joist_core_1.kq)(c.columnName)}`)
|
|
93
93
|
.join(", ")}
|
|
94
94
|
FROM data
|
|
95
|
-
WHERE ${(0,
|
|
96
|
-
RETURNING ${(0,
|
|
95
|
+
WHERE ${(0, joist_core_1.kq)(tableName)}.id = data.id ${maybeUpdatedAt}
|
|
96
|
+
RETURNING ${(0, joist_core_1.kq)(tableName)}.id
|
|
97
97
|
`;
|
|
98
98
|
const results = await convertToSql(txn, sql, bindings);
|
|
99
99
|
const ids = columnValues[0]; // assume id is the 1st column
|
package/build/BunPgDriver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunPgDriver.js","sourceRoot":"","sources":["../src/BunPgDriver.ts"],"names":[],"mappings":";;;AAAA,6BAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"BunPgDriver.js","sourceRoot":"","sources":["../src/BunPgDriver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-driver-bun-pg",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"bun-types": "^1.2.23",
|
|
23
|
-
"joist-
|
|
23
|
+
"joist-core": "2.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"prettier": "^3.6.2",
|