@nymphjs/driver-sqlite3 1.0.0-beta.11 → 1.0.0-beta.13

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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-03-16)
7
+
8
+ ### Features
9
+
10
+ - open sqlite in readonly unless actively writing to db ([0443b91](https://github.com/sciactive/nymphjs/commit/0443b9188df3ebd557b96baf873abc4e4ddd9137))
11
+
12
+ # [1.0.0-beta.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-03-04)
13
+
14
+ **Note:** Version bump only for package @nymphjs/driver-sqlite3
15
+
6
16
  # [1.0.0-beta.11](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2023-02-27)
7
17
 
8
18
  **Note:** Version bump only for package @nymphjs/driver-sqlite3
@@ -3,6 +3,7 @@ import { NymphDriver, EntityConstructor, EntityInterface, FormattedSelector, Opt
3
3
  import { SQLite3DriverConfig } from './conf';
4
4
  declare class InternalStore {
5
5
  link: SQLite3.Database;
6
+ linkWrite?: SQLite3.Database;
6
7
  connected: boolean;
7
8
  transactionsStarted: number;
8
9
  constructor(link: SQLite3.Database);
@@ -15,10 +16,10 @@ export default class SQLite3Driver extends NymphDriver {
15
16
  constructor(config: Partial<SQLite3DriverConfig>, store?: InternalStore);
16
17
  clone(): SQLite3Driver;
17
18
  connect(): Promise<boolean>;
19
+ private _connect;
18
20
  disconnect(): Promise<false>;
19
21
  inTransaction(): Promise<boolean>;
20
22
  isConnected(): boolean;
21
- private checkReadOnlyMode;
22
23
  private createTables;
23
24
  private query;
24
25
  private queryIter;
@@ -24,6 +24,9 @@ class SQLite3Driver extends nymph_1.NymphDriver {
24
24
  constructor(config, store) {
25
25
  super();
26
26
  this.config = { ...conf_1.SQLite3DriverConfigDefaults, ...config };
27
+ if (this.config.filename === ':memory:') {
28
+ this.config.explicitWrite = true;
29
+ }
27
30
  this.prefix = this.config.prefix;
28
31
  if (store) {
29
32
  this.store = store;
@@ -35,50 +38,94 @@ class SQLite3Driver extends nymph_1.NymphDriver {
35
38
  clone() {
36
39
  return new SQLite3Driver(this.config, this.store);
37
40
  }
38
- async connect() {
39
- const { filename, fileMustExist, timeout, readonly, wal, verbose } = this.config;
41
+ connect() {
40
42
  if (this.store && this.store.connected) {
41
- return true;
43
+ return Promise.resolve(true);
42
44
  }
45
+ this._connect(false);
46
+ return Promise.resolve(this.store.connected);
47
+ }
48
+ _connect(write) {
49
+ const { filename, fileMustExist, timeout, explicitWrite, wal, verbose } = this.config;
43
50
  try {
44
- const link = new better_sqlite3_1.default(filename, {
45
- readonly,
46
- fileMustExist,
47
- timeout,
48
- verbose,
49
- });
51
+ let link;
52
+ try {
53
+ link = new better_sqlite3_1.default(filename, {
54
+ readonly: !explicitWrite && !write,
55
+ fileMustExist,
56
+ timeout,
57
+ verbose,
58
+ });
59
+ }
60
+ catch (e) {
61
+ if (e.code === 'SQLITE_CANTOPEN' &&
62
+ !explicitWrite &&
63
+ !write &&
64
+ !this.config.fileMustExist) {
65
+ const writeLink = new better_sqlite3_1.default(filename, {
66
+ readonly: false,
67
+ fileMustExist,
68
+ timeout,
69
+ verbose,
70
+ });
71
+ writeLink.close();
72
+ link = new better_sqlite3_1.default(filename, {
73
+ readonly: true,
74
+ fileMustExist,
75
+ timeout,
76
+ verbose,
77
+ });
78
+ }
79
+ else {
80
+ throw e;
81
+ }
82
+ }
50
83
  if (!this.store) {
84
+ if (write) {
85
+ throw new Error('Tried to open in write without opening in read first.');
86
+ }
51
87
  this.store = new InternalStore(link);
52
88
  }
89
+ else if (write) {
90
+ this.store.linkWrite = link;
91
+ }
53
92
  else {
54
93
  this.store.link = link;
55
94
  }
56
95
  this.store.connected = true;
57
96
  if (wal) {
58
- this.store.link.pragma('journal_mode = WAL;');
97
+ link.pragma('journal_mode = WAL;');
59
98
  }
60
- this.store.link.pragma('encoding = "UTF-8";');
61
- this.store.link.pragma('foreign_keys = 1;');
62
- this.store.link.pragma('case_sensitive_like = 1;');
63
- this.store.link.function('regexp', { deterministic: true }, (pattern, subject) => this.posixRegexMatch(pattern, subject) ? 1 : 0);
99
+ link.pragma('encoding = "UTF-8";');
100
+ link.pragma('foreign_keys = 1;');
101
+ link.pragma('case_sensitive_like = 1;');
102
+ link.function('regexp', { deterministic: true }, (pattern, subject) => this.posixRegexMatch(pattern, subject) ? 1 : 0);
64
103
  }
65
104
  catch (e) {
66
105
  if (this.store) {
67
106
  this.store.connected = false;
68
107
  }
69
108
  if (filename === ':memory:') {
70
- throw new nymph_1.NotConfiguredError("It seems the config hasn't been set up correctly.");
109
+ throw new nymph_1.NotConfiguredError("It seems the config hasn't been set up correctly. Could not connect: " +
110
+ e?.message);
71
111
  }
72
112
  else {
73
113
  throw new nymph_1.UnableToConnectError('Could not connect: ' + e?.message);
74
114
  }
75
115
  }
76
- return this.store.connected;
77
116
  }
78
117
  async disconnect() {
79
118
  if (this.store.connected) {
80
- this.store.link.exec('PRAGMA optimize;');
119
+ if (this.store.linkWrite && !this.config.explicitWrite) {
120
+ this.store.linkWrite.exec('PRAGMA optimize;');
121
+ this.store.linkWrite.close();
122
+ this.store.linkWrite = undefined;
123
+ }
124
+ if (this.config.explicitWrite) {
125
+ this.store.link.exec('PRAGMA optimize;');
126
+ }
81
127
  this.store.link.close();
128
+ this.store.transactionsStarted = 0;
82
129
  this.store.connected = false;
83
130
  }
84
131
  return this.store.connected;
@@ -89,13 +136,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
89
136
  isConnected() {
90
137
  return this.store.connected;
91
138
  }
92
- checkReadOnlyMode() {
93
- if (this.config.readonly) {
94
- throw new nymph_1.InvalidParametersError('Attempt to write to SQLite3 DB in read only mode.');
95
- }
96
- }
97
139
  createTables(etype = null) {
98
- this.checkReadOnlyMode();
99
140
  this.startTransaction('nymph-tablecreation');
100
141
  try {
101
142
  if (etype != null) {
@@ -155,13 +196,15 @@ class SQLite3Driver extends nymph_1.NymphDriver {
155
196
  }
156
197
  }
157
198
  queryIter(query, { etypes = [], params = {}, } = {}) {
158
- return this.query(() => this.store.link.prepare(query).iterate(params), `${query} -- ${JSON.stringify(params)}`, etypes);
199
+ return this.query(() => (this.store.linkWrite || this.store.link)
200
+ .prepare(query)
201
+ .iterate(params), `${query} -- ${JSON.stringify(params)}`, etypes);
159
202
  }
160
203
  queryGet(query, { etypes = [], params = {}, } = {}) {
161
- return this.query(() => this.store.link.prepare(query).get(params), `${query} -- ${JSON.stringify(params)}`, etypes);
204
+ return this.query(() => (this.store.linkWrite || this.store.link).prepare(query).get(params), `${query} -- ${JSON.stringify(params)}`, etypes);
162
205
  }
163
206
  queryRun(query, { etypes = [], params = {}, } = {}) {
164
- return this.query(() => this.store.link.prepare(query).run(params), `${query} -- ${JSON.stringify(params)}`, etypes);
207
+ return this.query(() => (this.store.linkWrite || this.store.link).prepare(query).run(params), `${query} -- ${JSON.stringify(params)}`, etypes);
165
208
  }
166
209
  async commit(name) {
167
210
  if (name == null || typeof name !== 'string' || name.length === 0) {
@@ -172,6 +215,13 @@ class SQLite3Driver extends nymph_1.NymphDriver {
172
215
  }
173
216
  this.queryRun(`RELEASE SAVEPOINT ${SQLite3Driver.escape(name)};`);
174
217
  this.store.transactionsStarted--;
218
+ if (this.store.transactionsStarted === 0 &&
219
+ this.store.linkWrite &&
220
+ !this.config.explicitWrite) {
221
+ this.store.linkWrite.exec('PRAGMA optimize;');
222
+ this.store.linkWrite.close();
223
+ this.store.linkWrite = undefined;
224
+ }
175
225
  return true;
176
226
  }
177
227
  async deleteEntityByID(guid, className) {
@@ -184,7 +234,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
184
234
  EntityClass = className;
185
235
  }
186
236
  const etype = EntityClass.ETYPE;
187
- this.checkReadOnlyMode();
188
237
  await this.startTransaction('nymph-delete');
189
238
  try {
190
239
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=@guid;`, {
@@ -226,12 +275,13 @@ class SQLite3Driver extends nymph_1.NymphDriver {
226
275
  if (!name) {
227
276
  throw new nymph_1.InvalidParametersError('Name not given for UID');
228
277
  }
229
- this.checkReadOnlyMode();
278
+ await this.startTransaction('nymph-delete-uid');
230
279
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
231
280
  params: {
232
281
  name,
233
282
  },
234
283
  });
284
+ await this.commit('nymph-delete-uid');
235
285
  return true;
236
286
  }
237
287
  async exportEntities(writeLine) {
@@ -1236,7 +1286,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1236
1286
  return result?.cur_uid ?? null;
1237
1287
  }
1238
1288
  async import(filename) {
1239
- this.checkReadOnlyMode();
1240
1289
  try {
1241
1290
  return this.importFromFile(filename, async (guid, tags, sdata, etype) => {
1242
1291
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=@guid;`, {
@@ -1342,7 +1391,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1342
1391
  if (name == null) {
1343
1392
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1344
1393
  }
1345
- this.checkReadOnlyMode();
1346
1394
  await this.startTransaction('nymph-newuid');
1347
1395
  try {
1348
1396
  let curUid = this.queryGet(`SELECT "cur_uid" FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
@@ -1380,13 +1428,14 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1380
1428
  if (oldName == null || newName == null) {
1381
1429
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1382
1430
  }
1383
- this.checkReadOnlyMode();
1431
+ await this.startTransaction('nymph-rename-uid');
1384
1432
  this.queryRun(`UPDATE ${SQLite3Driver.escape(`${this.prefix}uids`)} SET "name"=@newName WHERE "name"=@oldName;`, {
1385
1433
  params: {
1386
1434
  newName,
1387
1435
  oldName,
1388
1436
  },
1389
1437
  });
1438
+ await this.commit('nymph-rename-uid');
1390
1439
  return true;
1391
1440
  }
1392
1441
  async rollback(name) {
@@ -1398,10 +1447,16 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1398
1447
  }
1399
1448
  this.queryRun(`ROLLBACK TO SAVEPOINT ${SQLite3Driver.escape(name)};`);
1400
1449
  this.store.transactionsStarted--;
1450
+ if (this.store.transactionsStarted === 0 &&
1451
+ this.store.linkWrite &&
1452
+ !this.config.explicitWrite) {
1453
+ this.store.linkWrite.exec('PRAGMA optimize;');
1454
+ this.store.linkWrite.close();
1455
+ this.store.linkWrite = undefined;
1456
+ }
1401
1457
  return true;
1402
1458
  }
1403
1459
  async saveEntity(entity) {
1404
- this.checkReadOnlyMode();
1405
1460
  const insertData = (guid, data, sdata, etype) => {
1406
1461
  const runInsertQuery = (name, value, svalue) => {
1407
1462
  if (value === undefined) {
@@ -1516,7 +1571,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1516
1571
  if (name == null) {
1517
1572
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1518
1573
  }
1519
- this.checkReadOnlyMode();
1574
+ await this.startTransaction('nymph-set-uid');
1520
1575
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
1521
1576
  params: {
1522
1577
  name,
@@ -1528,12 +1583,16 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1528
1583
  curUid,
1529
1584
  },
1530
1585
  });
1586
+ await this.commit('nymph-set-uid');
1531
1587
  return true;
1532
1588
  }
1533
1589
  async startTransaction(name) {
1534
1590
  if (name == null || typeof name !== 'string' || name.length === 0) {
1535
1591
  throw new nymph_1.InvalidParametersError('Transaction start attempted without a name.');
1536
1592
  }
1593
+ if (!this.config.explicitWrite && !this.store.linkWrite) {
1594
+ this._connect(true);
1595
+ }
1537
1596
  this.queryRun(`SAVEPOINT ${SQLite3Driver.escape(name)};`);
1538
1597
  this.store.transactionsStarted++;
1539
1598
  return this.nymph;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const node_fs_1 = __importDefault(require("node:fs"));
6
9
  const nymph_1 = require("@nymphjs/nymph");
7
10
  const SQLite3Driver_1 = __importDefault(require("./SQLite3Driver"));
8
- const sqliteConfig = {
9
- filename: ':memory:',
10
- };
11
- const nymph = new nymph_1.Nymph({}, new SQLite3Driver_1.default(sqliteConfig));
12
- describe('SQLite3Driver', () => {
11
+ describe('SQLite3Driver In-Memory', () => {
12
+ const sqliteConfig = {
13
+ filename: ':memory:',
14
+ };
15
+ const nymph = new nymph_1.Nymph({}, new SQLite3Driver_1.default(sqliteConfig));
16
+ if (nymph.driver.isConnected()) {
17
+ nymph.driver.disconnect();
18
+ nymph.driver.connect();
19
+ }
20
+ (0, nymph_1.QueriesTest)(nymph, it);
21
+ (0, nymph_1.UIDTest)(nymph, it);
22
+ (0, nymph_1.ExportImportTest)(nymph, it);
23
+ });
24
+ describe('SQLite3Driver DB File', () => {
25
+ const filename = (0, node_path_1.resolve)((0, node_os_1.tmpdir)(), `nymph-test-${new Date().getTime()}.db`);
26
+ const sqliteConfig = {
27
+ filename,
28
+ };
29
+ const nymph = new nymph_1.Nymph({}, new SQLite3Driver_1.default(sqliteConfig));
13
30
  if (nymph.driver.isConnected()) {
14
31
  nymph.driver.disconnect();
15
32
  nymph.driver.connect();
@@ -17,5 +34,22 @@ describe('SQLite3Driver', () => {
17
34
  (0, nymph_1.QueriesTest)(nymph, it);
18
35
  (0, nymph_1.UIDTest)(nymph, it);
19
36
  (0, nymph_1.ExportImportTest)(nymph, it);
37
+ it('cleans up the db', () => {
38
+ try {
39
+ node_fs_1.default.unlinkSync(filename);
40
+ }
41
+ catch (e) {
42
+ }
43
+ try {
44
+ node_fs_1.default.unlinkSync(filename + '-shm');
45
+ }
46
+ catch (e) {
47
+ }
48
+ try {
49
+ node_fs_1.default.unlinkSync(filename + '-wal');
50
+ }
51
+ catch (e) {
52
+ }
53
+ });
20
54
  });
21
55
  //# sourceMappingURL=SQLite3Driver.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLite3Driver.test.js","sourceRoot":"","sources":["../src/SQLite3Driver.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+E;AAE/E,oEAA4C;AAE5C,MAAM,YAAY,GAAG;IAEnB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,uBAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KACxB;IACD,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SQLite3Driver.test.js","sourceRoot":"","sources":["../src/SQLite3Driver.test.ts"],"names":[],"mappings":";;;;;AAAA,qCAAiC;AACjC,yCAAoC;AACpC,sDAAyB;AACzB,0CAA+E;AAE/E,oEAA4C;AAE5C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,uBAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KACxB;IACD,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,IAAA,gBAAM,GAAE,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG;QACnB,QAAQ;KACT,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,uBAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KACxB;IACD,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,IAAI;YACF,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACzB;QAAC,OAAO,CAAM,EAAE;SAEhB;QACD,IAAI;YACF,iBAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;SAClC;QAAC,OAAO,CAAM,EAAE;SAEhB;QACD,IAAI;YACF,iBAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;SAClC;QAAC,OAAO,CAAM,EAAE;SAEhB;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/conf/d.d.ts CHANGED
@@ -3,7 +3,7 @@ export interface SQLite3DriverConfig {
3
3
  fileMustExist: boolean;
4
4
  prefix: string;
5
5
  timeout: number;
6
- readonly: boolean;
6
+ explicitWrite: boolean;
7
7
  wal: boolean;
8
8
  verbose: ((message?: any, ...additionalArgs: any[]) => void) | undefined;
9
9
  }
@@ -5,7 +5,7 @@ exports.default = {
5
5
  fileMustExist: false,
6
6
  prefix: 'nymph_',
7
7
  timeout: 10000,
8
- readonly: false,
8
+ explicitWrite: false,
9
9
  wal: false,
10
10
  verbose: undefined,
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/conf/defaults.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACI,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/conf/defaults.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,KAAK;IACpB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/driver-sqlite3",
3
- "version": "1.0.0-beta.11",
3
+ "version": "1.0.0-beta.13",
4
4
  "description": "NymphJS - SQLite3 DB Driver",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -31,8 +31,8 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@nymphjs/guid": "^1.0.0-beta.11",
35
- "@nymphjs/nymph": "^1.0.0-beta.11",
34
+ "@nymphjs/guid": "^1.0.0-beta.13",
35
+ "@nymphjs/nymph": "^1.0.0-beta.13",
36
36
  "better-sqlite3": "^8.1.0"
37
37
  },
38
38
  "devDependencies": {
@@ -43,5 +43,5 @@
43
43
  "ts-jest": "^29.0.5",
44
44
  "typescript": "^4.9.5"
45
45
  },
46
- "gitHead": "812eeec8e5b100c6f82abbae1722cfc64a167046"
46
+ "gitHead": "fcc750b12db6426cbf9dbd38618280c1ba965491"
47
47
  }
@@ -1,15 +1,32 @@
1
+ import { tmpdir } from 'node:os';
2
+ import { resolve } from 'node:path';
3
+ import fs from 'node:fs';
1
4
  import { Nymph, QueriesTest, UIDTest, ExportImportTest } from '@nymphjs/nymph';
2
5
 
3
6
  import SQLite3Driver from './SQLite3Driver';
4
7
 
5
- const sqliteConfig = {
6
- // filename: __dirname + '/test.db',
7
- filename: ':memory:',
8
- };
8
+ describe('SQLite3Driver In-Memory', () => {
9
+ const sqliteConfig = {
10
+ filename: ':memory:',
11
+ };
12
+ const nymph = new Nymph({}, new SQLite3Driver(sqliteConfig));
9
13
 
10
- const nymph = new Nymph({}, new SQLite3Driver(sqliteConfig));
14
+ if (nymph.driver.isConnected()) {
15
+ nymph.driver.disconnect();
16
+ nymph.driver.connect();
17
+ }
18
+ QueriesTest(nymph, it);
19
+ UIDTest(nymph, it);
20
+ ExportImportTest(nymph, it);
21
+ });
22
+
23
+ describe('SQLite3Driver DB File', () => {
24
+ const filename = resolve(tmpdir(), `nymph-test-${new Date().getTime()}.db`);
25
+ const sqliteConfig = {
26
+ filename,
27
+ };
28
+ const nymph = new Nymph({}, new SQLite3Driver(sqliteConfig));
11
29
 
12
- describe('SQLite3Driver', () => {
13
30
  if (nymph.driver.isConnected()) {
14
31
  nymph.driver.disconnect();
15
32
  nymph.driver.connect();
@@ -17,4 +34,22 @@ describe('SQLite3Driver', () => {
17
34
  QueriesTest(nymph, it);
18
35
  UIDTest(nymph, it);
19
36
  ExportImportTest(nymph, it);
37
+
38
+ it('cleans up the db', () => {
39
+ try {
40
+ fs.unlinkSync(filename);
41
+ } catch (e: any) {
42
+ // ignore errors
43
+ }
44
+ try {
45
+ fs.unlinkSync(filename + '-shm');
46
+ } catch (e: any) {
47
+ // ignore errors
48
+ }
49
+ try {
50
+ fs.unlinkSync(filename + '-wal');
51
+ } catch (e: any) {
52
+ // ignore errors
53
+ }
54
+ });
20
55
  });
@@ -23,6 +23,7 @@ import {
23
23
 
24
24
  class InternalStore {
25
25
  public link: SQLite3.Database;
26
+ public linkWrite?: SQLite3.Database;
26
27
  public connected: boolean = false;
27
28
  public transactionsStarted = 0;
28
29
 
@@ -53,6 +54,9 @@ export default class SQLite3Driver extends NymphDriver {
53
54
  constructor(config: Partial<SQLite3DriverConfig>, store?: InternalStore) {
54
55
  super();
55
56
  this.config = { ...defaults, ...config };
57
+ if (this.config.filename === ':memory:') {
58
+ this.config.explicitWrite = true;
59
+ }
56
60
  this.prefix = this.config.prefix;
57
61
  if (store) {
58
62
  this.store = store;
@@ -75,38 +79,81 @@ export default class SQLite3Driver extends NymphDriver {
75
79
  *
76
80
  * @returns Whether this instance is connected to a SQLite3 database.
77
81
  */
78
- public async connect() {
79
- const { filename, fileMustExist, timeout, readonly, wal, verbose } =
80
- this.config;
81
-
82
+ public connect() {
82
83
  if (this.store && this.store.connected) {
83
- return true;
84
+ return Promise.resolve(true);
84
85
  }
85
86
 
86
87
  // Connecting
88
+ this._connect(false);
89
+
90
+ return Promise.resolve(this.store.connected);
91
+ }
92
+
93
+ private _connect(write: boolean) {
94
+ const { filename, fileMustExist, timeout, explicitWrite, wal, verbose } =
95
+ this.config;
96
+
87
97
  try {
88
- const link = new SQLite3(filename, {
89
- readonly,
90
- fileMustExist,
91
- timeout,
92
- verbose,
93
- });
98
+ let link: SQLite3.Database;
99
+ try {
100
+ link = new SQLite3(filename, {
101
+ readonly: !explicitWrite && !write,
102
+ fileMustExist,
103
+ timeout,
104
+ verbose,
105
+ });
106
+ } catch (e: any) {
107
+ if (
108
+ e.code === 'SQLITE_CANTOPEN' &&
109
+ !explicitWrite &&
110
+ !write &&
111
+ !this.config.fileMustExist
112
+ ) {
113
+ // This happens when the file doesn't exist and we attempt to open it
114
+ // readonly.
115
+ // First open it in write mode.
116
+ const writeLink = new SQLite3(filename, {
117
+ readonly: false,
118
+ fileMustExist,
119
+ timeout,
120
+ verbose,
121
+ });
122
+ writeLink.close();
123
+ // Now open in readonly.
124
+ link = new SQLite3(filename, {
125
+ readonly: true,
126
+ fileMustExist,
127
+ timeout,
128
+ verbose,
129
+ });
130
+ } else {
131
+ throw e;
132
+ }
133
+ }
94
134
 
95
135
  if (!this.store) {
136
+ if (write) {
137
+ throw new Error(
138
+ 'Tried to open in write without opening in read first.'
139
+ );
140
+ }
96
141
  this.store = new InternalStore(link);
142
+ } else if (write) {
143
+ this.store.linkWrite = link;
97
144
  } else {
98
145
  this.store.link = link;
99
146
  }
100
147
  this.store.connected = true;
101
148
  // Set database and connection options.
102
149
  if (wal) {
103
- this.store.link.pragma('journal_mode = WAL;');
150
+ link.pragma('journal_mode = WAL;');
104
151
  }
105
- this.store.link.pragma('encoding = "UTF-8";');
106
- this.store.link.pragma('foreign_keys = 1;');
107
- this.store.link.pragma('case_sensitive_like = 1;');
152
+ link.pragma('encoding = "UTF-8";');
153
+ link.pragma('foreign_keys = 1;');
154
+ link.pragma('case_sensitive_like = 1;');
108
155
  // Create the preg_match and regexp functions.
109
- this.store.link.function(
156
+ link.function(
110
157
  'regexp',
111
158
  { deterministic: true },
112
159
  (pattern: string, subject: string) =>
@@ -118,14 +165,13 @@ export default class SQLite3Driver extends NymphDriver {
118
165
  }
119
166
  if (filename === ':memory:') {
120
167
  throw new NotConfiguredError(
121
- "It seems the config hasn't been set up correctly."
168
+ "It seems the config hasn't been set up correctly. Could not connect: " +
169
+ e?.message
122
170
  );
123
171
  } else {
124
172
  throw new UnableToConnectError('Could not connect: ' + e?.message);
125
173
  }
126
174
  }
127
-
128
- return this.store.connected;
129
175
  }
130
176
 
131
177
  /**
@@ -135,8 +181,16 @@ export default class SQLite3Driver extends NymphDriver {
135
181
  */
136
182
  public async disconnect() {
137
183
  if (this.store.connected) {
138
- this.store.link.exec('PRAGMA optimize;');
184
+ if (this.store.linkWrite && !this.config.explicitWrite) {
185
+ this.store.linkWrite.exec('PRAGMA optimize;');
186
+ this.store.linkWrite.close();
187
+ this.store.linkWrite = undefined;
188
+ }
189
+ if (this.config.explicitWrite) {
190
+ this.store.link.exec('PRAGMA optimize;');
191
+ }
139
192
  this.store.link.close();
193
+ this.store.transactionsStarted = 0;
140
194
  this.store.connected = false;
141
195
  }
142
196
  return this.store.connected;
@@ -155,24 +209,12 @@ export default class SQLite3Driver extends NymphDriver {
155
209
  return this.store.connected;
156
210
  }
157
211
 
158
- /**
159
- * Check if SQLite3 DB is read only and throw error if so.
160
- */
161
- private checkReadOnlyMode() {
162
- if (this.config.readonly) {
163
- throw new InvalidParametersError(
164
- 'Attempt to write to SQLite3 DB in read only mode.'
165
- );
166
- }
167
- }
168
-
169
212
  /**
170
213
  * Create entity tables in the database.
171
214
  *
172
215
  * @param etype The entity type to create a table for. If this is blank, the default tables are created.
173
216
  */
174
217
  private createTables(etype: string | null = null) {
175
- this.checkReadOnlyMode();
176
218
  this.startTransaction('nymph-tablecreation');
177
219
  try {
178
220
  if (etype != null) {
@@ -363,7 +405,10 @@ export default class SQLite3Driver extends NymphDriver {
363
405
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
364
406
  ) {
365
407
  return this.query(
366
- () => this.store.link.prepare(query).iterate(params),
408
+ () =>
409
+ (this.store.linkWrite || this.store.link)
410
+ .prepare(query)
411
+ .iterate(params),
367
412
  `${query} -- ${JSON.stringify(params)}`,
368
413
  etypes
369
414
  );
@@ -377,7 +422,8 @@ export default class SQLite3Driver extends NymphDriver {
377
422
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
378
423
  ) {
379
424
  return this.query(
380
- () => this.store.link.prepare(query).get(params),
425
+ () =>
426
+ (this.store.linkWrite || this.store.link).prepare(query).get(params),
381
427
  `${query} -- ${JSON.stringify(params)}`,
382
428
  etypes
383
429
  );
@@ -391,7 +437,8 @@ export default class SQLite3Driver extends NymphDriver {
391
437
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
392
438
  ) {
393
439
  return this.query(
394
- () => this.store.link.prepare(query).run(params),
440
+ () =>
441
+ (this.store.linkWrite || this.store.link).prepare(query).run(params),
395
442
  `${query} -- ${JSON.stringify(params)}`,
396
443
  etypes
397
444
  );
@@ -408,6 +455,17 @@ export default class SQLite3Driver extends NymphDriver {
408
455
  }
409
456
  this.queryRun(`RELEASE SAVEPOINT ${SQLite3Driver.escape(name)};`);
410
457
  this.store.transactionsStarted--;
458
+
459
+ if (
460
+ this.store.transactionsStarted === 0 &&
461
+ this.store.linkWrite &&
462
+ !this.config.explicitWrite
463
+ ) {
464
+ this.store.linkWrite.exec('PRAGMA optimize;');
465
+ this.store.linkWrite.close();
466
+ this.store.linkWrite = undefined;
467
+ }
468
+
411
469
  return true;
412
470
  }
413
471
 
@@ -423,7 +481,6 @@ export default class SQLite3Driver extends NymphDriver {
423
481
  EntityClass = className;
424
482
  }
425
483
  const etype = EntityClass.ETYPE;
426
- this.checkReadOnlyMode();
427
484
  await this.startTransaction('nymph-delete');
428
485
  try {
429
486
  this.queryRun(
@@ -486,7 +543,7 @@ export default class SQLite3Driver extends NymphDriver {
486
543
  if (!name) {
487
544
  throw new InvalidParametersError('Name not given for UID');
488
545
  }
489
- this.checkReadOnlyMode();
546
+ await this.startTransaction('nymph-delete-uid');
490
547
  this.queryRun(
491
548
  `DELETE FROM ${SQLite3Driver.escape(
492
549
  `${this.prefix}uids`
@@ -497,6 +554,7 @@ export default class SQLite3Driver extends NymphDriver {
497
554
  },
498
555
  }
499
556
  );
557
+ await this.commit('nymph-delete-uid');
500
558
  return true;
501
559
  }
502
560
 
@@ -1637,7 +1695,6 @@ export default class SQLite3Driver extends NymphDriver {
1637
1695
  }
1638
1696
 
1639
1697
  public async import(filename: string) {
1640
- this.checkReadOnlyMode();
1641
1698
  try {
1642
1699
  return this.importFromFile(
1643
1700
  filename,
@@ -1800,7 +1857,6 @@ export default class SQLite3Driver extends NymphDriver {
1800
1857
  if (name == null) {
1801
1858
  throw new InvalidParametersError('Name not given for UID.');
1802
1859
  }
1803
- this.checkReadOnlyMode();
1804
1860
  await this.startTransaction('nymph-newuid');
1805
1861
  try {
1806
1862
  let curUid =
@@ -1853,7 +1909,7 @@ export default class SQLite3Driver extends NymphDriver {
1853
1909
  if (oldName == null || newName == null) {
1854
1910
  throw new InvalidParametersError('Name not given for UID.');
1855
1911
  }
1856
- this.checkReadOnlyMode();
1912
+ await this.startTransaction('nymph-rename-uid');
1857
1913
  this.queryRun(
1858
1914
  `UPDATE ${SQLite3Driver.escape(
1859
1915
  `${this.prefix}uids`
@@ -1865,6 +1921,7 @@ export default class SQLite3Driver extends NymphDriver {
1865
1921
  },
1866
1922
  }
1867
1923
  );
1924
+ await this.commit('nymph-rename-uid');
1868
1925
  return true;
1869
1926
  }
1870
1927
 
@@ -1879,11 +1936,21 @@ export default class SQLite3Driver extends NymphDriver {
1879
1936
  }
1880
1937
  this.queryRun(`ROLLBACK TO SAVEPOINT ${SQLite3Driver.escape(name)};`);
1881
1938
  this.store.transactionsStarted--;
1939
+
1940
+ if (
1941
+ this.store.transactionsStarted === 0 &&
1942
+ this.store.linkWrite &&
1943
+ !this.config.explicitWrite
1944
+ ) {
1945
+ this.store.linkWrite.exec('PRAGMA optimize;');
1946
+ this.store.linkWrite.close();
1947
+ this.store.linkWrite = undefined;
1948
+ }
1949
+
1882
1950
  return true;
1883
1951
  }
1884
1952
 
1885
1953
  public async saveEntity(entity: EntityInterface) {
1886
- this.checkReadOnlyMode();
1887
1954
  const insertData = (
1888
1955
  guid: string,
1889
1956
  data: EntityData,
@@ -2049,7 +2116,7 @@ export default class SQLite3Driver extends NymphDriver {
2049
2116
  if (name == null) {
2050
2117
  throw new InvalidParametersError('Name not given for UID.');
2051
2118
  }
2052
- this.checkReadOnlyMode();
2119
+ await this.startTransaction('nymph-set-uid');
2053
2120
  this.queryRun(
2054
2121
  `DELETE FROM ${SQLite3Driver.escape(
2055
2122
  `${this.prefix}uids`
@@ -2071,6 +2138,7 @@ export default class SQLite3Driver extends NymphDriver {
2071
2138
  },
2072
2139
  }
2073
2140
  );
2141
+ await this.commit('nymph-set-uid');
2074
2142
  return true;
2075
2143
  }
2076
2144
 
@@ -2080,6 +2148,9 @@ export default class SQLite3Driver extends NymphDriver {
2080
2148
  'Transaction start attempted without a name.'
2081
2149
  );
2082
2150
  }
2151
+ if (!this.config.explicitWrite && !this.store.linkWrite) {
2152
+ this._connect(true);
2153
+ }
2083
2154
  this.queryRun(`SAVEPOINT ${SQLite3Driver.escape(name)};`);
2084
2155
  this.store.transactionsStarted++;
2085
2156
  return this.nymph;
package/src/conf/d.ts CHANGED
@@ -23,9 +23,19 @@ export interface SQLite3DriverConfig {
23
23
  */
24
24
  timeout: number;
25
25
  /**
26
- * Open for readonly, which is needed for PubSub.
26
+ * Open explicitly for writing.
27
+ *
28
+ * By default, the driver will always open the DB as readonly, and attempt to
29
+ * open another link to perform write operations. If you know that only one
30
+ * instance will be writing, you can force the driver to open for writing by
31
+ * default, which will block any other instance from opening it for writing.
32
+ *
33
+ * One thing to note is that starting a transaction is a write operation, so
34
+ * as long as an instance is in a transaction, no other instances can write.
35
+ *
36
+ * PubSub also needs to open the DB, and it only needs read access.
27
37
  */
28
- readonly: boolean;
38
+ explicitWrite: boolean;
29
39
  /**
30
40
  * Turn on WAL mode.
31
41
  *
@@ -5,7 +5,7 @@ export default {
5
5
  fileMustExist: false,
6
6
  prefix: 'nymph_',
7
7
  timeout: 10000,
8
- readonly: false,
8
+ explicitWrite: false,
9
9
  wal: false,
10
10
  verbose: undefined,
11
11
  } as SQLite3DriverConfig;