@semics-tech/mongolite 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +78 -2
- package/dist/adapters/node-sqlite.d.ts +65 -0
- package/dist/adapters/node-sqlite.js +241 -0
- package/dist/adapters/node-sqlite.js.map +1 -0
- package/dist/better-sqlite3.d.ts +49 -0
- package/dist/better-sqlite3.js +60 -0
- package/dist/better-sqlite3.js.map +1 -0
- package/dist/bin/mongolite-debug.js +0 -0
- package/dist/cjs/adapters/browser.js +106 -0
- package/dist/cjs/adapters/cloudflare.js +97 -0
- package/dist/cjs/adapters/node-sqlite.js +248 -0
- package/dist/cjs/better-sqlite3.js +80 -0
- package/dist/cjs/bin/mongolite-debug.js +152 -0
- package/dist/cjs/changeStream.js +341 -0
- package/dist/cjs/cloudflare.js +59 -0
- package/dist/cjs/collection.js +1748 -0
- package/dist/cjs/cursors/findCursor.js +837 -0
- package/dist/cjs/db.js +307 -0
- package/dist/cjs/debugger/query-debugger.js +297 -0
- package/dist/cjs/index.js +65 -0
- package/dist/cjs/mongo-client.js +58 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utils/connection-registry.js +122 -0
- package/dist/cjs/utils/indexing.js +45 -0
- package/dist/cjs/utils/projection.js +101 -0
- package/dist/cjs/utils/queryOperators.js +142 -0
- package/dist/collection.d.ts +25 -0
- package/dist/collection.js +53 -14
- package/dist/collection.js.map +1 -1
- package/dist/cursors/findCursor.d.ts +58 -0
- package/dist/cursors/findCursor.js +88 -11
- package/dist/cursors/findCursor.js.map +1 -1
- package/dist/db.d.ts +23 -0
- package/dist/db.js +85 -39
- package/dist/db.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/connection-registry.d.ts +74 -0
- package/dist/utils/connection-registry.js +117 -0
- package/dist/utils/connection-registry.js.map +1 -0
- package/package.json +20 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCursor.js","sourceRoot":"","sources":["../../src/cursors/findCursor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"findCursor.js","sourceRoot":"","sources":["../../src/cursors/findCursor.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import type { Statement } from 'better-sqlite3';
|
|
3
|
+
import { DEFAULT_BUSY_TIMEOUT_MS } from './utils/connection-registry.js';
|
|
4
|
+
export { DEFAULT_BUSY_TIMEOUT_MS };
|
|
5
|
+
/** Exposed for tests and diagnostics. */
|
|
6
|
+
export declare function sharedConnectionCount(): number;
|
|
3
7
|
/**
|
|
4
8
|
* Common interface for database adapters.
|
|
5
9
|
* Implement this interface to support different SQLite backends (e.g. better-sqlite3, Cloudflare Durable Objects).
|
|
@@ -19,7 +23,24 @@ export interface MongoLiteOptions {
|
|
|
19
23
|
filePath: string;
|
|
20
24
|
verbose?: boolean;
|
|
21
25
|
readOnly?: boolean;
|
|
26
|
+
/** Write-Ahead Logging. Defaults to `true`. */
|
|
22
27
|
WAL?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* How long (ms) SQLite waits for a lock held by another connection before
|
|
30
|
+
* throwing `SQLITE_BUSY`. Defaults to {@link DEFAULT_BUSY_TIMEOUT_MS}; set to
|
|
31
|
+
* `0` to fail immediately.
|
|
32
|
+
*/
|
|
33
|
+
busyTimeout?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Reuse a single underlying SQLite connection across every instance in this
|
|
36
|
+
* process that resolves to the same database file and settings, instead of
|
|
37
|
+
* opening one connection per instance. Reference counted — `close()` only
|
|
38
|
+
* closes the real handle once the last holder releases it.
|
|
39
|
+
*
|
|
40
|
+
* Ignored for `:memory:` databases, which are private to their connection.
|
|
41
|
+
* Defaults to `false`.
|
|
42
|
+
*/
|
|
43
|
+
shared?: boolean;
|
|
23
44
|
}
|
|
24
45
|
/**
|
|
25
46
|
* SQLiteDB class provides a wrapper around the better-sqlite3 library
|
|
@@ -31,6 +52,8 @@ export declare class SQLiteDB implements IDatabaseAdapter {
|
|
|
31
52
|
private readonly verbose;
|
|
32
53
|
private readonly readOnly;
|
|
33
54
|
private readonly WAL;
|
|
55
|
+
private readonly busyTimeout;
|
|
56
|
+
private readonly shareKey;
|
|
34
57
|
private openPromise;
|
|
35
58
|
/**
|
|
36
59
|
* Creates an instance of SQLiteDB.
|
package/dist/db.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { ConnectionRegistry, DEFAULT_BUSY_TIMEOUT_MS, buildConnectionKey, isShareablePath, } from './utils/connection-registry.js';
|
|
4
|
+
export { DEFAULT_BUSY_TIMEOUT_MS };
|
|
5
|
+
/** Shared `better-sqlite3` handles for this process, keyed by connection identity. */
|
|
6
|
+
const sharedConnections = new ConnectionRegistry();
|
|
7
|
+
/** Exposed for tests and diagnostics. */
|
|
8
|
+
export function sharedConnectionCount() {
|
|
9
|
+
return sharedConnections.size;
|
|
10
|
+
}
|
|
2
11
|
/**
|
|
3
12
|
* SQLiteDB class provides a wrapper around the better-sqlite3 library
|
|
4
13
|
* to simplify database operations.
|
|
@@ -12,18 +21,34 @@ export class SQLiteDB {
|
|
|
12
21
|
constructor(dbPathOrOptions) {
|
|
13
22
|
this.db = null;
|
|
14
23
|
this.openPromise = null;
|
|
24
|
+
let shared;
|
|
15
25
|
if (typeof dbPathOrOptions === 'string') {
|
|
16
26
|
this.filePath = dbPathOrOptions;
|
|
17
27
|
this.verbose = false;
|
|
18
28
|
this.readOnly = false;
|
|
19
|
-
this.WAL =
|
|
29
|
+
this.WAL = true;
|
|
30
|
+
this.busyTimeout = DEFAULT_BUSY_TIMEOUT_MS;
|
|
31
|
+
shared = false;
|
|
20
32
|
}
|
|
21
33
|
else {
|
|
22
34
|
this.filePath = dbPathOrOptions.filePath;
|
|
23
35
|
this.verbose = dbPathOrOptions.verbose || false;
|
|
24
36
|
this.readOnly = dbPathOrOptions.readOnly || false;
|
|
25
|
-
this.WAL = dbPathOrOptions.WAL
|
|
37
|
+
this.WAL = dbPathOrOptions.WAL ?? true;
|
|
38
|
+
this.busyTimeout = dbPathOrOptions.busyTimeout ?? DEFAULT_BUSY_TIMEOUT_MS;
|
|
39
|
+
shared = dbPathOrOptions.shared ?? false;
|
|
26
40
|
}
|
|
41
|
+
this.shareKey =
|
|
42
|
+
shared && isShareablePath(this.filePath)
|
|
43
|
+
? buildConnectionKey({
|
|
44
|
+
backend: 'better-sqlite3',
|
|
45
|
+
filePath: path.resolve(this.filePath),
|
|
46
|
+
readOnly: this.readOnly,
|
|
47
|
+
WAL: this.WAL,
|
|
48
|
+
busyTimeout: this.busyTimeout,
|
|
49
|
+
verbose: this.verbose,
|
|
50
|
+
})
|
|
51
|
+
: null;
|
|
27
52
|
}
|
|
28
53
|
/**
|
|
29
54
|
* Opens the database connection if it's not already open.
|
|
@@ -39,44 +64,57 @@ export class SQLiteDB {
|
|
|
39
64
|
}
|
|
40
65
|
this.openPromise = new Promise((resolve, reject) => {
|
|
41
66
|
try {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// not validated for catastrophic backtracking (ReDoS) could block the event loop.
|
|
54
|
-
// Avoid using untrusted/unvalidated patterns with $regex in security-sensitive contexts.
|
|
55
|
-
this.db.function('regexp', { deterministic: true }, (pattern, value) => {
|
|
56
|
-
if (typeof pattern !== 'string' || value === null || value === undefined)
|
|
57
|
-
return 0;
|
|
58
|
-
try {
|
|
59
|
-
return new RegExp(pattern).test(String(value)) ? 1 : 0;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return 0;
|
|
67
|
+
// Only runs on a genuinely new connection — when sharing, an existing
|
|
68
|
+
// handle already has its pragmas and UDFs applied.
|
|
69
|
+
const openConnection = () => {
|
|
70
|
+
const options = {
|
|
71
|
+
readonly: this.readOnly,
|
|
72
|
+
verbose: this.verbose ? console.log : undefined,
|
|
73
|
+
};
|
|
74
|
+
const db = new Database(this.filePath, options);
|
|
75
|
+
// Enable Write-Ahead Logging if requested
|
|
76
|
+
if (this.WAL && !this.readOnly) {
|
|
77
|
+
db.pragma('journal_mode = WAL');
|
|
63
78
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return 0;
|
|
69
|
-
try {
|
|
70
|
-
const f = typeof flags === 'string' ? flags : '';
|
|
71
|
-
return new RegExp(pattern, f).test(String(value)) ? 1 : 0;
|
|
79
|
+
// Wait rather than immediately throwing SQLITE_BUSY when another
|
|
80
|
+
// connection (often another process) holds a lock.
|
|
81
|
+
if (this.busyTimeout > 0) {
|
|
82
|
+
db.pragma(`busy_timeout = ${this.busyTimeout}`);
|
|
72
83
|
}
|
|
73
|
-
|
|
74
|
-
|
|
84
|
+
// Register regexp UDF for $regex operator support.
|
|
85
|
+
// WARNING: Patterns are compiled via JavaScript RegExp. User-supplied patterns that are
|
|
86
|
+
// not validated for catastrophic backtracking (ReDoS) could block the event loop.
|
|
87
|
+
// Avoid using untrusted/unvalidated patterns with $regex in security-sensitive contexts.
|
|
88
|
+
db.function('regexp', { deterministic: true }, (pattern, value) => {
|
|
89
|
+
if (typeof pattern !== 'string' || value === null || value === undefined)
|
|
90
|
+
return 0;
|
|
91
|
+
try {
|
|
92
|
+
return new RegExp(pattern).test(String(value)) ? 1 : 0;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
// Register regexp_flags UDF for $regex with $options support
|
|
99
|
+
db.function('regexp_flags', { deterministic: true }, (pattern, flags, value) => {
|
|
100
|
+
if (typeof pattern !== 'string' || value === null || value === undefined)
|
|
101
|
+
return 0;
|
|
102
|
+
try {
|
|
103
|
+
const f = typeof flags === 'string' ? flags : '';
|
|
104
|
+
return new RegExp(pattern, f).test(String(value)) ? 1 : 0;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (this.verbose) {
|
|
111
|
+
console.log(`SQLite database opened: ${this.filePath}`);
|
|
75
112
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
113
|
+
return db;
|
|
114
|
+
};
|
|
115
|
+
this.db = this.shareKey
|
|
116
|
+
? sharedConnections.acquire(this.shareKey, openConnection)
|
|
117
|
+
: openConnection();
|
|
80
118
|
resolve();
|
|
81
119
|
}
|
|
82
120
|
catch (err) {
|
|
@@ -185,9 +223,17 @@ export class SQLiteDB {
|
|
|
185
223
|
}
|
|
186
224
|
if (this.db) {
|
|
187
225
|
try {
|
|
188
|
-
|
|
226
|
+
// When shared, only the last holder actually closes the handle.
|
|
227
|
+
const isLastHolder = this.shareKey
|
|
228
|
+
? sharedConnections.release(this.shareKey, this.db)
|
|
229
|
+
: true;
|
|
230
|
+
if (isLastHolder) {
|
|
231
|
+
this.db.close();
|
|
232
|
+
}
|
|
189
233
|
if (this.verbose) {
|
|
190
|
-
console.log(
|
|
234
|
+
console.log(isLastHolder
|
|
235
|
+
? `SQLite database closed: ${this.filePath}`
|
|
236
|
+
: `SQLite database released (still in use): ${this.filePath}`);
|
|
191
237
|
}
|
|
192
238
|
}
|
|
193
239
|
catch (err) {
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IDatabaseAdapter, MongoLiteOptions as DBMongoLiteOptions } from './db.js';
|
|
1
|
+
import type { IDatabaseAdapter, MongoLiteOptions as DBMongoLiteOptions } from './db.js';
|
|
2
2
|
import { MongoLite as MongoLiteBase, MongoLiteBaseOptions } from './mongo-client.js';
|
|
3
3
|
export { MongoLiteCollection } from './collection.js';
|
|
4
4
|
export * from './types.js';
|
|
@@ -9,13 +9,16 @@ export { CloudflareDurableObjectAdapter, } from './adapters/cloudflare.js';
|
|
|
9
9
|
export type { SqlStorage, SqlStorageCursor, SqlStorageValue, } from './adapters/cloudflare.js';
|
|
10
10
|
export { BrowserSqliteAdapter } from './adapters/browser.js';
|
|
11
11
|
export type { SqlJsDatabase, SqlJsStatement } from './adapters/browser.js';
|
|
12
|
+
export { NodeSqliteAdapter } from './adapters/node-sqlite.js';
|
|
12
13
|
export interface MongoLiteClientOptions extends DBMongoLiteOptions {
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* MongoLite class is the main entry point for interacting with the SQLite-backed database.
|
|
16
17
|
*
|
|
17
18
|
* You can construct it with:
|
|
18
|
-
* - A file path string — uses the built-in `
|
|
19
|
+
* - A file path string — uses the built-in `node:sqlite` adapter (`NodeSqliteAdapter`).
|
|
20
|
+
* Requires Node.js 22.5.0+; for older runtimes, import `MongoLite` from
|
|
21
|
+
* `@semics-tech/mongolite/better-sqlite3` instead.
|
|
19
22
|
* - A `MongoLiteClientOptions` object — uses the built-in adapter with options.
|
|
20
23
|
* - An `IDatabaseAdapter` instance — use a custom adapter such as
|
|
21
24
|
* `CloudflareDurableObjectAdapter` for Cloudflare Durable Objects.
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeSqliteAdapter } from './adapters/node-sqlite.js';
|
|
2
2
|
import { MongoLite as MongoLiteBase } from './mongo-client.js';
|
|
3
3
|
export { MongoLiteCollection } from './collection.js';
|
|
4
4
|
export * from './types.js';
|
|
5
5
|
export { ChangeStream } from './changeStream.js';
|
|
6
6
|
export { CloudflareDurableObjectAdapter, } from './adapters/cloudflare.js';
|
|
7
7
|
export { BrowserSqliteAdapter } from './adapters/browser.js';
|
|
8
|
+
export { NodeSqliteAdapter } from './adapters/node-sqlite.js';
|
|
8
9
|
/**
|
|
9
10
|
* MongoLite class is the main entry point for interacting with the SQLite-backed database.
|
|
10
11
|
*
|
|
11
12
|
* You can construct it with:
|
|
12
|
-
* - A file path string — uses the built-in `
|
|
13
|
+
* - A file path string — uses the built-in `node:sqlite` adapter (`NodeSqliteAdapter`).
|
|
14
|
+
* Requires Node.js 22.5.0+; for older runtimes, import `MongoLite` from
|
|
15
|
+
* `@semics-tech/mongolite/better-sqlite3` instead.
|
|
13
16
|
* - A `MongoLiteClientOptions` object — uses the built-in adapter with options.
|
|
14
17
|
* - An `IDatabaseAdapter` instance — use a custom adapter such as
|
|
15
18
|
* `CloudflareDurableObjectAdapter` for Cloudflare Durable Objects.
|
|
@@ -33,7 +36,7 @@ export class MongoLite extends MongoLiteBase {
|
|
|
33
36
|
super(dbPathOrOptions, options);
|
|
34
37
|
}
|
|
35
38
|
else {
|
|
36
|
-
super(new
|
|
39
|
+
super(new NodeSqliteAdapter(dbPathOrOptions), options);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,SAAS,IAAI,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,OAAO,EACL,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,SAAU,SAAQ,aAAa;IAC1C;;;;OAIG;IACH,YACE,eAAmE,EACnE,UAAgC,EAAE;QAElC,IACE,eAAe;YACf,OAAO,eAAe,KAAK,QAAQ;YACnC,OAAQ,eAAoC,CAAC,OAAO,KAAK,UAAU;YACnE,OAAQ,eAAoC,CAAC,GAAG,KAAK,UAAU;YAC/D,OAAQ,eAAoC,CAAC,GAAG,KAAK,UAAU;YAC/D,OAAQ,eAAoC,CAAC,GAAG,KAAK,UAAU;YAC/D,OAAQ,eAAoC,CAAC,IAAI,KAAK,UAAU;YAChE,OAAQ,eAAoC,CAAC,KAAK,KAAK,UAAU,EACjE,CAAC;YACD,uDAAuD;YACvD,KAAK,CAAC,eAAmC,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,iBAAiB,CAAC,eAAkD,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-wide registry of open SQLite handles, keyed by connection identity.
|
|
3
|
+
*
|
|
4
|
+
* Consumers frequently end up with several `MongoLite` instances pointing at the
|
|
5
|
+
* same database file — a module-level client here, a background job there, each
|
|
6
|
+
* calling `new MongoLite(path)` independently. Every one of those opens its own
|
|
7
|
+
* SQLite connection, which turns same-process reads/writes into needless lock
|
|
8
|
+
* contention and forces each consumer to hand-roll its own instance cache.
|
|
9
|
+
*
|
|
10
|
+
* When `shared` is enabled, adapters acquire their underlying handle through this
|
|
11
|
+
* registry instead of opening one directly, so N adapter instances against the
|
|
12
|
+
* same identity share a single connection. Each adapter still tracks its own
|
|
13
|
+
* open/closed state; the handle is only really closed once the last holder
|
|
14
|
+
* releases it (reference counting), so one consumer calling `close()` can't pull
|
|
15
|
+
* the connection out from under another.
|
|
16
|
+
*
|
|
17
|
+
* Note this only dedupes connections *within a process*. Separate processes (e.g.
|
|
18
|
+
* worker threads spawned as child processes, or a job runner forking workers)
|
|
19
|
+
* each get their own registry and therefore their own connection — cross-process
|
|
20
|
+
* contention is handled by WAL mode and `busy_timeout`, not by sharing.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Default `busy_timeout`, in milliseconds, applied to new connections.
|
|
24
|
+
*
|
|
25
|
+
* Lives here rather than in `db.ts` so the `node:sqlite` adapter can read it
|
|
26
|
+
* without importing that module — `db.ts` pulls in `better-sqlite3`, which is an
|
|
27
|
+
* optional dependency and may not be installed.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_BUSY_TIMEOUT_MS = 5000;
|
|
30
|
+
export declare class ConnectionRegistry<THandle> {
|
|
31
|
+
private readonly entries;
|
|
32
|
+
/**
|
|
33
|
+
* Returns the handle registered for `key`, opening one via `open()` on first
|
|
34
|
+
* use. Increments the reference count for existing entries.
|
|
35
|
+
*/
|
|
36
|
+
acquire(key: string, open: () => THandle): THandle;
|
|
37
|
+
/**
|
|
38
|
+
* Drops one reference to `key`.
|
|
39
|
+
* @returns `true` when the caller held the last reference and is therefore
|
|
40
|
+
* responsible for closing the handle; `false` while other holders remain.
|
|
41
|
+
*/
|
|
42
|
+
release(key: string, handle: THandle): boolean;
|
|
43
|
+
/** Live reference count for `key`; 0 when nothing holds it. */
|
|
44
|
+
refCount(key: string): number;
|
|
45
|
+
/** Number of distinct shared handles currently open. */
|
|
46
|
+
get size(): number;
|
|
47
|
+
/**
|
|
48
|
+
* Forgets every entry without closing the handles.
|
|
49
|
+
* Intended for test isolation, not for production teardown.
|
|
50
|
+
*/
|
|
51
|
+
clear(): void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Builds a stable registry key. Connections may only be shared when every
|
|
55
|
+
* setting that affects the handle's behaviour matches, so each of these is part
|
|
56
|
+
* of the identity rather than just the file path.
|
|
57
|
+
*/
|
|
58
|
+
export declare function buildConnectionKey(parts: {
|
|
59
|
+
backend: string;
|
|
60
|
+
filePath: string;
|
|
61
|
+
readOnly: boolean;
|
|
62
|
+
WAL: boolean;
|
|
63
|
+
busyTimeout: number;
|
|
64
|
+
verbose: boolean;
|
|
65
|
+
}): string;
|
|
66
|
+
/**
|
|
67
|
+
* Whether a database path is eligible for sharing.
|
|
68
|
+
*
|
|
69
|
+
* `:memory:` databases are private to their connection — two `:memory:` opens are
|
|
70
|
+
* two unrelated databases, so sharing them would silently merge state that
|
|
71
|
+
* callers expect to be isolated. Anonymous temp databases (empty path) behave the
|
|
72
|
+
* same way.
|
|
73
|
+
*/
|
|
74
|
+
export declare function isShareablePath(filePath: string): boolean;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-wide registry of open SQLite handles, keyed by connection identity.
|
|
3
|
+
*
|
|
4
|
+
* Consumers frequently end up with several `MongoLite` instances pointing at the
|
|
5
|
+
* same database file — a module-level client here, a background job there, each
|
|
6
|
+
* calling `new MongoLite(path)` independently. Every one of those opens its own
|
|
7
|
+
* SQLite connection, which turns same-process reads/writes into needless lock
|
|
8
|
+
* contention and forces each consumer to hand-roll its own instance cache.
|
|
9
|
+
*
|
|
10
|
+
* When `shared` is enabled, adapters acquire their underlying handle through this
|
|
11
|
+
* registry instead of opening one directly, so N adapter instances against the
|
|
12
|
+
* same identity share a single connection. Each adapter still tracks its own
|
|
13
|
+
* open/closed state; the handle is only really closed once the last holder
|
|
14
|
+
* releases it (reference counting), so one consumer calling `close()` can't pull
|
|
15
|
+
* the connection out from under another.
|
|
16
|
+
*
|
|
17
|
+
* Note this only dedupes connections *within a process*. Separate processes (e.g.
|
|
18
|
+
* worker threads spawned as child processes, or a job runner forking workers)
|
|
19
|
+
* each get their own registry and therefore their own connection — cross-process
|
|
20
|
+
* contention is handled by WAL mode and `busy_timeout`, not by sharing.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Default `busy_timeout`, in milliseconds, applied to new connections.
|
|
24
|
+
*
|
|
25
|
+
* Lives here rather than in `db.ts` so the `node:sqlite` adapter can read it
|
|
26
|
+
* without importing that module — `db.ts` pulls in `better-sqlite3`, which is an
|
|
27
|
+
* optional dependency and may not be installed.
|
|
28
|
+
*/
|
|
29
|
+
export const DEFAULT_BUSY_TIMEOUT_MS = 5000;
|
|
30
|
+
export class ConnectionRegistry {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.entries = new Map();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the handle registered for `key`, opening one via `open()` on first
|
|
36
|
+
* use. Increments the reference count for existing entries.
|
|
37
|
+
*/
|
|
38
|
+
acquire(key, open) {
|
|
39
|
+
const existing = this.entries.get(key);
|
|
40
|
+
if (existing) {
|
|
41
|
+
existing.refCount++;
|
|
42
|
+
return existing.handle;
|
|
43
|
+
}
|
|
44
|
+
const handle = open();
|
|
45
|
+
this.entries.set(key, { handle, refCount: 1 });
|
|
46
|
+
return handle;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Drops one reference to `key`.
|
|
50
|
+
* @returns `true` when the caller held the last reference and is therefore
|
|
51
|
+
* responsible for closing the handle; `false` while other holders remain.
|
|
52
|
+
*/
|
|
53
|
+
release(key, handle) {
|
|
54
|
+
const entry = this.entries.get(key);
|
|
55
|
+
// Untracked handle (never shared, or already fully released) — the caller
|
|
56
|
+
// owns it outright and should close it.
|
|
57
|
+
if (!entry || entry.handle !== handle) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
entry.refCount--;
|
|
61
|
+
if (entry.refCount > 0) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
this.entries.delete(key);
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
/** Live reference count for `key`; 0 when nothing holds it. */
|
|
68
|
+
refCount(key) {
|
|
69
|
+
return this.entries.get(key)?.refCount ?? 0;
|
|
70
|
+
}
|
|
71
|
+
/** Number of distinct shared handles currently open. */
|
|
72
|
+
get size() {
|
|
73
|
+
return this.entries.size;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Forgets every entry without closing the handles.
|
|
77
|
+
* Intended for test isolation, not for production teardown.
|
|
78
|
+
*/
|
|
79
|
+
clear() {
|
|
80
|
+
this.entries.clear();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Builds a stable registry key. Connections may only be shared when every
|
|
85
|
+
* setting that affects the handle's behaviour matches, so each of these is part
|
|
86
|
+
* of the identity rather than just the file path.
|
|
87
|
+
*/
|
|
88
|
+
export function buildConnectionKey(parts) {
|
|
89
|
+
return JSON.stringify([
|
|
90
|
+
parts.backend,
|
|
91
|
+
parts.filePath,
|
|
92
|
+
parts.readOnly,
|
|
93
|
+
parts.WAL,
|
|
94
|
+
parts.busyTimeout,
|
|
95
|
+
parts.verbose,
|
|
96
|
+
]);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Whether a database path is eligible for sharing.
|
|
100
|
+
*
|
|
101
|
+
* `:memory:` databases are private to their connection — two `:memory:` opens are
|
|
102
|
+
* two unrelated databases, so sharing them would silently merge state that
|
|
103
|
+
* callers expect to be isolated. Anonymous temp databases (empty path) behave the
|
|
104
|
+
* same way.
|
|
105
|
+
*/
|
|
106
|
+
export function isShareablePath(filePath) {
|
|
107
|
+
const normalised = filePath.trim().toLowerCase();
|
|
108
|
+
if (normalised === '' || normalised === ':memory:') {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
// file: URIs opt into sharing only when not explicitly in-memory.
|
|
112
|
+
if (normalised.startsWith('file:') && normalised.includes('mode=memory')) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=connection-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-registry.js","sourceRoot":"","sources":["../../src/utils/connection-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAO5C,MAAM,OAAO,kBAAkB;IAA/B;QACmB,YAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IA0DvE,CAAC;IAxDC;;;OAGG;IACI,OAAO,CAAC,GAAW,EAAE,IAAmB;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,GAAW,EAAE,MAAe;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,0EAA0E;QAC1E,wCAAwC;QACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IACxD,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,wDAAwD;IACxD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAOlC;IACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,GAAG;QACT,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kEAAkE;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|