node-cqrs 1.2.0-alpha.0 → 1.2.0-alpha.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/sqlite-workers/AsyncSqliteStatement.js.map +1 -1
  3. package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js +1 -6
  4. package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
  5. package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js +12 -29
  6. package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
  7. package/dist/cjs/sqlite-workers/protocol.js +7 -7
  8. package/dist/cjs/sqlite-workers/protocol.js.map +1 -1
  9. package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js +3 -7
  10. package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js.map +1 -1
  11. package/dist/cjs/sqlite-workers/utils/createWorkerDb.js +79 -0
  12. package/dist/cjs/sqlite-workers/utils/createWorkerDb.js.map +1 -0
  13. package/dist/cjs/sqlite-workers/utils/index.js +2 -0
  14. package/dist/cjs/sqlite-workers/utils/index.js.map +1 -1
  15. package/dist/cjs/sqlite-workers/utils/resolveCurrentFileLocationFromStack.js +12 -0
  16. package/dist/cjs/sqlite-workers/utils/resolveCurrentFileLocationFromStack.js.map +1 -0
  17. package/dist/esm/sqlite-workers/AsyncSqliteStatement.js.map +1 -1
  18. package/dist/esm/sqlite-workers/SqliteWorkerProxy.js +1 -6
  19. package/dist/esm/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
  20. package/dist/esm/sqlite-workers/SqliteWorkerRunner.js +12 -25
  21. package/dist/esm/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
  22. package/dist/esm/sqlite-workers/protocol.js +7 -7
  23. package/dist/esm/sqlite-workers/protocol.js.map +1 -1
  24. package/dist/esm/sqlite-workers/utils/createSqliteWorker.js +3 -7
  25. package/dist/esm/sqlite-workers/utils/createSqliteWorker.js.map +1 -1
  26. package/dist/esm/sqlite-workers/utils/createWorkerDb.js +40 -0
  27. package/dist/esm/sqlite-workers/utils/createWorkerDb.js.map +1 -0
  28. package/dist/esm/sqlite-workers/utils/index.js +2 -0
  29. package/dist/esm/sqlite-workers/utils/index.js.map +1 -1
  30. package/dist/esm/sqlite-workers/utils/resolveCurrentFileLocationFromStack.js +9 -0
  31. package/dist/esm/sqlite-workers/utils/resolveCurrentFileLocationFromStack.js.map +1 -0
  32. package/dist/types/sqlite-workers/AsyncSqliteStatement.d.ts +6 -4
  33. package/dist/types/sqlite-workers/SqliteWorkerProxy.d.ts +1 -1
  34. package/dist/types/sqlite-workers/SqliteWorkerRunner.d.ts +3 -1
  35. package/dist/types/sqlite-workers/protocol.d.ts +12 -7
  36. package/dist/types/sqlite-workers/utils/createSqliteWorker.d.ts +1 -5
  37. package/dist/types/sqlite-workers/utils/createWorkerDb.d.ts +3 -0
  38. package/dist/types/sqlite-workers/utils/index.d.ts +2 -0
  39. package/dist/types/sqlite-workers/utils/resolveCurrentFileLocationFromStack.d.ts +1 -0
  40. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # [1.2.0-alpha.1](https://github.com/snatalenko/node-cqrs/compare/v1.2.0-alpha.0...v1.2.0-alpha.1) (2026-04-28)
2
+
3
+
4
+ ### Features
5
+
6
+ * Allow SQLite worker connections to be created with a custom factory ([fb39cf1](https://github.com/snatalenko/node-cqrs/commit/fb39cf1e3be51c279de6571262c360bf057dea28))
7
+
8
+
1
9
  # [1.2.0-alpha.0](https://github.com/snatalenko/node-cqrs/compare/v1.1.0-beta.2...v1.2.0-alpha.0) (2026-04-27)
2
10
 
3
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSqliteStatement.js","sourceRoot":"","sources":["../../../src/sqlite-workers/AsyncSqliteStatement.ts"],"names":[],"mappings":";;;AAQA,MAAa,oBAAoB;IAEvB,UAAU,CAAmC;IAC7C,OAAO,CAA8B;IAE9C,YACC,SAA2C,EAC3C,MAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,MAAgC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAoB,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,MAAgC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAA8B,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD;AAxBD,oDAwBC"}
1
+ {"version":3,"file":"AsyncSqliteStatement.js","sourceRoot":"","sources":["../../../src/sqlite-workers/AsyncSqliteStatement.ts"],"names":[],"mappings":";;;AAWA,MAAa,oBAAoB;IAKvB,UAAU,CAAmC;IAC7C,OAAO,CAA8B;IAE9C,YACC,SAA2C,EAC3C,MAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAgB,MAAmD;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAoB,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,GAAG,CAAgB,MAAmD;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAA8B,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAmD;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD;AA3BD,oDA2BC"}
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SqliteWorkerProxy = void 0;
37
37
  const Comlink = __importStar(require("comlink"));
38
38
  const index_ts_1 = require("./utils/index.js");
39
- const SqliteWorkerRunner_ts_1 = require("./SqliteWorkerRunner.js");
40
39
  const AsyncSqliteStatement_ts_1 = require("./AsyncSqliteStatement.js");
41
40
  class SqliteWorkerProxy {
42
41
  #config;
@@ -76,11 +75,7 @@ class SqliteWorkerProxy {
76
75
  async assertWorker() {
77
76
  if (this.#worker)
78
77
  return this.#worker;
79
- const { sqliteWorkerRunnerLocation = SqliteWorkerRunner_ts_1.SqliteWorkerRunner.location, ...dbParams } = this.#config;
80
- this.#workerPromise ??= (0, index_ts_1.createSqliteWorker)({
81
- ...dbParams,
82
- sqliteWorkerRunnerLocation
83
- })
78
+ this.#workerPromise ??= (0, index_ts_1.createSqliteWorker)(this.#config)
84
79
  .then(worker => {
85
80
  this.#worker = worker;
86
81
  worker.once('error', this.handleWorkerError);
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"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"}
@@ -32,20 +32,13 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.SqliteWorkerRunner = void 0;
40
- exports.resolveCurrentFileLocationFromStack = resolveCurrentFileLocationFromStack;
41
37
  const node_worker_threads_1 = require("node:worker_threads");
42
38
  const path = __importStar(require("node:path"));
43
- const node_url_1 = require("node:url");
44
39
  const Comlink = __importStar(require("comlink"));
45
- const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
46
40
  const protocol_ts_1 = require("./protocol.js");
47
41
  const index_ts_1 = require("./utils/index.js");
48
- const index_ts_2 = require("../utils/index.js");
49
42
  function all(statement, params) {
50
43
  return params === undefined ? statement.all() : statement.all(params);
51
44
  }
@@ -55,34 +48,21 @@ function get(statement, params) {
55
48
  function run(statement, params) {
56
49
  return params === undefined ? statement.run() : statement.run(params);
57
50
  }
58
- /** @internal */
59
- function resolveCurrentFileLocationFromStack(stack = new Error().stack) {
60
- const stackFilename = stack?.match(/\((file:\/\/[^)]+SqliteWorkerRunner\.js):\d+:\d+\)/)?.[1];
61
- if (!stackFilename)
62
- throw new Error('Worker location could not be resolved from Error stack, pass sqliteWorkerRunnerLocation');
63
- return (0, node_url_1.fileURLToPath)(stackFilename);
64
- }
65
51
  class SqliteWorkerRunner {
66
52
  static get location() {
67
53
  if (typeof __filename !== 'undefined' && path.isAbsolute(__filename))
68
54
  return __filename;
69
55
  /* istanbul ignore next -- exercised by ESM consumers, not ts-jest's CJS transform */
70
- return resolveCurrentFileLocationFromStack();
56
+ return (0, index_ts_1.resolveCurrentFileLocationFromStack)();
71
57
  }
72
58
  #db;
73
59
  #nextStatementHandle = 1;
74
60
  #statements = new Map();
75
- constructor(dbParams) {
76
- (0, index_ts_2.assertString)(dbParams.location, 'dbParams.location');
77
- this.#db = new better_sqlite3_1.default(dbParams.location, {
78
- readonly: true,
79
- fileMustExist: true
80
- });
81
- if (dbParams.pragmas?.length) {
82
- (0, index_ts_2.assertStringArray)(dbParams.pragmas, 'dbParams.pragmas');
83
- for (const pragma of dbParams.pragmas)
84
- this.#db.pragma(pragma);
85
- }
61
+ static async create(dbParams) {
62
+ return new SqliteWorkerRunner(await (0, index_ts_1.createWorkerDb)(dbParams));
63
+ }
64
+ constructor(db) {
65
+ this.#db = db;
86
66
  }
87
67
  all(sql, params) {
88
68
  const statement = this.#db.prepare(sql);
@@ -123,10 +103,13 @@ class SqliteWorkerRunner {
123
103
  exports.SqliteWorkerRunner = SqliteWorkerRunner;
124
104
  /* istanbul ignore next -- this branch runs inside the spawned worker process */
125
105
  if (node_worker_threads_1.parentPort) {
106
+ const port = node_worker_threads_1.parentPort;
126
107
  if (!(0, protocol_ts_1.isSqliteWorkerData)(node_worker_threads_1.workerData))
127
108
  throw new Error('workerData does not contain SQLite worker db parameters');
128
- const runner = new SqliteWorkerRunner(node_worker_threads_1.workerData.db);
129
- node_worker_threads_1.parentPort.postMessage({ type: 'ready' });
130
- Comlink.expose(runner, (0, index_ts_1.nodeEndpoint)(node_worker_threads_1.parentPort));
109
+ void SqliteWorkerRunner.create(node_worker_threads_1.workerData.dbConfig)
110
+ .then(runner => {
111
+ port.postMessage({ type: 'ready' });
112
+ Comlink.expose(runner, (0, index_ts_1.nodeEndpoint)(port));
113
+ });
131
114
  }
132
115
  //# sourceMappingURL=SqliteWorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isSqliteWorkerData = isSqliteWorkerData;
4
4
  exports.isSqliteWorkerReadyMessage = isSqliteWorkerReadyMessage;
5
+ const isObject = (obj) => typeof obj === 'object'
6
+ && obj !== null
7
+ && !Array.isArray(obj)
8
+ && !(obj instanceof Date);
5
9
  function isSqliteWorkerData(value) {
6
- return typeof value === 'object' &&
7
- value !== null &&
8
- 'db' in value &&
9
- typeof value.db === 'object' &&
10
- value.db !== null &&
11
- 'location' in value.db &&
12
- typeof value.db.location === 'string';
10
+ return isObject(value)
11
+ && 'dbConfig' in value
12
+ && isObject(value.dbConfig);
13
13
  }
14
14
  function isSqliteWorkerReadyMessage(value) {
15
15
  return typeof value === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":";;AAkDA,gDAQC;AAED,gEAKC;AAfD,SAAgB,kBAAkB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,IAAI,IAAI,KAAK;QACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,UAAU,IAAI,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":";;AAiEA,gDAIC;AAED,gEAKC;AAjBD,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAa,EAAE,CAC5C,OAAO,GAAG,KAAK,QAAQ;OACpB,GAAG,KAAK,IAAI;OACZ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;OACnB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAE3B,SAAgB,kBAAkB,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;WAClB,UAAU,IAAI,KAAK;WACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AACzB,CAAC"}
@@ -3,13 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSqliteWorker = createSqliteWorker;
4
4
  const node_worker_threads_1 = require("node:worker_threads");
5
5
  const protocol_ts_1 = require("../protocol.js");
6
- const assert_ts_1 = require("../../utils/assert.js");
7
- async function createSqliteWorker({ sqliteWorkerRunnerLocation, dbLocation: location, pragmas }) {
8
- (0, assert_ts_1.assertString)(location, 'location');
9
- if (pragmas?.length)
10
- (0, assert_ts_1.assertStringArray)(pragmas, 'pragmas');
11
- (0, assert_ts_1.assertString)(sqliteWorkerRunnerLocation, 'sqliteWorkerRunnerLocation');
12
- const workerData = { db: { location, pragmas } };
6
+ const SqliteWorkerRunner_ts_1 = require("../SqliteWorkerRunner.js");
7
+ async function createSqliteWorker(params) {
8
+ const { sqliteWorkerRunnerLocation = SqliteWorkerRunner_ts_1.SqliteWorkerRunner.location, ...workerData } = params;
13
9
  const worker = new node_worker_threads_1.Worker(sqliteWorkerRunnerLocation, { workerData });
14
10
  await new Promise((resolve, reject) => {
15
11
  let onError;
@@ -1 +1 @@
1
- {"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":";;AAYA,gDAgDC;AA5DD,6DAA6C;AAC7C,gDAIwB;AACxB,qDAAwE;AAMjE,KAAK,UAAU,kBAAkB,CAAC,EACxC,0BAA0B,EAC1B,UAAU,EAAE,QAAQ,EACpB,OAAO,EACmB;IAC1B,IAAA,wBAAY,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,MAAM;QAClB,IAAA,6BAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvC,IAAA,wBAAY,EAAC,0BAA0B,EAAE,4BAA4B,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAqB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,IAAA,wCAA0B,EAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":";;AAIA,gDA2CC;AA/CD,6DAA6C;AAC7C,gDAA0F;AAC1F,oEAA8D;AAEvD,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,0CAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,IAAA,wCAA0B,EAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
39
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
40
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
41
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
42
+ });
43
+ }
44
+ return path;
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.createWorkerDb = createWorkerDb;
48
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
49
+ const index_ts_1 = require("../../utils/index.js");
50
+ function resolveImportLocation(location) {
51
+ if (location instanceof URL)
52
+ /* istanbul ignore next -- file URL imports are exercised by Node workers outside ts-jest */
53
+ return location.href;
54
+ return location;
55
+ }
56
+ async function createWorkerDb(params) {
57
+ if ('dbFactoryLocation' in params && !!params.dbFactoryLocation) {
58
+ const factoryModule = await Promise.resolve(`${__rewriteRelativeImportExtension(resolveImportLocation(params.dbFactoryLocation))}`).then(s => __importStar(require(s)));
59
+ const createSqliteWorkerDb = factoryModule.createSqliteWorkerDb ??
60
+ factoryModule.default?.createSqliteWorkerDb ??
61
+ factoryModule.default;
62
+ (0, index_ts_1.assertFunction)(createSqliteWorkerDb, 'createSqliteWorkerDb');
63
+ return createSqliteWorkerDb(params.dbFactoryParams);
64
+ }
65
+ else if ('dbLocation' in params && !!params.dbLocation) {
66
+ (0, index_ts_1.assertString)(params.dbLocation, 'dbLocation');
67
+ const db = (0, better_sqlite3_1.default)(params.dbLocation, { readonly: true, fileMustExist: true });
68
+ if (params.pragmas?.length) {
69
+ (0, index_ts_1.assertStringArray)(params.pragmas, 'pragmas');
70
+ for (const pragma of params.pragmas)
71
+ db.pragma(pragma);
72
+ }
73
+ return db;
74
+ }
75
+ else {
76
+ throw new Error('Either dbLocation or dbFactoryLocation is required');
77
+ }
78
+ }
79
+ //# sourceMappingURL=createWorkerDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWorkerDb.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createWorkerDb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,wCA6BC;AAzCD,oEAAyD;AACzD,mDAAuF;AAGvF,SAAS,qBAAqB,CAAC,QAAsB;IACpD,IAAI,QAAQ,YAAY,GAAG;QAC1B,4FAA4F;QAC5F,OAAO,QAAQ,CAAC,IAAI,CAAC;IAEtB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,MAAkC;IACtE,IAAI,mBAAmB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACjE,MAAM,aAAa,GAAG,0DAAa,qBAAqB,CAAC,MAAM,CAAC,iBAAiB,CAAC,wCAAC,CAAC;QACpF,MAAM,oBAAoB,GACzB,aAAa,CAAC,oBAAoB;YAClC,aAAa,CAAC,OAAO,EAAE,oBAAoB;YAC3C,aAAa,CAAC,OAAO,CAAC;QAEvB,IAAA,yBAAc,EAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;QAE7D,OAAO,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;SACI,IAAI,YAAY,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxD,IAAA,uBAAY,EAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE9C,MAAM,EAAE,GAAG,IAAA,wBAAQ,EAAC,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhF,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAA,4BAAiB,EAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAE7C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;gBAClC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;SACI,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;AACF,CAAC"}
@@ -15,5 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./createSqliteWorker.js"), exports);
18
+ __exportStar(require("./createWorkerDb.js"), exports);
18
19
  __exportStar(require("./nodeEndpoint.js"), exports);
20
+ __exportStar(require("./resolveCurrentFileLocationFromStack.js"), exports);
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,2EAAyD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveCurrentFileLocationFromStack = resolveCurrentFileLocationFromStack;
4
+ const node_url_1 = require("node:url");
5
+ /** @internal */
6
+ function resolveCurrentFileLocationFromStack(stack = new Error().stack) {
7
+ const stackFilename = stack?.match(/\((file:\/\/[^)]+SqliteWorkerRunner\.js):\d+:\d+\)/)?.[1];
8
+ if (!stackFilename)
9
+ throw new Error('Worker location could not be resolved from Error stack, pass sqliteWorkerRunnerLocation');
10
+ return (0, node_url_1.fileURLToPath)(stackFilename);
11
+ }
12
+ //# sourceMappingURL=resolveCurrentFileLocationFromStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCurrentFileLocationFromStack.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/resolveCurrentFileLocationFromStack.ts"],"names":[],"mappings":";;AAGA,kFAMC;AATD,uCAAyC;AAEzC,gBAAgB;AAChB,SAAgB,mCAAmC,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK;IAC5E,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,CAAC,aAAa;QACjB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAE5G,OAAO,IAAA,wBAAa,EAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSqliteStatement.js","sourceRoot":"","sources":["../../../src/sqlite-workers/AsyncSqliteStatement.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,oBAAoB;IAEvB,UAAU,CAAmC;IAC7C,OAAO,CAA8B;IAE9C,YACC,SAA2C,EAC3C,MAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,MAAgC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAoB,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,MAAgC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAA8B,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD"}
1
+ {"version":3,"file":"AsyncSqliteStatement.js","sourceRoot":"","sources":["../../../src/sqlite-workers/AsyncSqliteStatement.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAoB;IAKvB,UAAU,CAAmC;IAC7C,OAAO,CAA8B;IAE9C,YACC,SAA2C,EAC3C,MAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAgB,MAAmD;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAoB,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,GAAG,CAAgB,MAAmD;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAA8B,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAmD;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD"}
@@ -1,6 +1,5 @@
1
1
  import * as Comlink from 'comlink';
2
2
  import { createSqliteWorker, nodeEndpoint } from "./utils/index.js";
3
- import { SqliteWorkerRunner } from "./SqliteWorkerRunner.js";
4
3
  import { AsyncSqliteStatement } from "./AsyncSqliteStatement.js";
5
4
  export class SqliteWorkerProxy {
6
5
  #config;
@@ -40,11 +39,7 @@ export class SqliteWorkerProxy {
40
39
  async assertWorker() {
41
40
  if (this.#worker)
42
41
  return this.#worker;
43
- const { sqliteWorkerRunnerLocation = SqliteWorkerRunner.location, ...dbParams } = this.#config;
44
- this.#workerPromise ??= createSqliteWorker({
45
- ...dbParams,
46
- sqliteWorkerRunnerLocation
47
- })
42
+ this.#workerPromise ??= createSqliteWorker(this.#config)
48
43
  .then(worker => {
49
44
  this.#worker = worker;
50
45
  worker.once('error', this.handleWorkerError);
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteWorkerProxy.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerProxy.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  import { parentPort, workerData } from 'node:worker_threads';
2
2
  import * as path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
3
  import * as Comlink from 'comlink';
5
- import Database from 'better-sqlite3';
6
4
  import { isSqliteWorkerData } from "./protocol.js";
7
- import { nodeEndpoint } from "./utils/index.js";
8
- import { assertString, assertStringArray } from "../utils/index.js";
5
+ import { createWorkerDb, nodeEndpoint, resolveCurrentFileLocationFromStack } from "./utils/index.js";
9
6
  function all(statement, params) {
10
7
  return params === undefined ? statement.all() : statement.all(params);
11
8
  }
@@ -15,13 +12,6 @@ function get(statement, params) {
15
12
  function run(statement, params) {
16
13
  return params === undefined ? statement.run() : statement.run(params);
17
14
  }
18
- /** @internal */
19
- export function resolveCurrentFileLocationFromStack(stack = new Error().stack) {
20
- const stackFilename = stack?.match(/\((file:\/\/[^)]+SqliteWorkerRunner\.js):\d+:\d+\)/)?.[1];
21
- if (!stackFilename)
22
- throw new Error('Worker location could not be resolved from Error stack, pass sqliteWorkerRunnerLocation');
23
- return fileURLToPath(stackFilename);
24
- }
25
15
  export class SqliteWorkerRunner {
26
16
  static get location() {
27
17
  if (typeof __filename !== 'undefined' && path.isAbsolute(__filename))
@@ -32,17 +22,11 @@ export class SqliteWorkerRunner {
32
22
  #db;
33
23
  #nextStatementHandle = 1;
34
24
  #statements = new Map();
35
- constructor(dbParams) {
36
- assertString(dbParams.location, 'dbParams.location');
37
- this.#db = new Database(dbParams.location, {
38
- readonly: true,
39
- fileMustExist: true
40
- });
41
- if (dbParams.pragmas?.length) {
42
- assertStringArray(dbParams.pragmas, 'dbParams.pragmas');
43
- for (const pragma of dbParams.pragmas)
44
- this.#db.pragma(pragma);
45
- }
25
+ static async create(dbParams) {
26
+ return new SqliteWorkerRunner(await createWorkerDb(dbParams));
27
+ }
28
+ constructor(db) {
29
+ this.#db = db;
46
30
  }
47
31
  all(sql, params) {
48
32
  const statement = this.#db.prepare(sql);
@@ -82,10 +66,13 @@ export class SqliteWorkerRunner {
82
66
  }
83
67
  /* istanbul ignore next -- this branch runs inside the spawned worker process */
84
68
  if (parentPort) {
69
+ const port = parentPort;
85
70
  if (!isSqliteWorkerData(workerData))
86
71
  throw new Error('workerData does not contain SQLite worker db parameters');
87
- const runner = new SqliteWorkerRunner(workerData.db);
88
- parentPort.postMessage({ type: 'ready' });
89
- Comlink.expose(runner, nodeEndpoint(parentPort));
72
+ void SqliteWorkerRunner.create(workerData.dbConfig)
73
+ .then(runner => {
74
+ port.postMessage({ type: 'ready' });
75
+ Comlink.expose(runner, nodeEndpoint(port));
76
+ });
90
77
  }
91
78
  //# sourceMappingURL=SqliteWorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteWorkerRunner.js","sourceRoot":"","sources":["../../../src/sqlite-workers/SqliteWorkerRunner.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
+ const isObject = (obj) => typeof obj === 'object'
2
+ && obj !== null
3
+ && !Array.isArray(obj)
4
+ && !(obj instanceof Date);
1
5
  export function isSqliteWorkerData(value) {
2
- return typeof value === 'object' &&
3
- value !== null &&
4
- 'db' in value &&
5
- typeof value.db === 'object' &&
6
- value.db !== null &&
7
- 'location' in value.db &&
8
- typeof value.db.location === 'string';
6
+ return isObject(value)
7
+ && 'dbConfig' in value
8
+ && isObject(value.dbConfig);
9
9
  }
10
10
  export function isSqliteWorkerReadyMessage(value) {
11
11
  return typeof value === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":"AAkDA,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,IAAI,IAAI,KAAK;QACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,UAAU,IAAI,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sqlite-workers/protocol.ts"],"names":[],"mappings":"AA2DA,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAa,EAAE,CAC5C,OAAO,GAAG,KAAK,QAAQ;OACpB,GAAG,KAAK,IAAI;OACZ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;OACnB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAE3B,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;WAClB,UAAU,IAAI,KAAK;WACnB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AACzB,CAAC"}
@@ -1,12 +1,8 @@
1
1
  import { Worker } from 'node:worker_threads';
2
2
  import { isSqliteWorkerReadyMessage } from "../protocol.js";
3
- import { assertString, assertStringArray } from "../../utils/assert.js";
4
- export async function createSqliteWorker({ sqliteWorkerRunnerLocation, dbLocation: location, pragmas }) {
5
- assertString(location, 'location');
6
- if (pragmas?.length)
7
- assertStringArray(pragmas, 'pragmas');
8
- assertString(sqliteWorkerRunnerLocation, 'sqliteWorkerRunnerLocation');
9
- const workerData = { db: { location, pragmas } };
3
+ import { SqliteWorkerRunner } from "../SqliteWorkerRunner.js";
4
+ export async function createSqliteWorker(params) {
5
+ const { sqliteWorkerRunnerLocation = SqliteWorkerRunner.location, ...workerData } = params;
10
6
  const worker = new Worker(sqliteWorkerRunnerLocation, { workerData });
11
7
  await new Promise((resolve, reject) => {
12
8
  let onError;
@@ -1 +1 @@
1
- {"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACN,0BAA0B,EAG1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAMxE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACxC,0BAA0B,EAC1B,UAAU,EAAE,QAAQ,EACpB,OAAO,EACmB;IAC1B,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,MAAM;QAClB,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvC,YAAY,CAAC,0BAA0B,EAAE,4BAA4B,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAqB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAgC,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,40 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import createDb from 'better-sqlite3';
10
+ import { assertFunction, assertString, assertStringArray } from "../../utils/index.js";
11
+ function resolveImportLocation(location) {
12
+ if (location instanceof URL)
13
+ /* istanbul ignore next -- file URL imports are exercised by Node workers outside ts-jest */
14
+ return location.href;
15
+ return location;
16
+ }
17
+ export async function createWorkerDb(params) {
18
+ if ('dbFactoryLocation' in params && !!params.dbFactoryLocation) {
19
+ const factoryModule = await import(__rewriteRelativeImportExtension(resolveImportLocation(params.dbFactoryLocation)));
20
+ const createSqliteWorkerDb = factoryModule.createSqliteWorkerDb ??
21
+ factoryModule.default?.createSqliteWorkerDb ??
22
+ factoryModule.default;
23
+ assertFunction(createSqliteWorkerDb, 'createSqliteWorkerDb');
24
+ return createSqliteWorkerDb(params.dbFactoryParams);
25
+ }
26
+ else if ('dbLocation' in params && !!params.dbLocation) {
27
+ assertString(params.dbLocation, 'dbLocation');
28
+ const db = createDb(params.dbLocation, { readonly: true, fileMustExist: true });
29
+ if (params.pragmas?.length) {
30
+ assertStringArray(params.pragmas, 'pragmas');
31
+ for (const pragma of params.pragmas)
32
+ db.pragma(pragma);
33
+ }
34
+ return db;
35
+ }
36
+ else {
37
+ throw new Error('Either dbLocation or dbFactoryLocation is required');
38
+ }
39
+ }
40
+ //# sourceMappingURL=createWorkerDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWorkerDb.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createWorkerDb.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,QAA2B,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvF,SAAS,qBAAqB,CAAC,QAAsB;IACpD,IAAI,QAAQ,YAAY,GAAG;QAC1B,4FAA4F;QAC5F,OAAO,QAAQ,CAAC,IAAI,CAAC;IAEtB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkC;IACtE,IAAI,mBAAmB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACjE,MAAM,aAAa,GAAG,MAAM,MAAM,kCAAC,qBAAqB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAC,CAAC;QACpF,MAAM,oBAAoB,GACzB,aAAa,CAAC,oBAAoB;YAClC,aAAa,CAAC,OAAO,EAAE,oBAAoB;YAC3C,aAAa,CAAC,OAAO,CAAC;QAEvB,cAAc,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;QAE7D,OAAO,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;SACI,IAAI,YAAY,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxD,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE9C,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhF,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAE7C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;gBAClC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;SACI,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;AACF,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export * from "./createSqliteWorker.js";
2
+ export * from "./createWorkerDb.js";
2
3
  export * from "./nodeEndpoint.js";
4
+ export * from "./resolveCurrentFileLocationFromStack.js";
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ /** @internal */
3
+ export function resolveCurrentFileLocationFromStack(stack = new Error().stack) {
4
+ const stackFilename = stack?.match(/\((file:\/\/[^)]+SqliteWorkerRunner\.js):\d+:\d+\)/)?.[1];
5
+ if (!stackFilename)
6
+ throw new Error('Worker location could not be resolved from Error stack, pass sqliteWorkerRunnerLocation');
7
+ return fileURLToPath(stackFilename);
8
+ }
9
+ //# sourceMappingURL=resolveCurrentFileLocationFromStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCurrentFileLocationFromStack.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/resolveCurrentFileLocationFromStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,gBAAgB;AAChB,MAAM,UAAU,mCAAmC,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK;IAC5E,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,CAAC,aAAa;QACjB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAE5G,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import * as Comlink from 'comlink';
2
2
  import type { SqliteRunResult, ISqliteWorkerApi, SqliteWorkerQueryParams, SqliteWorkerStatementHandle } from './protocol.ts';
3
- export declare class AsyncSqliteStatement {
3
+ type AsyncSqliteStatementParams<BindParameters extends unknown[]> = SqliteWorkerQueryParams & (BindParameters | Record<string, unknown>);
4
+ export declare class AsyncSqliteStatement<BindParameters extends unknown[] = unknown[], Result = unknown> {
4
5
  #private;
5
6
  constructor(workerApi: Comlink.Remote<ISqliteWorkerApi>, handle: SqliteWorkerStatementHandle);
6
- all<TRow>(params?: SqliteWorkerQueryParams): Promise<TRow[]>;
7
- get<TRow>(params?: SqliteWorkerQueryParams): Promise<TRow | undefined>;
8
- run(params?: SqliteWorkerQueryParams): Promise<SqliteRunResult>;
7
+ all<TRow = Result>(params?: AsyncSqliteStatementParams<BindParameters>): Promise<TRow[]>;
8
+ get<TRow = Result>(params?: AsyncSqliteStatementParams<BindParameters>): Promise<TRow | undefined>;
9
+ run(params?: AsyncSqliteStatementParams<BindParameters>): Promise<SqliteRunResult>;
9
10
  }
11
+ export {};
@@ -6,7 +6,7 @@ export declare class SqliteWorkerProxy {
6
6
  all<TRow>(sql: string, params?: SqliteWorkerQueryParams): Promise<TRow[]>;
7
7
  get<TRow>(sql: string, params?: SqliteWorkerQueryParams): Promise<TRow | undefined>;
8
8
  run(sql: string, params?: SqliteWorkerQueryParams): Promise<SqliteRunResult>;
9
- prepare(sql: string): Promise<AsyncSqliteStatement>;
9
+ prepare<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(sql: string): Promise<BindParameters extends unknown[] ? AsyncSqliteStatement<BindParameters, Result> : AsyncSqliteStatement<[BindParameters], Result>>;
10
10
  dispose(): Promise<void>;
11
11
  handleWorkerError: (_err: Error) => void;
12
12
  handleWorkerExit: (_exitCode: number) => void;
@@ -1,8 +1,10 @@
1
+ import type { Database } from 'better-sqlite3';
1
2
  import { type SqliteRunResult, type ISqliteWorkerApi, type SqliteWorkerRunnerDbParams, type SqliteWorkerQueryParams, type SqliteWorkerStatementHandle } from './protocol.ts';
2
3
  export declare class SqliteWorkerRunner implements ISqliteWorkerApi {
3
4
  #private;
4
5
  static get location(): string;
5
- constructor(dbParams: SqliteWorkerRunnerDbParams);
6
+ static create(dbParams: SqliteWorkerRunnerDbParams): Promise<SqliteWorkerRunner>;
7
+ constructor(db: Database);
6
8
  all<TRow>(sql: string, params?: SqliteWorkerQueryParams): TRow[];
7
9
  get<TRow>(sql: string, params?: SqliteWorkerQueryParams): TRow | undefined;
8
10
  run(sql: string, params?: SqliteWorkerQueryParams): SqliteRunResult;
@@ -1,18 +1,23 @@
1
- import type { Statement } from 'better-sqlite3';
1
+ import type { Database, Statement } from 'better-sqlite3';
2
2
  export type SqliteWorkerProxyParams = {
3
- /** SQLite database file opened readonly by the worker. */
4
- dbLocation: string;
5
- /** PRAGMA statements applied to the worker connection. */
6
- pragmas?: readonly string[];
7
3
  /** Worker runner script location; defaults to the bundled runner. */
8
4
  sqliteWorkerRunnerLocation?: string | URL;
5
+ dbConfig: SqliteWorkerRunnerDbParams;
9
6
  };
10
7
  export type SqliteWorkerRunnerDbParams = {
11
- location: string;
8
+ /** SQLite database file opened readonly by the worker. */
9
+ dbLocation: string;
10
+ /** PRAGMA statements applied to the worker connection. */
12
11
  pragmas?: readonly string[];
12
+ } | {
13
+ /** Module exporting createSqliteWorkerDb for custom worker-side DB creation. */
14
+ dbFactoryLocation: string | URL;
15
+ /** Structured-cloneable params passed to the custom worker DB factory. */
16
+ dbFactoryParams: unknown;
13
17
  };
18
+ export type SqliteWorkerDbFactory = (params: unknown) => Database | Promise<Database>;
14
19
  export type SqliteWorkerData = {
15
- db: SqliteWorkerRunnerDbParams;
20
+ dbConfig: SqliteWorkerRunnerDbParams;
16
21
  };
17
22
  export type SqliteWorkerQueryParams = readonly unknown[] | Record<string, unknown>;
18
23
  export type SqliteWorkerStatementHandle = number;
@@ -1,7 +1,3 @@
1
1
  import { Worker } from 'node:worker_threads';
2
2
  import { type SqliteWorkerProxyParams } from '../protocol.ts';
3
- type CreateSqliteWorkerParams = SqliteWorkerProxyParams & {
4
- sqliteWorkerRunnerLocation: string | URL;
5
- };
6
- export declare function createSqliteWorker({ sqliteWorkerRunnerLocation, dbLocation: location, pragmas }: CreateSqliteWorkerParams): Promise<Worker>;
7
- export {};
3
+ export declare function createSqliteWorker(params: SqliteWorkerProxyParams): Promise<Worker>;
@@ -0,0 +1,3 @@
1
+ import { type Database } from 'better-sqlite3';
2
+ import type { SqliteWorkerRunnerDbParams } from '../protocol.ts';
3
+ export declare function createWorkerDb(params: SqliteWorkerRunnerDbParams): Promise<Database>;
@@ -1,2 +1,4 @@
1
1
  export * from './createSqliteWorker.ts';
2
+ export * from './createWorkerDb.ts';
2
3
  export * from './nodeEndpoint.ts';
4
+ export * from './resolveCurrentFileLocationFromStack.ts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-cqrs",
3
- "version": "1.2.0-alpha.0",
3
+ "version": "1.2.0-alpha.1",
4
4
  "description": "TypeScript CQRS/Event Sourcing toolkit for Node.js with DI, sagas, projections, and optional Worker, RabbitMQ, and SQLite adapters",
5
5
  "type": "module",
6
6
  "keywords": [