drizzle-orm 0.23.8 → 0.23.9-2b2c353
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 +4 -2
- package/aws-data-api/pg/driver.d.ts +1 -1
- package/aws-data-api/pg/driver.d.ts.map +1 -1
- package/aws-data-api/pg/driver.js +1 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/migrator.d.ts.map +1 -1
- package/aws-data-api/pg/migrator.js +1 -54
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/aws-data-api/pg/session.d.ts +16 -16
- package/aws-data-api/pg/session.d.ts.map +1 -1
- package/aws-data-api/pg/session.js +47 -32
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/session.d.ts +7 -4
- package/better-sqlite3/session.d.ts.map +1 -1
- package/better-sqlite3/session.js +24 -6
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sqlite/session.d.ts +7 -3
- package/bun-sqlite/session.d.ts.map +1 -1
- package/bun-sqlite/session.js +28 -3
- package/bun-sqlite/session.js.map +1 -1
- package/d1/session.d.ts +6 -4
- package/d1/session.d.ts.map +1 -1
- package/d1/session.js +31 -12
- package/d1/session.js.map +1 -1
- package/errors.d.ts +8 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +25 -0
- package/errors.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.d.ts.map +1 -1
- package/index.js +10 -0
- package/index.js.map +1 -1
- package/libsql/driver.js +1 -1
- package/libsql/driver.js.map +1 -1
- package/libsql/session.d.ts +13 -12
- package/libsql/session.d.ts.map +1 -1
- package/libsql/session.js +38 -22
- package/libsql/session.js.map +1 -1
- package/migrator.d.ts +1 -0
- package/migrator.d.ts.map +1 -1
- package/migrator.js +3 -5
- package/migrator.js.map +1 -1
- package/mysql-core/columns/date.common.d.ts +1 -1
- package/mysql-core/db.d.ts +4 -3
- package/mysql-core/db.d.ts.map +1 -1
- package/mysql-core/db.js +3 -0
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.d.ts +3 -4
- package/mysql-core/dialect.d.ts.map +1 -1
- package/mysql-core/dialect.js +15 -45
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/select.js +1 -1
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/session.d.ts +18 -2
- package/mysql-core/session.d.ts.map +1 -1
- package/mysql-core/session.js +31 -1
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/table.d.ts +2 -2
- package/mysql-core/table.d.ts.map +1 -1
- package/mysql-core/table.js +5 -5
- package/mysql-core/table.js.map +1 -1
- package/mysql-core/utils.d.ts +2 -1
- package/mysql-core/utils.d.ts.map +1 -1
- package/mysql-core/utils.js +2 -0
- package/mysql-core/utils.js.map +1 -1
- package/mysql2/driver.d.ts +1 -1
- package/mysql2/driver.d.ts.map +1 -1
- package/mysql2/migrator.d.ts +1 -1
- package/mysql2/migrator.d.ts.map +1 -1
- package/mysql2/migrator.js +1 -1
- package/mysql2/migrator.js.map +1 -1
- package/mysql2/session.d.ts +11 -8
- package/mysql2/session.d.ts.map +1 -1
- package/mysql2/session.js +54 -4
- package/mysql2/session.js.map +1 -1
- package/neon-serverless/driver.d.ts +1 -1
- package/neon-serverless/driver.d.ts.map +1 -1
- package/neon-serverless/session.d.ts +11 -5
- package/neon-serverless/session.d.ts.map +1 -1
- package/neon-serverless/session.js +41 -1
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.d.ts +1 -1
- package/node-postgres/driver.d.ts.map +1 -1
- package/node-postgres/session.d.ts +12 -6
- package/node-postgres/session.d.ts.map +1 -1
- package/node-postgres/session.js +41 -1
- package/node-postgres/session.js.map +1 -1
- package/package.json +1 -1
- package/pg-core/columns/date.common.d.ts +1 -1
- package/pg-core/db.d.ts +6 -5
- package/pg-core/db.d.ts.map +1 -1
- package/pg-core/db.js +3 -0
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.d.ts.map +1 -1
- package/pg-core/dialect.js +13 -20
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/refresh-materialized-view.d.ts +1 -1
- package/pg-core/query-builders/refresh-materialized-view.d.ts.map +1 -1
- package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/pg-core/query-builders/select.js +1 -1
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/session.d.ts +16 -4
- package/pg-core/session.d.ts.map +1 -1
- package/pg-core/session.js +30 -6
- package/pg-core/session.js.map +1 -1
- package/pg-core/table.d.ts +1 -1
- package/pg-core/table.d.ts.map +1 -1
- package/pg-core/table.js +5 -5
- package/pg-core/table.js.map +1 -1
- package/pg-core/utils.d.ts +2 -2
- package/pg-core/view.js.map +1 -1
- package/planetscale-serverless/driver.d.ts +1 -1
- package/planetscale-serverless/driver.d.ts.map +1 -1
- package/planetscale-serverless/driver.js +1 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/migrator.d.ts +1 -1
- package/planetscale-serverless/migrator.d.ts.map +1 -1
- package/planetscale-serverless/migrator.js +1 -23
- package/planetscale-serverless/migrator.js.map +1 -1
- package/planetscale-serverless/session.d.ts +12 -15
- package/planetscale-serverless/session.d.ts.map +1 -1
- package/planetscale-serverless/session.js +31 -12
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.d.ts +1 -2
- package/postgres-js/driver.d.ts.map +1 -1
- package/postgres-js/session.d.ts +17 -7
- package/postgres-js/session.d.ts.map +1 -1
- package/postgres-js/session.js +41 -2
- package/postgres-js/session.js.map +1 -1
- package/sql/index.d.ts +4 -0
- package/sql/index.d.ts.map +1 -1
- package/sql/index.js +14 -0
- package/sql/index.js.map +1 -1
- package/sql-js/session.d.ts +7 -4
- package/sql-js/session.d.ts.map +1 -1
- package/sql-js/session.js +34 -6
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/db.d.ts +23 -14
- package/sqlite-core/db.d.ts.map +1 -1
- package/sqlite-core/db.js +15 -1
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/query-builders/delete.d.ts +1 -1
- package/sqlite-core/query-builders/delete.d.ts.map +1 -1
- package/sqlite-core/query-builders/delete.js +6 -7
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.d.ts +1 -1
- package/sqlite-core/query-builders/insert.d.ts.map +1 -1
- package/sqlite-core/query-builders/insert.js +6 -7
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/select.d.ts +1 -1
- package/sqlite-core/query-builders/select.d.ts.map +1 -1
- package/sqlite-core/query-builders/select.js +7 -8
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.d.ts +1 -1
- package/sqlite-core/query-builders/update.d.ts.map +1 -1
- package/sqlite-core/query-builders/update.js +6 -7
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.d.ts +12 -13
- package/sqlite-core/session.d.ts.map +1 -1
- package/sqlite-core/session.js +15 -26
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/table.d.ts +1 -1
- package/sqlite-core/table.d.ts.map +1 -1
- package/sqlite-core/table.js +3 -3
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-core/utils.d.ts +1 -1
- package/sqlite-core/view.d.ts +1 -0
- package/sqlite-core/view.d.ts.map +1 -1
- package/sqlite-core/view.js +2 -1
- package/sqlite-core/view.js.map +1 -1
- package/sqlite-proxy/session.d.ts +8 -5
- package/sqlite-proxy/session.d.ts.map +1 -1
- package/sqlite-proxy/session.js +35 -8
- package/sqlite-proxy/session.js.map +1 -1
- package/table.d.ts +1 -1
- package/table.d.ts.map +1 -1
- package/table.js +6 -2
- package/table.js.map +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<h1>Drizzle ORM <a href=""><img alt="npm" src="https://img.shields.io/npm/v/drizzle-orm?label="></a></h1>
|
|
3
3
|
<img alt="npm" src="https://img.shields.io/npm/dm/drizzle-orm">
|
|
4
4
|
<img alt="npm bundle size" src="https://img.shields.io/bundlephobia/min/drizzle-orm">
|
|
5
|
-
<a href="https://discord.gg/yfjTbVXMW4"><img alt="Discord" src="https://img.shields.io/discord/1043890932593987624"></a>
|
|
5
|
+
<a href="https://discord.gg/yfjTbVXMW4"><img alt="Discord" src="https://img.shields.io/discord/1043890932593987624?label=Discord"></a>
|
|
6
6
|
<img alt="License" src="https://img.shields.io/npm/l/drizzle-orm">
|
|
7
7
|
<h6><i>If you know SQL, you know Drizzle ORM</i></h6>
|
|
8
8
|
<hr />
|
|
@@ -41,6 +41,7 @@ Drizzle ORM is being battle-tested on production projects by multiple teams 🚀
|
|
|
41
41
|
| CockroachDB | ⏳ | |
|
|
42
42
|
|
|
43
43
|
## Our sponsors ❤️
|
|
44
|
+
|
|
44
45
|
<p align="center">
|
|
45
46
|
<a href="https://drizzle.team" target="_blank">
|
|
46
47
|
<img src='https://api.drizzle.team/github/sponsors/svg'/>
|
|
@@ -61,7 +62,8 @@ npm install -D drizzle-kit
|
|
|
61
62
|
```typescript
|
|
62
63
|
import { eq } from 'drizzle-orm/expressions';
|
|
63
64
|
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
64
|
-
import { integer, pgTable, serial, text, timestamp, varchar
|
|
65
|
+
import { integer, pgTable, serial, text, timestamp, varchar } from 'drizzle-orm/pg-core';
|
|
66
|
+
import { sql } from 'drizzle-orm/sql';
|
|
65
67
|
import { InferModel } from 'drizzle-orm';
|
|
66
68
|
import { Pool } from 'pg';
|
|
67
69
|
|
|
@@ -22,7 +22,7 @@ export interface DrizzleConfig {
|
|
|
22
22
|
resourceArn: string;
|
|
23
23
|
secretArn: string;
|
|
24
24
|
}
|
|
25
|
-
export type AwsDataApiPgDatabase = PgDatabase<AwsDataApiPgQueryResultHKT
|
|
25
|
+
export type AwsDataApiPgDatabase = PgDatabase<AwsDataApiPgQueryResultHKT>;
|
|
26
26
|
export declare class AwsPgDialect extends PgDialect {
|
|
27
27
|
escapeName(name: string): string;
|
|
28
28
|
escapeParam(num: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAFP,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,eAAe;IAIjC,aAAa,IAAI,iBAAiB;CAGlC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;AAE1E,qBAAa,YAAa,SAAQ,SAAS;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAGzC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAW7F"}
|
|
@@ -12,7 +12,7 @@ class AwsDataApiDriver {
|
|
|
12
12
|
this.options = options;
|
|
13
13
|
}
|
|
14
14
|
createSession() {
|
|
15
|
-
return new session_1.AwsDataApiSession(this.client, this.dialect, this.options);
|
|
15
|
+
return new session_1.AwsDataApiSession(this.client, this.dialect, this.options, undefined);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
exports.AwsDataApiDriver = AwsDataApiDriver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,qCAA0C;AAC1C,+CAA8C;AAE9C,uCAA8C;AAS9C,MAAa,gBAAgB;IAC5B,YACS,MAAwB,EACxB,OAAkB,EAClB,OAAwB;QAFxB,WAAM,GAAN,MAAM,CAAkB;QACxB,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAiB;IAEjC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,2BAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,qCAA0C;AAC1C,+CAA8C;AAE9C,uCAA8C;AAS9C,MAAa,gBAAgB;IAC5B,YACS,MAAwB,EACxB,OAAkB,EAClB,OAAwB;QAFxB,WAAM,GAAN,MAAM,CAAkB;QACxB,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAiB;IAEjC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,2BAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClF,CAAC;CACD;AAXD,4CAWC;AAWD,MAAa,YAAa,SAAQ,mBAAS;IACjC,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,IAAI,GAAG,CAAC;IACpB,CAAC;IAEQ,WAAW,CAAC,GAAW;QAC/B,OAAO,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;IACtB,CAAC;CACD;AARD,oCAQC;AAED,SAAgB,OAAO,CAAC,MAAwB,EAAE,MAAqB;IACtE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC;IACX,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;KAC7B;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;QACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KACvB;IACD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,kCAAO,MAAM,KAAE,MAAM,IAAG,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IACvC,OAAO,IAAI,eAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAXD,0BAWC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,wBAAsB,OAAO,CAAC,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,iBAGvF"}
|
|
@@ -8,66 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
-
var m = o[Symbol.asyncIterator], i;
|
|
14
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
-
};
|
|
18
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
12
|
exports.migrate = void 0;
|
|
20
13
|
const migrator_1 = require("../../migrator");
|
|
21
|
-
const sql_1 = require("../../sql");
|
|
22
14
|
function migrate(db, config) {
|
|
23
|
-
var _a, e_1, _b, _c;
|
|
24
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
16
|
const migrations = (0, migrator_1.readMigrationFiles)(config);
|
|
26
|
-
|
|
27
|
-
const { session } = db;
|
|
28
|
-
const migrationTableCreate = (0, sql_1.sql) `CREATE TABLE IF NOT EXISTS "drizzle"."__drizzle_migrations" (
|
|
29
|
-
id SERIAL PRIMARY KEY,
|
|
30
|
-
hash text NOT NULL,
|
|
31
|
-
created_at bigint
|
|
32
|
-
)`;
|
|
33
|
-
yield session.execute((0, sql_1.sql) `CREATE SCHEMA IF NOT EXISTS "drizzle"`);
|
|
34
|
-
yield session.execute(migrationTableCreate);
|
|
35
|
-
const dbMigrations = yield session.execute((0, sql_1.sql) `SELECT id, hash, created_at FROM "drizzle"."__drizzle_migrations" ORDER BY created_at DESC LIMIT 1`);
|
|
36
|
-
const lastDbMigration = dbMigrations[0];
|
|
37
|
-
const transactionId = yield session.beginTransaction();
|
|
38
|
-
try {
|
|
39
|
-
try {
|
|
40
|
-
for (var _d = true, migrations_1 = __asyncValues(migrations), migrations_1_1; migrations_1_1 = yield migrations_1.next(), _a = migrations_1_1.done, !_a;) {
|
|
41
|
-
_c = migrations_1_1.value;
|
|
42
|
-
_d = false;
|
|
43
|
-
try {
|
|
44
|
-
const migration = _c;
|
|
45
|
-
if (!lastDbMigration
|
|
46
|
-
|| parseInt(lastDbMigration.created_at, 10) < migration.folderMillis) {
|
|
47
|
-
for (const stmnt of migration.sql) {
|
|
48
|
-
yield session.executeWithTransaction(sql_1.sql.raw(stmnt), transactionId);
|
|
49
|
-
}
|
|
50
|
-
yield session.executeWithTransaction((0, sql_1.sql) `INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at") VALUES(${migration.hash}, ${migration.folderMillis})`, transactionId);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
finally {
|
|
54
|
-
_d = true;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
59
|
-
finally {
|
|
60
|
-
try {
|
|
61
|
-
if (!_d && !_a && (_b = migrations_1.return)) yield _b.call(migrations_1);
|
|
62
|
-
}
|
|
63
|
-
finally { if (e_1) throw e_1.error; }
|
|
64
|
-
}
|
|
65
|
-
yield session.commitTransaction(transactionId);
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
yield session.rollbackTransaction(transactionId);
|
|
69
|
-
throw e;
|
|
70
|
-
}
|
|
17
|
+
yield db.dialect.migrate(migrations, db.session);
|
|
71
18
|
});
|
|
72
19
|
}
|
|
73
20
|
exports.migrate = migrate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;AAGhD,SAAsB,OAAO,CAAC,EAAwB,EAAE,MAAgC;;QACvF,MAAM,UAAU,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CAAA;AAHD,0BAGC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { ExecuteStatementCommandOutput, RDSDataClient } from '@aws-sdk/client-rds-data';
|
|
2
2
|
import type { Logger } from '../../logger';
|
|
3
|
-
import type
|
|
4
|
-
import { PgSession, PreparedQuery } from '../../pg-core';
|
|
3
|
+
import { type PgDialect, PgSession, PgTransaction, type PgTransactionConfig, PreparedQuery, type PreparedQueryConfig, type QueryResultHKT } from '../../pg-core';
|
|
5
4
|
import type { SelectedFieldsOrdered } from '../../pg-core/query-builders/select.types';
|
|
6
|
-
import type
|
|
5
|
+
import { type Query, type QueryTypingsValue, type SQL } from '../../sql';
|
|
7
6
|
export type AwsDataApiClient = RDSDataClient;
|
|
8
7
|
export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
|
|
9
8
|
private client;
|
|
@@ -12,10 +11,10 @@ export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig> exte
|
|
|
12
11
|
private options;
|
|
13
12
|
private fields;
|
|
14
13
|
private rawQuery;
|
|
15
|
-
constructor(client: AwsDataApiClient, queryString: string, params: unknown[], typings: QueryTypingsValue[], options: AwsDataApiSessionOptions, fields: SelectedFieldsOrdered | undefined,
|
|
14
|
+
constructor(client: AwsDataApiClient, queryString: string, params: unknown[], typings: QueryTypingsValue[], options: AwsDataApiSessionOptions, fields: SelectedFieldsOrdered | undefined,
|
|
15
|
+
/** @internal */
|
|
16
|
+
transactionId: string | undefined);
|
|
16
17
|
execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
17
|
-
all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
|
|
18
|
-
values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
|
|
19
18
|
}
|
|
20
19
|
export interface AwsDataApiSessionOptions {
|
|
21
20
|
logger?: Logger;
|
|
@@ -23,18 +22,19 @@ export interface AwsDataApiSessionOptions {
|
|
|
23
22
|
resourceArn: string;
|
|
24
23
|
secretArn: string;
|
|
25
24
|
}
|
|
26
|
-
export declare class AwsDataApiSession extends PgSession {
|
|
27
|
-
private client;
|
|
25
|
+
export declare class AwsDataApiSession extends PgSession<AwsDataApiPgQueryResultHKT> {
|
|
28
26
|
private options;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
constructor(
|
|
28
|
+
/** @internal */
|
|
29
|
+
client: AwsDataApiClient, dialect: PgDialect, options: AwsDataApiSessionOptions,
|
|
30
|
+
/** @internal */
|
|
31
|
+
transactionId: string | undefined);
|
|
32
|
+
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, transactionId?: string): PreparedQuery<T>;
|
|
34
33
|
execute<T>(query: SQL): Promise<T>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
transaction<T>(transaction: (tx: AwsDataApiTransaction) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
|
|
35
|
+
}
|
|
36
|
+
export declare class AwsDataApiTransaction extends PgTransaction<AwsDataApiPgQueryResultHKT> {
|
|
37
|
+
transaction<T>(transaction: (tx: AwsDataApiTransaction) => Promise<T>): Promise<T>;
|
|
38
38
|
}
|
|
39
39
|
export interface AwsDataApiPgQueryResultHKT extends QueryResultHKT {
|
|
40
40
|
type: ExecuteStatementCommandOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACN,KAAK,SAAS,EACd,SAAS,EACT,aAAa,EACb,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAoB,KAAK,KAAK,EAAE,KAAK,iBAAiB,EAAE,KAAK,GAAG,EAAO,MAAM,OAAO,CAAC;AAI5F,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,qBAAa,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAI1F,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IARf,OAAO,CAAC,QAAQ,CAA0B;gBAGjC,MAAM,EAAE,gBAAgB,EAChC,WAAW,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,qBAAqB,GAAG,SAAS;IACjD,gBAAgB;IACP,aAAa,EAAE,MAAM,GAAG,SAAS;IAarC,OAAO,CAAC,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAc,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAsBjG;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAQD,qBAAa,iBAAkB,SAAQ,SAAS,CAAC,0BAA0B,CAAC;IAQ1E,OAAO,CAAC,OAAO;;IAHf,gBAAgB;IACP,MAAM,EAAE,gBAAgB,EACjC,OAAO,EAAE,SAAS,EACV,OAAO,EAAE,wBAAwB;IACzC,gBAAgB;IACP,aAAa,EAAE,MAAM,GAAG,SAAS;IAU3C,YAAY,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EAC/D,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,aAAa,CAAC,EAAE,MAAM,GACpB,aAAa,CAAC,CAAC,CAAC;IAYV,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ5B,WAAW,CAAC,CAAC,EAC3B,WAAW,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,CAAC,CAAC;CAgBb;AAED,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IAC1E,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAa3F;AAED,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IACjE,IAAI,EAAE,6BAA6B,CAAC;CACpC"}
|
|
@@ -9,20 +9,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.AwsDataApiSession = exports.AwsDataApiPreparedQuery = void 0;
|
|
12
|
+
exports.AwsDataApiTransaction = exports.AwsDataApiSession = exports.AwsDataApiPreparedQuery = void 0;
|
|
13
13
|
const client_rds_data_1 = require("@aws-sdk/client-rds-data");
|
|
14
14
|
const pg_core_1 = require("../../pg-core");
|
|
15
15
|
const sql_1 = require("../../sql");
|
|
16
16
|
const utils_1 = require("../../utils");
|
|
17
17
|
const common_1 = require("../common");
|
|
18
18
|
class AwsDataApiPreparedQuery extends pg_core_1.PreparedQuery {
|
|
19
|
-
constructor(client, queryString, params, typings, options, fields,
|
|
19
|
+
constructor(client, queryString, params, typings, options, fields,
|
|
20
|
+
/** @internal */
|
|
21
|
+
transactionId) {
|
|
20
22
|
super();
|
|
21
23
|
this.client = client;
|
|
22
24
|
this.params = params;
|
|
23
25
|
this.typings = typings;
|
|
24
26
|
this.options = options;
|
|
25
27
|
this.fields = fields;
|
|
28
|
+
this.transactionId = transactionId;
|
|
26
29
|
this.rawQuery = new client_rds_data_1.ExecuteStatementCommand({
|
|
27
30
|
sql: queryString,
|
|
28
31
|
parameters: [],
|
|
@@ -49,55 +52,67 @@ class AwsDataApiPreparedQuery extends pg_core_1.PreparedQuery {
|
|
|
49
52
|
});
|
|
50
53
|
});
|
|
51
54
|
}
|
|
52
|
-
all(placeholderValues) {
|
|
53
|
-
throw new Error('Method not implemented.');
|
|
54
|
-
}
|
|
55
|
-
values(placeholderValues) {
|
|
56
|
-
throw new Error('Method not implemented.');
|
|
57
|
-
}
|
|
58
55
|
}
|
|
59
56
|
exports.AwsDataApiPreparedQuery = AwsDataApiPreparedQuery;
|
|
60
57
|
class AwsDataApiSession extends pg_core_1.PgSession {
|
|
61
|
-
constructor(
|
|
58
|
+
constructor(
|
|
59
|
+
/** @internal */
|
|
60
|
+
client, dialect, options,
|
|
61
|
+
/** @internal */
|
|
62
|
+
transactionId) {
|
|
62
63
|
super(dialect);
|
|
63
64
|
this.client = client;
|
|
64
65
|
this.options = options;
|
|
66
|
+
this.transactionId = transactionId;
|
|
65
67
|
this.rawQuery = {
|
|
66
68
|
secretArn: options.secretArn,
|
|
67
69
|
resourceArn: options.resourceArn,
|
|
68
70
|
database: options.database,
|
|
69
71
|
};
|
|
70
72
|
}
|
|
71
|
-
prepareQuery(query, fields,
|
|
72
|
-
var _a;
|
|
73
|
-
return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields, name, undefined);
|
|
74
|
-
}
|
|
75
|
-
prepareQueryWithTransaction(query, fields, name, transactionId) {
|
|
73
|
+
prepareQuery(query, fields, transactionId) {
|
|
76
74
|
var _a;
|
|
77
|
-
return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields,
|
|
78
|
-
}
|
|
79
|
-
executeWithTransaction(query, transactionId) {
|
|
80
|
-
return this.prepareQueryWithTransaction(this.dialect.sqlToQuery(query), undefined, undefined, transactionId).execute();
|
|
75
|
+
return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields, transactionId);
|
|
81
76
|
}
|
|
82
77
|
execute(query) {
|
|
83
|
-
return this.prepareQuery(this.dialect.sqlToQuery(query), undefined,
|
|
84
|
-
}
|
|
85
|
-
beginTransaction() {
|
|
86
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
-
const transactionRes = yield this.client.send(new client_rds_data_1.BeginTransactionCommand(this.rawQuery));
|
|
88
|
-
return transactionRes.transactionId;
|
|
89
|
-
});
|
|
78
|
+
return this.prepareQuery(this.dialect.sqlToQuery(query), undefined, this.transactionId).execute();
|
|
90
79
|
}
|
|
91
|
-
|
|
80
|
+
transaction(transaction, config) {
|
|
92
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
yield this.client.send(new client_rds_data_1.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
const { transactionId } = yield this.client.send(new client_rds_data_1.BeginTransactionCommand(this.rawQuery));
|
|
83
|
+
const session = new AwsDataApiSession(this.client, this.dialect, this.options, transactionId);
|
|
84
|
+
const tx = new AwsDataApiTransaction(this.dialect, session);
|
|
85
|
+
if (config) {
|
|
86
|
+
yield tx.setTransaction(config);
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const result = yield transaction(tx);
|
|
90
|
+
yield this.client.send(new client_rds_data_1.CommitTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
yield this.client.send(new client_rds_data_1.RollbackTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
99
97
|
});
|
|
100
98
|
}
|
|
101
99
|
}
|
|
102
100
|
exports.AwsDataApiSession = AwsDataApiSession;
|
|
101
|
+
class AwsDataApiTransaction extends pg_core_1.PgTransaction {
|
|
102
|
+
transaction(transaction) {
|
|
103
|
+
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
104
|
+
const tx = new AwsDataApiTransaction(this.dialect, this.session, this.nestedIndex + 1);
|
|
105
|
+
this.session.execute((0, sql_1.sql) `savepoint ${savepointName}`);
|
|
106
|
+
try {
|
|
107
|
+
const result = transaction(tx);
|
|
108
|
+
this.session.execute((0, sql_1.sql) `release savepoint ${savepointName}`);
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
this.session.execute((0, sql_1.sql) `rollback to savepoint ${savepointName}`);
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.AwsDataApiTransaction = AwsDataApiTransaction;
|
|
103
118
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Database, RunResult, Statement } from 'better-sqlite3';
|
|
2
2
|
import type { Logger } from '../logger';
|
|
3
|
-
import type
|
|
3
|
+
import { type Query } from '../sql';
|
|
4
|
+
import { SQLiteTransaction } from '../sqlite-core';
|
|
4
5
|
import type { SQLiteSyncDialect } from '../sqlite-core/dialect';
|
|
5
6
|
import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
|
|
6
|
-
import type { PreparedQueryConfig as PreparedQueryConfigBase,
|
|
7
|
+
import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteTransactionConfig } from '../sqlite-core/session';
|
|
7
8
|
import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
|
|
8
9
|
export interface BetterSQLiteSessionOptions {
|
|
9
10
|
logger?: Logger;
|
|
@@ -13,9 +14,11 @@ export declare class BetterSQLiteSession extends SQLiteSession<'sync', RunResult
|
|
|
13
14
|
private client;
|
|
14
15
|
private logger;
|
|
15
16
|
constructor(client: Database, dialect: SQLiteSyncDialect, options?: BetterSQLiteSessionOptions);
|
|
16
|
-
exec(query: string): void;
|
|
17
17
|
prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined): PreparedQuery<T>;
|
|
18
|
-
transaction(
|
|
18
|
+
transaction<T>(transaction: (tx: BetterSQLiteTransaction) => T, config?: SQLiteTransactionConfig): T;
|
|
19
|
+
}
|
|
20
|
+
export declare class BetterSQLiteTransaction extends SQLiteTransaction<'sync', RunResult> {
|
|
21
|
+
transaction<T>(transaction: (tx: BetterSQLiteTransaction) => T): T;
|
|
19
22
|
}
|
|
20
23
|
export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
|
|
21
24
|
type: 'sync';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAoB,KAAK,KAAK,EAAO,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1F,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;AAE9E,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAIvE,OAAO,CAAC,MAAM;IAHf,OAAO,CAAC,MAAM,CAAS;gBAGd,MAAM,EAAE,QAAQ,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,0BAA+B;IAMzC,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,EACtD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACvC,aAAa,CAAC,CAAC,CAAC;IAKV,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,EAAE,MAAM,GAAE,uBAA4B,GAAG,CAAC;CAKjH;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IACvE,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,GAAG,CAAC;CAa3E;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,iBAAiB,CACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,CACnF;IAEC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBAJN,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAKlD,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAM3D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAW1D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAkB1D,MAAM,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CAKhE"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PreparedQuery = exports.BetterSQLiteSession = void 0;
|
|
3
|
+
exports.PreparedQuery = exports.BetterSQLiteTransaction = exports.BetterSQLiteSession = void 0;
|
|
4
4
|
const logger_1 = require("../logger");
|
|
5
5
|
const sql_1 = require("../sql");
|
|
6
|
+
const sqlite_core_1 = require("../sqlite-core");
|
|
6
7
|
const session_1 = require("../sqlite-core/session");
|
|
7
8
|
const utils_1 = require("../utils");
|
|
8
9
|
class BetterSQLiteSession extends session_1.SQLiteSession {
|
|
@@ -12,18 +13,35 @@ class BetterSQLiteSession extends session_1.SQLiteSession {
|
|
|
12
13
|
this.client = client;
|
|
13
14
|
this.logger = (_a = options.logger) !== null && _a !== void 0 ? _a : new logger_1.NoopLogger();
|
|
14
15
|
}
|
|
15
|
-
exec(query) {
|
|
16
|
-
this.client.exec(query);
|
|
17
|
-
}
|
|
18
16
|
prepareQuery(query, fields) {
|
|
19
17
|
const stmt = this.client.prepare(query.sql);
|
|
20
18
|
return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields);
|
|
21
19
|
}
|
|
22
|
-
transaction() {
|
|
23
|
-
|
|
20
|
+
transaction(transaction, config = {}) {
|
|
21
|
+
var _a;
|
|
22
|
+
const tx = new BetterSQLiteTransaction(this.dialect, this);
|
|
23
|
+
const nativeTx = this.client.transaction(transaction);
|
|
24
|
+
return nativeTx[(_a = config.behavior) !== null && _a !== void 0 ? _a : 'deferred'](tx);
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
exports.BetterSQLiteSession = BetterSQLiteSession;
|
|
28
|
+
class BetterSQLiteTransaction extends sqlite_core_1.SQLiteTransaction {
|
|
29
|
+
transaction(transaction) {
|
|
30
|
+
const savepointName = `sp${this.nestedIndex}`;
|
|
31
|
+
const tx = new BetterSQLiteTransaction(this.dialect, this.session, this.nestedIndex + 1);
|
|
32
|
+
this.session.run(sql_1.sql.raw(`savepoint ${savepointName}`));
|
|
33
|
+
try {
|
|
34
|
+
const result = transaction(tx);
|
|
35
|
+
this.session.run(sql_1.sql.raw(`release savepoint ${savepointName}`));
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
this.session.run(sql_1.sql.raw(`rollback to savepoint ${savepointName}`));
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.BetterSQLiteTransaction = BetterSQLiteTransaction;
|
|
27
45
|
class PreparedQuery extends session_1.PreparedQuery {
|
|
28
46
|
constructor(stmt, queryString, params, logger, fields) {
|
|
29
47
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":";;;AAEA,qCAAsC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"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"}
|
package/bun-sqlite/session.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="bun-types" />
|
|
2
2
|
import type { Database, Statement as BunStatement } from 'bun:sqlite';
|
|
3
3
|
import type { Logger } from '../logger';
|
|
4
|
-
import type
|
|
4
|
+
import { type Query } from '../sql';
|
|
5
|
+
import { SQLiteTransaction } from '../sqlite-core';
|
|
5
6
|
import type { SQLiteSyncDialect } from '../sqlite-core/dialect';
|
|
6
7
|
import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
|
|
7
|
-
import type { PreparedQueryConfig as PreparedQueryConfigBase,
|
|
8
|
+
import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteTransactionConfig } from '../sqlite-core/session';
|
|
8
9
|
import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
|
|
9
10
|
export interface SQLiteBunSessionOptions {
|
|
10
11
|
logger?: Logger;
|
|
@@ -17,7 +18,10 @@ export declare class SQLiteBunSession extends SQLiteSession<'sync', void> {
|
|
|
17
18
|
constructor(client: Database, dialect: SQLiteSyncDialect, options?: SQLiteBunSessionOptions);
|
|
18
19
|
exec(query: string): void;
|
|
19
20
|
prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields?: SelectedFieldsOrdered): PreparedQuery<T>;
|
|
20
|
-
transaction(
|
|
21
|
+
transaction<T>(transaction: (tx: SQLiteBunTransaction) => T, config?: SQLiteTransactionConfig): T;
|
|
22
|
+
}
|
|
23
|
+
export declare class SQLiteBunTransaction extends SQLiteTransaction<'sync', void> {
|
|
24
|
+
transaction<T>(transaction: (tx: SQLiteBunTransaction) => T): T;
|
|
21
25
|
}
|
|
22
26
|
export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
|
|
23
27
|
type: 'sync';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":"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"}
|
package/bun-sqlite/session.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/// <reference types="bun-types" />
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.PreparedQuery = exports.SQLiteBunSession = void 0;
|
|
4
|
+
exports.PreparedQuery = exports.SQLiteBunTransaction = exports.SQLiteBunSession = void 0;
|
|
5
5
|
const logger_1 = require("../logger");
|
|
6
6
|
const sql_1 = require("../sql");
|
|
7
|
+
const sqlite_core_1 = require("../sqlite-core");
|
|
7
8
|
const session_1 = require("../sqlite-core/session");
|
|
8
9
|
const utils_1 = require("../utils");
|
|
9
10
|
class SQLiteBunSession extends session_1.SQLiteSession {
|
|
@@ -20,11 +21,35 @@ class SQLiteBunSession extends session_1.SQLiteSession {
|
|
|
20
21
|
const stmt = this.client.prepare(query.sql);
|
|
21
22
|
return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields);
|
|
22
23
|
}
|
|
23
|
-
transaction() {
|
|
24
|
-
|
|
24
|
+
transaction(transaction, config = {}) {
|
|
25
|
+
var _a;
|
|
26
|
+
const tx = new SQLiteBunTransaction(this.dialect, this);
|
|
27
|
+
let result;
|
|
28
|
+
const nativeTx = this.client.transaction(() => {
|
|
29
|
+
result = transaction(tx);
|
|
30
|
+
});
|
|
31
|
+
nativeTx[(_a = config.behavior) !== null && _a !== void 0 ? _a : 'deferred']();
|
|
32
|
+
return result;
|
|
25
33
|
}
|
|
26
34
|
}
|
|
27
35
|
exports.SQLiteBunSession = SQLiteBunSession;
|
|
36
|
+
class SQLiteBunTransaction extends sqlite_core_1.SQLiteTransaction {
|
|
37
|
+
transaction(transaction) {
|
|
38
|
+
const savepointName = `sp${this.nestedIndex}`;
|
|
39
|
+
const tx = new SQLiteBunTransaction(this.dialect, this.session, this.nestedIndex + 1);
|
|
40
|
+
this.session.run(sql_1.sql.raw(`savepoint ${savepointName}`));
|
|
41
|
+
try {
|
|
42
|
+
const result = transaction(tx);
|
|
43
|
+
this.session.run(sql_1.sql.raw(`release savepoint ${savepointName}`));
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
this.session.run(sql_1.sql.raw(`rollback to savepoint ${savepointName}`));
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.SQLiteBunTransaction = SQLiteBunTransaction;
|
|
28
53
|
class PreparedQuery extends session_1.PreparedQuery {
|
|
29
54
|
constructor(stmt, queryString, params, logger, fields) {
|
|
30
55
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":";AAAA,mCAAmC;;;AAInC,qCAAsC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":"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"}
|
package/d1/session.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
2
|
import type { Logger } from '../logger';
|
|
3
|
-
import type
|
|
3
|
+
import { type Query } from '../sql';
|
|
4
|
+
import { SQLiteTransaction } from '../sqlite-core';
|
|
4
5
|
import type { SQLiteAsyncDialect } from '../sqlite-core/dialect';
|
|
5
6
|
import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
|
|
6
|
-
import { type PreparedQueryConfig as PreparedQueryConfigBase,
|
|
7
|
+
import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteTransactionConfig } from '../sqlite-core/session';
|
|
7
8
|
import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
|
|
8
9
|
export interface SQLiteD1SessionOptions {
|
|
9
10
|
logger?: Logger;
|
|
@@ -14,9 +15,10 @@ export declare class SQLiteD1Session extends SQLiteSession<'async', D1Result> {
|
|
|
14
15
|
private logger;
|
|
15
16
|
constructor(client: D1Database, dialect: SQLiteAsyncDialect, options?: SQLiteD1SessionOptions);
|
|
16
17
|
prepareQuery(query: Query, fields?: SelectedFieldsOrdered): PreparedQuery;
|
|
17
|
-
transaction(transaction: (tx: D1Transaction) =>
|
|
18
|
+
transaction<T>(transaction: (tx: D1Transaction) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
18
19
|
}
|
|
19
|
-
export declare class D1Transaction extends
|
|
20
|
+
export declare class D1Transaction extends SQLiteTransaction<'async', D1Result> {
|
|
21
|
+
transaction<T>(transaction: (tx: D1Transaction) => Promise<T>): Promise<T>;
|
|
20
22
|
}
|
|
21
23
|
export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
|
|
22
24
|
type: 'async';
|