@uns-kit/database 3.0.0 → 3.0.1

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.
@@ -1,4 +1,9 @@
1
1
  import type { DatabaseAdapter } from "../types.js";
2
2
  import type { SqliteDatabaseConfig } from "../schema.js";
3
+ export declare function buildSqliteOpenOptions(config: SqliteDatabaseConfig): {
4
+ readonly?: boolean;
5
+ fileMustExist?: boolean;
6
+ timeout?: number;
7
+ };
3
8
  export declare function createSqliteAdapter(config: SqliteDatabaseConfig): Promise<DatabaseAdapter>;
4
9
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/drivers/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAsBzD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0ChG"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/drivers/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAsBzD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAMA;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsChG"}
@@ -1,3 +1,10 @@
1
+ export function buildSqliteOpenOptions(config) {
2
+ return {
3
+ ...(config.readonly !== undefined ? { readonly: config.readonly } : {}),
4
+ ...(config.fileMustExist !== undefined ? { fileMustExist: config.fileMustExist } : {}),
5
+ ...(config.timeoutMs !== undefined ? { timeout: config.timeoutMs } : {}),
6
+ };
7
+ }
1
8
  export async function createSqliteAdapter(config) {
2
9
  let sqliteModule;
3
10
  try {
@@ -7,11 +14,7 @@ export async function createSqliteAdapter(config) {
7
14
  throw new Error("The 'better-sqlite3' package is required for dialect 'sqlite'. Install it with `pnpm add better-sqlite3`.", { cause: error });
8
15
  }
9
16
  const Database = sqliteModule.default;
10
- const db = new Database(config.filename, {
11
- readonly: config.readonly,
12
- fileMustExist: config.fileMustExist,
13
- timeout: config.timeoutMs,
14
- });
17
+ const db = new Database(config.filename, buildSqliteOpenOptions(config));
15
18
  db.pragma("journal_mode = WAL");
16
19
  return {
17
20
  dialect: "sqlite",
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/drivers/sqlite.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA4B;IACpE,IAAI,YAAkD,CAAC;IAEvD,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,2GAA2G,EAC3G,EAAE,KAAK,EAAE,KAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,MAAM,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,KAAK,CAAC,KAAK,CAA8B,SAA+B;YACtE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAI,SAAS,CAAC,MAAoB,CAAQ,CAAC;YACrE,OAAO;gBACL,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,SAA+B;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAI,SAAS,CAAC,MAAoB,CAAC,CAAC;YAChE,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;aAC9B,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { DatabaseAdapter, DatabaseQueryResult } from \"../types.js\";\nimport type { CompiledSqlStatement } from \"../types.js\";\nimport type { SqliteDatabaseConfig } from \"../schema.js\";\n\ntype BetterSqliteStatement = {\n all(...params: unknown[]): Record<string, unknown>[];\n run(...params: unknown[]): { changes: number };\n};\n\ntype BetterSqliteDatabase = {\n pragma(value: string): void;\n prepare(sqlText: string): BetterSqliteStatement;\n close(): void;\n};\n\ntype BetterSqliteConstructor = new (\n filename: string,\n options?: {\n readonly?: boolean;\n fileMustExist?: boolean;\n timeout?: number;\n }\n) => BetterSqliteDatabase;\n\nexport async function createSqliteAdapter(config: SqliteDatabaseConfig): Promise<DatabaseAdapter> {\n let sqliteModule: { default: BetterSqliteConstructor };\n\n try {\n sqliteModule = await import(\"better-sqlite3\");\n } catch (error) {\n throw new Error(\n \"The 'better-sqlite3' package is required for dialect 'sqlite'. Install it with `pnpm add better-sqlite3`.\",\n { cause: error as Error }\n );\n }\n\n const Database = sqliteModule.default;\n const db = new Database(config.filename, {\n readonly: config.readonly,\n fileMustExist: config.fileMustExist,\n timeout: config.timeoutMs,\n });\n\n db.pragma(\"journal_mode = WAL\");\n\n return {\n dialect: \"sqlite\",\n async query<T = Record<string, unknown>>(statement: CompiledSqlStatement): Promise<DatabaseQueryResult<T>> {\n const prepared = db.prepare(statement.text);\n const rows = prepared.all(...(statement.values as unknown[])) as T[];\n return {\n rows,\n rowCount: rows.length,\n };\n },\n async execute(statement: CompiledSqlStatement) {\n const prepared = db.prepare(statement.text);\n const result = prepared.run(...(statement.values as unknown[]));\n return {\n rowCount: result.changes ?? 0,\n };\n },\n async close() {\n db.close();\n },\n };\n}\n"]}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/drivers/sqlite.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,sBAAsB,CAAC,MAA4B;IAKjE,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA4B;IACpE,IAAI,YAAkD,CAAC;IAEvD,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,2GAA2G,EAC3G,EAAE,KAAK,EAAE,KAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,KAAK,CAAC,KAAK,CAA8B,SAA+B;YACtE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAI,SAAS,CAAC,MAAoB,CAAQ,CAAC;YACrE,OAAO;gBACL,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,SAA+B;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAI,SAAS,CAAC,MAAoB,CAAC,CAAC;YAChE,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;aAC9B,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { DatabaseAdapter, DatabaseQueryResult } from \"../types.js\";\nimport type { CompiledSqlStatement } from \"../types.js\";\nimport type { SqliteDatabaseConfig } from \"../schema.js\";\n\ntype BetterSqliteStatement = {\n all(...params: unknown[]): Record<string, unknown>[];\n run(...params: unknown[]): { changes: number };\n};\n\ntype BetterSqliteDatabase = {\n pragma(value: string): void;\n prepare(sqlText: string): BetterSqliteStatement;\n close(): void;\n};\n\ntype BetterSqliteConstructor = new (\n filename: string,\n options?: {\n readonly?: boolean;\n fileMustExist?: boolean;\n timeout?: number;\n }\n) => BetterSqliteDatabase;\n\nexport function buildSqliteOpenOptions(config: SqliteDatabaseConfig): {\n readonly?: boolean;\n fileMustExist?: boolean;\n timeout?: number;\n} {\n return {\n ...(config.readonly !== undefined ? { readonly: config.readonly } : {}),\n ...(config.fileMustExist !== undefined ? { fileMustExist: config.fileMustExist } : {}),\n ...(config.timeoutMs !== undefined ? { timeout: config.timeoutMs } : {}),\n };\n}\n\nexport async function createSqliteAdapter(config: SqliteDatabaseConfig): Promise<DatabaseAdapter> {\n let sqliteModule: { default: BetterSqliteConstructor };\n\n try {\n sqliteModule = await import(\"better-sqlite3\");\n } catch (error) {\n throw new Error(\n \"The 'better-sqlite3' package is required for dialect 'sqlite'. Install it with `pnpm add better-sqlite3`.\",\n { cause: error as Error }\n );\n }\n\n const Database = sqliteModule.default;\n const db = new Database(config.filename, buildSqliteOpenOptions(config));\n\n db.pragma(\"journal_mode = WAL\");\n\n return {\n dialect: \"sqlite\",\n async query<T = Record<string, unknown>>(statement: CompiledSqlStatement): Promise<DatabaseQueryResult<T>> {\n const prepared = db.prepare(statement.text);\n const rows = prepared.all(...(statement.values as unknown[])) as T[];\n return {\n rows,\n rowCount: rows.length,\n };\n },\n async execute(statement: CompiledSqlStatement) {\n const prepared = db.prepare(statement.text);\n const result = prepared.run(...(statement.values as unknown[]));\n return {\n rowCount: result.changes ?? 0,\n };\n },\n async close() {\n db.close();\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uns-kit/database",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Database helpers for UNS services with config-driven connections, SQL file loading, and portable named-parameter compilation.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,7 +32,7 @@
32
32
  "types": "dist/index.d.ts",
33
33
  "dependencies": {
34
34
  "zod": "^3",
35
- "@uns-kit/core": "3.0.0"
35
+ "@uns-kit/core": "3.0.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "better-sqlite3": "^11.0.0",