@atscript/db-sqlite 0.1.33 → 0.1.34
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/dist/index.cjs +20 -2
- package/dist/index.mjs +20 -2
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -223,7 +223,7 @@ function buildDelete(table, where) {
|
|
|
223
223
|
params: [...where.params]
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
|
-
function buildCreateTable(table, fields) {
|
|
226
|
+
function buildCreateTable(table, fields, foreignKeys) {
|
|
227
227
|
const colDefs = [];
|
|
228
228
|
const primaryKeys = fields.filter((f) => f.isPrimaryKey);
|
|
229
229
|
for (const field of fields) {
|
|
@@ -238,8 +238,25 @@ function buildCreateTable(table, fields) {
|
|
|
238
238
|
const pkCols = primaryKeys.map((pk) => `"${esc$1(pk.physicalName)}"`).join(", ");
|
|
239
239
|
colDefs.push(`PRIMARY KEY (${pkCols})`);
|
|
240
240
|
}
|
|
241
|
+
if (foreignKeys) for (const fk of foreignKeys.values()) {
|
|
242
|
+
const localCols = fk.fields.map((f) => `"${esc$1(f)}"`).join(", ");
|
|
243
|
+
const targetCols = fk.targetFields.map((f) => `"${esc$1(f)}"`).join(", ");
|
|
244
|
+
let constraint = `FOREIGN KEY (${localCols}) REFERENCES "${esc$1(fk.targetTable)}" (${targetCols})`;
|
|
245
|
+
if (fk.onDelete) constraint += ` ON DELETE ${refActionToSql(fk.onDelete)}`;
|
|
246
|
+
if (fk.onUpdate) constraint += ` ON UPDATE ${refActionToSql(fk.onUpdate)}`;
|
|
247
|
+
colDefs.push(constraint);
|
|
248
|
+
}
|
|
241
249
|
return `CREATE TABLE IF NOT EXISTS "${esc$1(table)}" (${colDefs.join(", ")})`;
|
|
242
250
|
}
|
|
251
|
+
function refActionToSql(action) {
|
|
252
|
+
switch (action) {
|
|
253
|
+
case "cascade": return "CASCADE";
|
|
254
|
+
case "restrict": return "RESTRICT";
|
|
255
|
+
case "setNull": return "SET NULL";
|
|
256
|
+
case "setDefault": return "SET DEFAULT";
|
|
257
|
+
default: return "NO ACTION";
|
|
258
|
+
}
|
|
259
|
+
}
|
|
243
260
|
function sqliteTypeFromDesignType(designType) {
|
|
244
261
|
switch (designType) {
|
|
245
262
|
case "number":
|
|
@@ -406,7 +423,7 @@ var SqliteAdapter = class extends __atscript_utils_db.BaseDbAdapter {
|
|
|
406
423
|
return { deletedCount: result.changes };
|
|
407
424
|
}
|
|
408
425
|
async ensureTable() {
|
|
409
|
-
const sql = buildCreateTable(this.resolveTableName(), this._table.fieldDescriptors);
|
|
426
|
+
const sql = buildCreateTable(this.resolveTableName(), this._table.fieldDescriptors, this._table.foreignKeys);
|
|
410
427
|
this.driver.exec(sql);
|
|
411
428
|
}
|
|
412
429
|
async syncIndexes() {
|
|
@@ -426,6 +443,7 @@ var SqliteAdapter = class extends __atscript_utils_db.BaseDbAdapter {
|
|
|
426
443
|
}
|
|
427
444
|
constructor(driver) {
|
|
428
445
|
super(), _define_property$1(this, "driver", void 0), this.driver = driver;
|
|
446
|
+
driver.exec("PRAGMA foreign_keys = ON");
|
|
429
447
|
}
|
|
430
448
|
};
|
|
431
449
|
function esc(name) {
|
package/dist/index.mjs
CHANGED
|
@@ -206,7 +206,7 @@ function buildDelete(table, where) {
|
|
|
206
206
|
params: [...where.params]
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
|
-
function buildCreateTable(table, fields) {
|
|
209
|
+
function buildCreateTable(table, fields, foreignKeys) {
|
|
210
210
|
const colDefs = [];
|
|
211
211
|
const primaryKeys = fields.filter((f) => f.isPrimaryKey);
|
|
212
212
|
for (const field of fields) {
|
|
@@ -221,8 +221,25 @@ function buildCreateTable(table, fields) {
|
|
|
221
221
|
const pkCols = primaryKeys.map((pk) => `"${esc$1(pk.physicalName)}"`).join(", ");
|
|
222
222
|
colDefs.push(`PRIMARY KEY (${pkCols})`);
|
|
223
223
|
}
|
|
224
|
+
if (foreignKeys) for (const fk of foreignKeys.values()) {
|
|
225
|
+
const localCols = fk.fields.map((f) => `"${esc$1(f)}"`).join(", ");
|
|
226
|
+
const targetCols = fk.targetFields.map((f) => `"${esc$1(f)}"`).join(", ");
|
|
227
|
+
let constraint = `FOREIGN KEY (${localCols}) REFERENCES "${esc$1(fk.targetTable)}" (${targetCols})`;
|
|
228
|
+
if (fk.onDelete) constraint += ` ON DELETE ${refActionToSql(fk.onDelete)}`;
|
|
229
|
+
if (fk.onUpdate) constraint += ` ON UPDATE ${refActionToSql(fk.onUpdate)}`;
|
|
230
|
+
colDefs.push(constraint);
|
|
231
|
+
}
|
|
224
232
|
return `CREATE TABLE IF NOT EXISTS "${esc$1(table)}" (${colDefs.join(", ")})`;
|
|
225
233
|
}
|
|
234
|
+
function refActionToSql(action) {
|
|
235
|
+
switch (action) {
|
|
236
|
+
case "cascade": return "CASCADE";
|
|
237
|
+
case "restrict": return "RESTRICT";
|
|
238
|
+
case "setNull": return "SET NULL";
|
|
239
|
+
case "setDefault": return "SET DEFAULT";
|
|
240
|
+
default: return "NO ACTION";
|
|
241
|
+
}
|
|
242
|
+
}
|
|
226
243
|
function sqliteTypeFromDesignType(designType) {
|
|
227
244
|
switch (designType) {
|
|
228
245
|
case "number":
|
|
@@ -389,7 +406,7 @@ var SqliteAdapter = class extends BaseDbAdapter {
|
|
|
389
406
|
return { deletedCount: result.changes };
|
|
390
407
|
}
|
|
391
408
|
async ensureTable() {
|
|
392
|
-
const sql = buildCreateTable(this.resolveTableName(), this._table.fieldDescriptors);
|
|
409
|
+
const sql = buildCreateTable(this.resolveTableName(), this._table.fieldDescriptors, this._table.foreignKeys);
|
|
393
410
|
this.driver.exec(sql);
|
|
394
411
|
}
|
|
395
412
|
async syncIndexes() {
|
|
@@ -409,6 +426,7 @@ var SqliteAdapter = class extends BaseDbAdapter {
|
|
|
409
426
|
}
|
|
410
427
|
constructor(driver) {
|
|
411
428
|
super(), _define_property$1(this, "driver", void 0), this.driver = driver;
|
|
429
|
+
driver.exec("PRAGMA foreign_keys = ON");
|
|
412
430
|
}
|
|
413
431
|
};
|
|
414
432
|
function esc(name) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atscript/db-sqlite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
4
|
"description": "SQLite adapter for @atscript/utils-db with swappable driver support.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"atscript",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"vitest": "3.2.4"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@uniqu/core": "^0.0.
|
|
41
|
+
"@uniqu/core": "^0.0.4",
|
|
42
42
|
"better-sqlite3": ">=11.0.0",
|
|
43
|
-
"@atscript/core": "^0.1.
|
|
44
|
-
"@atscript/
|
|
45
|
-
"@atscript/
|
|
43
|
+
"@atscript/core": "^0.1.34",
|
|
44
|
+
"@atscript/typescript": "^0.1.34",
|
|
45
|
+
"@atscript/utils-db": "^0.1.34"
|
|
46
46
|
},
|
|
47
47
|
"peerDependenciesMeta": {
|
|
48
48
|
"better-sqlite3": {
|