orez 0.0.31 → 0.0.33
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.d.ts.map +1 -1
- package/dist/index.js +68 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +79 -17
- package/src/replication/tcp-replication.test.ts +4 -4
- package/src/sqlite-loader.cjs +0 -40
- package/src/sqlite-shim.cjs +0 -84
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC5D,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAe3D,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;GA2H1E"}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,6 @@ import { spawn } from 'node:child_process';
|
|
|
9
9
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { createRequire } from 'node:module';
|
|
11
11
|
import { dirname, resolve } from 'node:path';
|
|
12
|
-
import { fileURLToPath } from 'node:url';
|
|
13
12
|
import { getConfig, getConnectionString } from './config.js';
|
|
14
13
|
import { log, port, setLogLevel } from './log.js';
|
|
15
14
|
import { startPgProxy } from './pg-proxy.js';
|
|
@@ -221,12 +220,59 @@ async function seedIfNeeded(db, config) {
|
|
|
221
220
|
}
|
|
222
221
|
log.orez('seeded');
|
|
223
222
|
}
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
const
|
|
223
|
+
// create a fake @rocicorp/zero-sqlite3 package in tmpdir that redirects to
|
|
224
|
+
// bedrock-sqlite (wasm). uses NODE_PATH to make node resolve our shim first —
|
|
225
|
+
// no require hooks, no Module._resolveFilename monkey-patching, no .cjs files
|
|
226
|
+
// in the package (which all break vite).
|
|
227
|
+
function writeSqliteShim() {
|
|
228
|
+
const tmp = process.env.TMPDIR || process.env.TEMP || '/tmp';
|
|
229
|
+
const dir = resolve(tmp, 'orez-sqlite', 'node_modules', '@rocicorp', 'zero-sqlite3');
|
|
230
|
+
mkdirSync(dir, { recursive: true });
|
|
231
|
+
const bedrockEntry = resolvePackage('bedrock-sqlite');
|
|
232
|
+
writeFileSync(resolve(dir, 'package.json'), '{"name":"@rocicorp/zero-sqlite3","main":"./index.js"}\n');
|
|
233
|
+
writeFileSync(resolve(dir, 'index.js'), `'use strict';
|
|
234
|
+
var mod = require('${bedrockEntry}');
|
|
235
|
+
var OrigDatabase = mod.Database;
|
|
236
|
+
var SqliteError = mod.SqliteError;
|
|
237
|
+
function Database() {
|
|
238
|
+
var db = new OrigDatabase(...arguments);
|
|
239
|
+
try {
|
|
240
|
+
db.pragma('journal_mode = delete');
|
|
241
|
+
db.pragma('busy_timeout = 30000');
|
|
242
|
+
db.pragma('synchronous = normal');
|
|
243
|
+
} catch(e) {}
|
|
244
|
+
return db;
|
|
245
|
+
}
|
|
246
|
+
Database.prototype = OrigDatabase.prototype;
|
|
247
|
+
Database.prototype.constructor = Database;
|
|
248
|
+
Object.keys(OrigDatabase).forEach(function(k) { Database[k] = OrigDatabase[k]; });
|
|
249
|
+
Database.prototype.unsafeMode = function() { return this; };
|
|
250
|
+
if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
|
|
251
|
+
if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
|
|
252
|
+
if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
|
|
253
|
+
var tmpDb = new OrigDatabase(':memory:');
|
|
254
|
+
var tmpStmt = tmpDb.prepare('SELECT 1');
|
|
255
|
+
var SP = Object.getPrototypeOf(tmpStmt);
|
|
256
|
+
if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
|
|
257
|
+
SP.scanStatus = function() { return undefined; };
|
|
258
|
+
SP.scanStatusV2 = function() { return []; };
|
|
259
|
+
SP.scanStatusReset = function() {};
|
|
260
|
+
tmpDb.close();
|
|
261
|
+
Database.SQLITE_SCANSTAT_NLOOP = 0;
|
|
262
|
+
Database.SQLITE_SCANSTAT_NVISIT = 1;
|
|
263
|
+
Database.SQLITE_SCANSTAT_EST = 2;
|
|
264
|
+
Database.SQLITE_SCANSTAT_NAME = 3;
|
|
265
|
+
Database.SQLITE_SCANSTAT_EXPLAIN = 4;
|
|
266
|
+
Database.SQLITE_SCANSTAT_SELECTID = 5;
|
|
267
|
+
Database.SQLITE_SCANSTAT_PARENTID = 6;
|
|
268
|
+
Database.SQLITE_SCANSTAT_NCYCLE = 7;
|
|
269
|
+
Database.SQLITE_SCANSTAT_COMPLEX = 8;
|
|
270
|
+
module.exports = Database;
|
|
271
|
+
module.exports.SqliteError = SqliteError;
|
|
272
|
+
`);
|
|
273
|
+
// return the node_modules root so it can be prepended to NODE_PATH
|
|
274
|
+
return resolve(tmp, 'orez-sqlite', 'node_modules');
|
|
275
|
+
}
|
|
230
276
|
async function startZeroCache(config) {
|
|
231
277
|
// resolve @rocicorp/zero entry for finding zero-cache modules
|
|
232
278
|
const zeroEntry = resolvePackage('@rocicorp/zero');
|
|
@@ -244,13 +290,11 @@ async function startZeroCache(config) {
|
|
|
244
290
|
NODE_ENV: 'development',
|
|
245
291
|
ZERO_LOG_LEVEL: config.logLevel,
|
|
246
292
|
ZERO_NUM_SYNC_WORKERS: '1',
|
|
293
|
+
// disable query planner — it relies on scanStatus which causes infinite
|
|
294
|
+
// loops with wasm sqlite and has caused freezes with native too.
|
|
295
|
+
// planner is an optimization, not required for correctness.
|
|
296
|
+
ZERO_ENABLE_QUERY_PLANNER: 'false',
|
|
247
297
|
};
|
|
248
|
-
// when wasm sqlite may be used, disable the query planner — wasm's
|
|
249
|
-
// scanStatus returns garbage that causes infinite loops in zero-cache.
|
|
250
|
-
// when user forces native (--disable-wasm-sqlite), planner is safe.
|
|
251
|
-
if (!config.disableWasmSqlite) {
|
|
252
|
-
defaults.ZERO_ENABLE_QUERY_PLANNER = 'false';
|
|
253
|
-
}
|
|
254
298
|
const env = {
|
|
255
299
|
...defaults,
|
|
256
300
|
...process.env,
|
|
@@ -267,10 +311,18 @@ async function startZeroCache(config) {
|
|
|
267
311
|
if (!existsSync(zeroCacheBin)) {
|
|
268
312
|
throw new Error('zero-cache cli.js not found. install @rocicorp/zero');
|
|
269
313
|
}
|
|
270
|
-
// sqlite
|
|
271
|
-
//
|
|
314
|
+
// wasm sqlite: create a fake @rocicorp/zero-sqlite3 in tmpdir and prepend
|
|
315
|
+
// to NODE_PATH so node resolves our shim first. no require hooks, no
|
|
316
|
+
// Module._resolveFilename monkey-patching (which conflicts with vite).
|
|
317
|
+
if (!config.disableWasmSqlite) {
|
|
318
|
+
const shimNodeModules = writeSqliteShim();
|
|
319
|
+
const existingNodePath = process.env.NODE_PATH || '';
|
|
320
|
+
env.NODE_PATH = existingNodePath
|
|
321
|
+
? `${shimNodeModules}:${existingNodePath}`
|
|
322
|
+
: shimNodeModules;
|
|
323
|
+
}
|
|
272
324
|
const nodeOptions = !config.disableWasmSqlite
|
|
273
|
-
? `--
|
|
325
|
+
? `--max-old-space-size=16384 ${process.env.NODE_OPTIONS || ''}`
|
|
274
326
|
: process.env.NODE_OPTIONS || '';
|
|
275
327
|
if (nodeOptions.trim())
|
|
276
328
|
env.NODE_OPTIONS = nodeOptions.trim();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orez",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"description": "PGlite-powered zero-sync development backend. No Docker required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@electric-sql/pglite": "^0.2.17",
|
|
47
47
|
"@electric-sql/pglite-tools": "0.2.4",
|
|
48
48
|
"@rocicorp/zero": ">=0.1.0",
|
|
49
|
-
"bedrock-sqlite": "0.0.
|
|
49
|
+
"bedrock-sqlite": "0.0.25",
|
|
50
50
|
"citty": "^0.2.0",
|
|
51
51
|
"pg-gateway": "^0.3.0-beta.4",
|
|
52
52
|
"postgres": "^3.4.5",
|
package/src/index.ts
CHANGED
|
@@ -10,7 +10,6 @@ import { spawn, type ChildProcess } from 'node:child_process'
|
|
|
10
10
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'
|
|
11
11
|
import { createRequire } from 'node:module'
|
|
12
12
|
import { dirname, resolve } from 'node:path'
|
|
13
|
-
import { fileURLToPath } from 'node:url'
|
|
14
13
|
|
|
15
14
|
import { getConfig, getConnectionString } from './config.js'
|
|
16
15
|
import { log, port, setLogLevel } from './log.js'
|
|
@@ -250,12 +249,69 @@ async function seedIfNeeded(db: PGlite, config: ZeroLiteConfig): Promise<void> {
|
|
|
250
249
|
log.orez('seeded')
|
|
251
250
|
}
|
|
252
251
|
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
256
|
-
//
|
|
257
|
-
|
|
258
|
-
const
|
|
252
|
+
// create a fake @rocicorp/zero-sqlite3 package in tmpdir that redirects to
|
|
253
|
+
// bedrock-sqlite (wasm). uses NODE_PATH to make node resolve our shim first —
|
|
254
|
+
// no require hooks, no Module._resolveFilename monkey-patching, no .cjs files
|
|
255
|
+
// in the package (which all break vite).
|
|
256
|
+
function writeSqliteShim(): string {
|
|
257
|
+
const tmp = process.env.TMPDIR || process.env.TEMP || '/tmp'
|
|
258
|
+
const dir = resolve(tmp, 'orez-sqlite', 'node_modules', '@rocicorp', 'zero-sqlite3')
|
|
259
|
+
mkdirSync(dir, { recursive: true })
|
|
260
|
+
|
|
261
|
+
const bedrockEntry = resolvePackage('bedrock-sqlite')
|
|
262
|
+
|
|
263
|
+
writeFileSync(
|
|
264
|
+
resolve(dir, 'package.json'),
|
|
265
|
+
'{"name":"@rocicorp/zero-sqlite3","main":"./index.js"}\n'
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
writeFileSync(
|
|
269
|
+
resolve(dir, 'index.js'),
|
|
270
|
+
`'use strict';
|
|
271
|
+
var mod = require('${bedrockEntry}');
|
|
272
|
+
var OrigDatabase = mod.Database;
|
|
273
|
+
var SqliteError = mod.SqliteError;
|
|
274
|
+
function Database() {
|
|
275
|
+
var db = new OrigDatabase(...arguments);
|
|
276
|
+
try {
|
|
277
|
+
db.pragma('journal_mode = delete');
|
|
278
|
+
db.pragma('busy_timeout = 30000');
|
|
279
|
+
db.pragma('synchronous = normal');
|
|
280
|
+
} catch(e) {}
|
|
281
|
+
return db;
|
|
282
|
+
}
|
|
283
|
+
Database.prototype = OrigDatabase.prototype;
|
|
284
|
+
Database.prototype.constructor = Database;
|
|
285
|
+
Object.keys(OrigDatabase).forEach(function(k) { Database[k] = OrigDatabase[k]; });
|
|
286
|
+
Database.prototype.unsafeMode = function() { return this; };
|
|
287
|
+
if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
|
|
288
|
+
if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
|
|
289
|
+
if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
|
|
290
|
+
var tmpDb = new OrigDatabase(':memory:');
|
|
291
|
+
var tmpStmt = tmpDb.prepare('SELECT 1');
|
|
292
|
+
var SP = Object.getPrototypeOf(tmpStmt);
|
|
293
|
+
if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
|
|
294
|
+
SP.scanStatus = function() { return undefined; };
|
|
295
|
+
SP.scanStatusV2 = function() { return []; };
|
|
296
|
+
SP.scanStatusReset = function() {};
|
|
297
|
+
tmpDb.close();
|
|
298
|
+
Database.SQLITE_SCANSTAT_NLOOP = 0;
|
|
299
|
+
Database.SQLITE_SCANSTAT_NVISIT = 1;
|
|
300
|
+
Database.SQLITE_SCANSTAT_EST = 2;
|
|
301
|
+
Database.SQLITE_SCANSTAT_NAME = 3;
|
|
302
|
+
Database.SQLITE_SCANSTAT_EXPLAIN = 4;
|
|
303
|
+
Database.SQLITE_SCANSTAT_SELECTID = 5;
|
|
304
|
+
Database.SQLITE_SCANSTAT_PARENTID = 6;
|
|
305
|
+
Database.SQLITE_SCANSTAT_NCYCLE = 7;
|
|
306
|
+
Database.SQLITE_SCANSTAT_COMPLEX = 8;
|
|
307
|
+
module.exports = Database;
|
|
308
|
+
module.exports.SqliteError = SqliteError;
|
|
309
|
+
`
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
// return the node_modules root so it can be prepended to NODE_PATH
|
|
313
|
+
return resolve(tmp, 'orez-sqlite', 'node_modules')
|
|
314
|
+
}
|
|
259
315
|
|
|
260
316
|
async function startZeroCache(config: ZeroLiteConfig): Promise<ChildProcess> {
|
|
261
317
|
// resolve @rocicorp/zero entry for finding zero-cache modules
|
|
@@ -278,13 +334,10 @@ async function startZeroCache(config: ZeroLiteConfig): Promise<ChildProcess> {
|
|
|
278
334
|
NODE_ENV: 'development',
|
|
279
335
|
ZERO_LOG_LEVEL: config.logLevel,
|
|
280
336
|
ZERO_NUM_SYNC_WORKERS: '1',
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
// when user forces native (--disable-wasm-sqlite), planner is safe.
|
|
286
|
-
if (!config.disableWasmSqlite) {
|
|
287
|
-
defaults.ZERO_ENABLE_QUERY_PLANNER = 'false'
|
|
337
|
+
// disable query planner — it relies on scanStatus which causes infinite
|
|
338
|
+
// loops with wasm sqlite and has caused freezes with native too.
|
|
339
|
+
// planner is an optimization, not required for correctness.
|
|
340
|
+
ZERO_ENABLE_QUERY_PLANNER: 'false',
|
|
288
341
|
}
|
|
289
342
|
|
|
290
343
|
const env: Record<string, string> = {
|
|
@@ -305,10 +358,19 @@ async function startZeroCache(config: ZeroLiteConfig): Promise<ChildProcess> {
|
|
|
305
358
|
throw new Error('zero-cache cli.js not found. install @rocicorp/zero')
|
|
306
359
|
}
|
|
307
360
|
|
|
308
|
-
// sqlite
|
|
309
|
-
//
|
|
361
|
+
// wasm sqlite: create a fake @rocicorp/zero-sqlite3 in tmpdir and prepend
|
|
362
|
+
// to NODE_PATH so node resolves our shim first. no require hooks, no
|
|
363
|
+
// Module._resolveFilename monkey-patching (which conflicts with vite).
|
|
364
|
+
if (!config.disableWasmSqlite) {
|
|
365
|
+
const shimNodeModules = writeSqliteShim()
|
|
366
|
+
const existingNodePath = process.env.NODE_PATH || ''
|
|
367
|
+
env.NODE_PATH = existingNodePath
|
|
368
|
+
? `${shimNodeModules}:${existingNodePath}`
|
|
369
|
+
: shimNodeModules
|
|
370
|
+
}
|
|
371
|
+
|
|
310
372
|
const nodeOptions = !config.disableWasmSqlite
|
|
311
|
-
? `--
|
|
373
|
+
? `--max-old-space-size=16384 ${process.env.NODE_OPTIONS || ''}`
|
|
312
374
|
: process.env.NODE_OPTIONS || ''
|
|
313
375
|
if (nodeOptions.trim()) env.NODE_OPTIONS = nodeOptions.trim()
|
|
314
376
|
|
|
@@ -626,10 +626,10 @@ describe('tcp replication', () => {
|
|
|
626
626
|
await replClient.collectStream(200) // skip CopyBothResponse
|
|
627
627
|
|
|
628
628
|
await db.exec(`INSERT INTO public.items (name, value) VALUES ('upd_target', 10)`)
|
|
629
|
-
await replClient.collectStream(
|
|
629
|
+
await replClient.collectStream(1500)
|
|
630
630
|
|
|
631
631
|
await db.exec(`UPDATE public.items SET value = 20 WHERE name = 'upd_target'`)
|
|
632
|
-
const stream = await replClient.collectStream(
|
|
632
|
+
const stream = await replClient.collectStream(1500)
|
|
633
633
|
|
|
634
634
|
const decoded: PgOutputMessage[] = []
|
|
635
635
|
for (const msg of stream) {
|
|
@@ -670,10 +670,10 @@ describe('tcp replication', () => {
|
|
|
670
670
|
await replClient.collectStream(200)
|
|
671
671
|
|
|
672
672
|
await db.exec(`INSERT INTO public.items (name, value) VALUES ('del_target', 99)`)
|
|
673
|
-
await replClient.collectStream(
|
|
673
|
+
await replClient.collectStream(1500)
|
|
674
674
|
|
|
675
675
|
await db.exec(`DELETE FROM public.items WHERE name = 'del_target'`)
|
|
676
|
-
const stream = await replClient.collectStream(
|
|
676
|
+
const stream = await replClient.collectStream(1500)
|
|
677
677
|
|
|
678
678
|
const decoded: PgOutputMessage[] = []
|
|
679
679
|
for (const msg of stream) {
|
package/src/sqlite-loader.cjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// require hook: intercepts @rocicorp/zero-sqlite3 to use native if available,
|
|
2
|
-
// falling back to bedrock-sqlite (wasm) seamlessly.
|
|
3
|
-
// loaded via NODE_OPTIONS='--require ./sqlite-loader.cjs'.
|
|
4
|
-
// avoids patching files in node_modules — module resolution is intercepted in-process.
|
|
5
|
-
'use strict'
|
|
6
|
-
|
|
7
|
-
const Module = require('module')
|
|
8
|
-
const path = require('path')
|
|
9
|
-
|
|
10
|
-
const shimPath = path.resolve(__dirname, 'sqlite-shim.cjs')
|
|
11
|
-
const originalResolveFilename = Module._resolveFilename
|
|
12
|
-
|
|
13
|
-
// check once at startup whether native bindings work
|
|
14
|
-
let nativeWorks = false
|
|
15
|
-
try {
|
|
16
|
-
const nativePath = originalResolveFilename.call(
|
|
17
|
-
Module,
|
|
18
|
-
'@rocicorp/zero-sqlite3',
|
|
19
|
-
module,
|
|
20
|
-
false
|
|
21
|
-
)
|
|
22
|
-
// actually load it to confirm native addon binds
|
|
23
|
-
const native = require(nativePath)
|
|
24
|
-
const testDb = new native(':memory:')
|
|
25
|
-
testDb.close()
|
|
26
|
-
nativeWorks = true
|
|
27
|
-
} catch {}
|
|
28
|
-
|
|
29
|
-
if (!nativeWorks) {
|
|
30
|
-
Module._resolveFilename = function (request, parent, isMain, options) {
|
|
31
|
-
// intercept any require of @rocicorp/zero-sqlite3 (main or subpaths)
|
|
32
|
-
if (
|
|
33
|
-
request === '@rocicorp/zero-sqlite3' ||
|
|
34
|
-
request.startsWith('@rocicorp/zero-sqlite3/')
|
|
35
|
-
) {
|
|
36
|
-
return shimPath
|
|
37
|
-
}
|
|
38
|
-
return originalResolveFilename.call(this, request, parent, isMain, options)
|
|
39
|
-
}
|
|
40
|
-
}
|
package/src/sqlite-shim.cjs
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
// shim that makes bedrock-sqlite (wasm) compatible with @rocicorp/zero-sqlite3 (native)
|
|
2
|
-
// patches missing methods that zero-cache expects
|
|
3
|
-
'use strict'
|
|
4
|
-
|
|
5
|
-
const mod = require('bedrock-sqlite')
|
|
6
|
-
const OrigDatabase = mod.Database
|
|
7
|
-
const SqliteError = mod.SqliteError
|
|
8
|
-
|
|
9
|
-
// wrap Database constructor to set pragmas immediately on every connection.
|
|
10
|
-
// wasm vfs can't share SHM between processes, so WAL mode coordination breaks.
|
|
11
|
-
// force DELETE journal mode and set busy_timeout before any queries run.
|
|
12
|
-
function Database() {
|
|
13
|
-
const db = new OrigDatabase(...arguments)
|
|
14
|
-
try {
|
|
15
|
-
db.pragma('journal_mode = delete')
|
|
16
|
-
db.pragma('busy_timeout = 30000')
|
|
17
|
-
db.pragma('synchronous = normal')
|
|
18
|
-
} catch {}
|
|
19
|
-
return db
|
|
20
|
-
}
|
|
21
|
-
Database.prototype = OrigDatabase.prototype
|
|
22
|
-
Database.prototype.constructor = Database
|
|
23
|
-
Object.keys(OrigDatabase).forEach((key) => {
|
|
24
|
-
Database[key] = OrigDatabase[key]
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
Database.prototype.unsafeMode = function () {
|
|
28
|
-
// pragmas already set in constructor, just return this
|
|
29
|
-
return this
|
|
30
|
-
}
|
|
31
|
-
if (!Database.prototype.defaultSafeIntegers) {
|
|
32
|
-
Database.prototype.defaultSafeIntegers = function () {
|
|
33
|
-
return this
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
if (!Database.prototype.serialize) {
|
|
37
|
-
Database.prototype.serialize = function () {
|
|
38
|
-
throw new Error('serialize() not supported in wasm build')
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (!Database.prototype.backup) {
|
|
42
|
-
Database.prototype.backup = function () {
|
|
43
|
-
throw new Error('backup() not supported in wasm build')
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// patch Statement prototype - find it from a temp db instance
|
|
48
|
-
const tmpDb = new Database(':memory:')
|
|
49
|
-
const tmpStmt = tmpDb.prepare('SELECT 1')
|
|
50
|
-
const StmtProto = Object.getPrototypeOf(tmpStmt)
|
|
51
|
-
|
|
52
|
-
if (!StmtProto.safeIntegers) {
|
|
53
|
-
StmtProto.safeIntegers = function () {
|
|
54
|
-
return this
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// unconditionally override scanStatus — bedrock-sqlite may have a broken
|
|
58
|
-
// native impl that returns non-undefined garbage, causing infinite loops
|
|
59
|
-
// in zero-cache's getScanstatusLoops
|
|
60
|
-
StmtProto.scanStatus = function () {
|
|
61
|
-
return undefined
|
|
62
|
-
}
|
|
63
|
-
StmtProto.scanStatusV2 = function () {
|
|
64
|
-
return []
|
|
65
|
-
}
|
|
66
|
-
StmtProto.scanStatusReset = function () {}
|
|
67
|
-
|
|
68
|
-
tmpDb.close()
|
|
69
|
-
|
|
70
|
-
// scanstat constants (zero-cache references these as static properties)
|
|
71
|
-
Database.SQLITE_SCANSTAT_NLOOP = 0
|
|
72
|
-
Database.SQLITE_SCANSTAT_NVISIT = 1
|
|
73
|
-
Database.SQLITE_SCANSTAT_EST = 2
|
|
74
|
-
Database.SQLITE_SCANSTAT_NAME = 3
|
|
75
|
-
Database.SQLITE_SCANSTAT_EXPLAIN = 4
|
|
76
|
-
Database.SQLITE_SCANSTAT_SELECTID = 5
|
|
77
|
-
Database.SQLITE_SCANSTAT_PARENTID = 6
|
|
78
|
-
Database.SQLITE_SCANSTAT_NCYCLE = 7
|
|
79
|
-
Database.SQLITE_SCANSTAT_COMPLEX = 8
|
|
80
|
-
|
|
81
|
-
// export in the same shape as @rocicorp/zero-sqlite3:
|
|
82
|
-
// default export is the Database constructor, SqliteError is a named export
|
|
83
|
-
module.exports = Database
|
|
84
|
-
module.exports.SqliteError = SqliteError
|