@nymphjs/driver-sqlite3 1.0.0-beta.12 → 1.0.0-beta.14

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,18 @@
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.14](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.13...v1.0.0-beta.14) (2023-03-17)
7
+
8
+ ### Bug Fixes
9
+
10
+ - run pragma and function on write link on new sqlite3 db ([6c28ba1](https://github.com/sciactive/nymphjs/commit/6c28ba1a396f7cec098d4e550c7b82c93979eaec))
11
+
12
+ # [1.0.0-beta.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-03-16)
13
+
14
+ ### Features
15
+
16
+ - open sqlite in readonly unless actively writing to db ([0443b91](https://github.com/sciactive/nymphjs/commit/0443b9188df3ebd557b96baf873abc4e4ddd9137))
17
+
6
18
  # [1.0.0-beta.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-03-04)
7
19
 
8
20
  **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,98 @@ 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
+ const setOptions = (link) => {
52
+ if (wal) {
53
+ link.pragma('journal_mode = WAL;');
54
+ }
55
+ link.pragma('encoding = "UTF-8";');
56
+ link.pragma('foreign_keys = 1;');
57
+ link.pragma('case_sensitive_like = 1;');
58
+ link.function('regexp', { deterministic: true }, (pattern, subject) => this.posixRegexMatch(pattern, subject) ? 1 : 0);
59
+ };
60
+ let link;
61
+ try {
62
+ link = new better_sqlite3_1.default(filename, {
63
+ readonly: !explicitWrite && !write,
64
+ fileMustExist,
65
+ timeout,
66
+ verbose,
67
+ });
68
+ }
69
+ catch (e) {
70
+ if (e.code === 'SQLITE_CANTOPEN' &&
71
+ !explicitWrite &&
72
+ !write &&
73
+ !this.config.fileMustExist) {
74
+ const writeLink = new better_sqlite3_1.default(filename, {
75
+ readonly: false,
76
+ fileMustExist,
77
+ timeout,
78
+ verbose,
79
+ });
80
+ setOptions(writeLink);
81
+ writeLink.close();
82
+ link = new better_sqlite3_1.default(filename, {
83
+ readonly: true,
84
+ fileMustExist,
85
+ timeout,
86
+ verbose,
87
+ });
88
+ }
89
+ else {
90
+ throw e;
91
+ }
92
+ }
50
93
  if (!this.store) {
94
+ if (write) {
95
+ throw new Error('Tried to open in write without opening in read first.');
96
+ }
51
97
  this.store = new InternalStore(link);
52
98
  }
99
+ else if (write) {
100
+ this.store.linkWrite = link;
101
+ }
53
102
  else {
54
103
  this.store.link = link;
55
104
  }
56
105
  this.store.connected = true;
57
- if (wal) {
58
- this.store.link.pragma('journal_mode = WAL;');
59
- }
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);
106
+ setOptions(link);
64
107
  }
65
108
  catch (e) {
66
109
  if (this.store) {
67
110
  this.store.connected = false;
68
111
  }
69
112
  if (filename === ':memory:') {
70
- throw new nymph_1.NotConfiguredError("It seems the config hasn't been set up correctly.");
113
+ throw new nymph_1.NotConfiguredError("It seems the config hasn't been set up correctly. Could not connect: " +
114
+ e?.message);
71
115
  }
72
116
  else {
73
117
  throw new nymph_1.UnableToConnectError('Could not connect: ' + e?.message);
74
118
  }
75
119
  }
76
- return this.store.connected;
77
120
  }
78
121
  async disconnect() {
79
122
  if (this.store.connected) {
80
- this.store.link.exec('PRAGMA optimize;');
123
+ if (this.store.linkWrite && !this.config.explicitWrite) {
124
+ this.store.linkWrite.exec('PRAGMA optimize;');
125
+ this.store.linkWrite.close();
126
+ this.store.linkWrite = undefined;
127
+ }
128
+ if (this.config.explicitWrite) {
129
+ this.store.link.exec('PRAGMA optimize;');
130
+ }
81
131
  this.store.link.close();
132
+ this.store.transactionsStarted = 0;
82
133
  this.store.connected = false;
83
134
  }
84
135
  return this.store.connected;
@@ -89,13 +140,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
89
140
  isConnected() {
90
141
  return this.store.connected;
91
142
  }
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
143
  createTables(etype = null) {
98
- this.checkReadOnlyMode();
99
144
  this.startTransaction('nymph-tablecreation');
100
145
  try {
101
146
  if (etype != null) {
@@ -155,13 +200,15 @@ class SQLite3Driver extends nymph_1.NymphDriver {
155
200
  }
156
201
  }
157
202
  queryIter(query, { etypes = [], params = {}, } = {}) {
158
- return this.query(() => this.store.link.prepare(query).iterate(params), `${query} -- ${JSON.stringify(params)}`, etypes);
203
+ return this.query(() => (this.store.linkWrite || this.store.link)
204
+ .prepare(query)
205
+ .iterate(params), `${query} -- ${JSON.stringify(params)}`, etypes);
159
206
  }
160
207
  queryGet(query, { etypes = [], params = {}, } = {}) {
161
- return this.query(() => this.store.link.prepare(query).get(params), `${query} -- ${JSON.stringify(params)}`, etypes);
208
+ return this.query(() => (this.store.linkWrite || this.store.link).prepare(query).get(params), `${query} -- ${JSON.stringify(params)}`, etypes);
162
209
  }
163
210
  queryRun(query, { etypes = [], params = {}, } = {}) {
164
- return this.query(() => this.store.link.prepare(query).run(params), `${query} -- ${JSON.stringify(params)}`, etypes);
211
+ return this.query(() => (this.store.linkWrite || this.store.link).prepare(query).run(params), `${query} -- ${JSON.stringify(params)}`, etypes);
165
212
  }
166
213
  async commit(name) {
167
214
  if (name == null || typeof name !== 'string' || name.length === 0) {
@@ -172,6 +219,13 @@ class SQLite3Driver extends nymph_1.NymphDriver {
172
219
  }
173
220
  this.queryRun(`RELEASE SAVEPOINT ${SQLite3Driver.escape(name)};`);
174
221
  this.store.transactionsStarted--;
222
+ if (this.store.transactionsStarted === 0 &&
223
+ this.store.linkWrite &&
224
+ !this.config.explicitWrite) {
225
+ this.store.linkWrite.exec('PRAGMA optimize;');
226
+ this.store.linkWrite.close();
227
+ this.store.linkWrite = undefined;
228
+ }
175
229
  return true;
176
230
  }
177
231
  async deleteEntityByID(guid, className) {
@@ -184,7 +238,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
184
238
  EntityClass = className;
185
239
  }
186
240
  const etype = EntityClass.ETYPE;
187
- this.checkReadOnlyMode();
188
241
  await this.startTransaction('nymph-delete');
189
242
  try {
190
243
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=@guid;`, {
@@ -226,12 +279,13 @@ class SQLite3Driver extends nymph_1.NymphDriver {
226
279
  if (!name) {
227
280
  throw new nymph_1.InvalidParametersError('Name not given for UID');
228
281
  }
229
- this.checkReadOnlyMode();
282
+ await this.startTransaction('nymph-delete-uid');
230
283
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
231
284
  params: {
232
285
  name,
233
286
  },
234
287
  });
288
+ await this.commit('nymph-delete-uid');
235
289
  return true;
236
290
  }
237
291
  async exportEntities(writeLine) {
@@ -1236,7 +1290,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1236
1290
  return result?.cur_uid ?? null;
1237
1291
  }
1238
1292
  async import(filename) {
1239
- this.checkReadOnlyMode();
1240
1293
  try {
1241
1294
  return this.importFromFile(filename, async (guid, tags, sdata, etype) => {
1242
1295
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=@guid;`, {
@@ -1342,7 +1395,6 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1342
1395
  if (name == null) {
1343
1396
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1344
1397
  }
1345
- this.checkReadOnlyMode();
1346
1398
  await this.startTransaction('nymph-newuid');
1347
1399
  try {
1348
1400
  let curUid = this.queryGet(`SELECT "cur_uid" FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
@@ -1380,13 +1432,14 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1380
1432
  if (oldName == null || newName == null) {
1381
1433
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1382
1434
  }
1383
- this.checkReadOnlyMode();
1435
+ await this.startTransaction('nymph-rename-uid');
1384
1436
  this.queryRun(`UPDATE ${SQLite3Driver.escape(`${this.prefix}uids`)} SET "name"=@newName WHERE "name"=@oldName;`, {
1385
1437
  params: {
1386
1438
  newName,
1387
1439
  oldName,
1388
1440
  },
1389
1441
  });
1442
+ await this.commit('nymph-rename-uid');
1390
1443
  return true;
1391
1444
  }
1392
1445
  async rollback(name) {
@@ -1398,10 +1451,16 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1398
1451
  }
1399
1452
  this.queryRun(`ROLLBACK TO SAVEPOINT ${SQLite3Driver.escape(name)};`);
1400
1453
  this.store.transactionsStarted--;
1454
+ if (this.store.transactionsStarted === 0 &&
1455
+ this.store.linkWrite &&
1456
+ !this.config.explicitWrite) {
1457
+ this.store.linkWrite.exec('PRAGMA optimize;');
1458
+ this.store.linkWrite.close();
1459
+ this.store.linkWrite = undefined;
1460
+ }
1401
1461
  return true;
1402
1462
  }
1403
1463
  async saveEntity(entity) {
1404
- this.checkReadOnlyMode();
1405
1464
  const insertData = (guid, data, sdata, etype) => {
1406
1465
  const runInsertQuery = (name, value, svalue) => {
1407
1466
  if (value === undefined) {
@@ -1516,7 +1575,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1516
1575
  if (name == null) {
1517
1576
  throw new nymph_1.InvalidParametersError('Name not given for UID.');
1518
1577
  }
1519
- this.checkReadOnlyMode();
1578
+ await this.startTransaction('nymph-set-uid');
1520
1579
  this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
1521
1580
  params: {
1522
1581
  name,
@@ -1528,12 +1587,16 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1528
1587
  curUid,
1529
1588
  },
1530
1589
  });
1590
+ await this.commit('nymph-set-uid');
1531
1591
  return true;
1532
1592
  }
1533
1593
  async startTransaction(name) {
1534
1594
  if (name == null || typeof name !== 'string' || name.length === 0) {
1535
1595
  throw new nymph_1.InvalidParametersError('Transaction start attempted without a name.');
1536
1596
  }
1597
+ if (!this.config.explicitWrite && !this.store.linkWrite) {
1598
+ this._connect(true);
1599
+ }
1537
1600
  this.queryRun(`SAVEPOINT ${SQLite3Driver.escape(name)};`);
1538
1601
  this.store.transactionsStarted++;
1539
1602
  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.12",
3
+ "version": "1.0.0-beta.14",
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.12",
35
- "@nymphjs/nymph": "^1.0.0-beta.12",
34
+ "@nymphjs/guid": "^1.0.0-beta.14",
35
+ "@nymphjs/nymph": "^1.0.0-beta.14",
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": "976040d986831ee0b9a15990adb7e8a48a5379e8"
46
+ "gitHead": "5999838901bd6fc2fbbf44ca0b0ca990094396c3"
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,57 +79,104 @@ 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
+ const setOptions = (link: SQLite3.Database) => {
99
+ // Set database and connection options.
100
+ if (wal) {
101
+ link.pragma('journal_mode = WAL;');
102
+ }
103
+ link.pragma('encoding = "UTF-8";');
104
+ link.pragma('foreign_keys = 1;');
105
+ link.pragma('case_sensitive_like = 1;');
106
+ // Create the preg_match and regexp functions.
107
+ link.function(
108
+ 'regexp',
109
+ { deterministic: true },
110
+ (pattern: string, subject: string) =>
111
+ this.posixRegexMatch(pattern, subject) ? 1 : 0
112
+ );
113
+ };
114
+
115
+ let link: SQLite3.Database;
116
+ try {
117
+ link = new SQLite3(filename, {
118
+ readonly: !explicitWrite && !write,
119
+ fileMustExist,
120
+ timeout,
121
+ verbose,
122
+ });
123
+ } catch (e: any) {
124
+ if (
125
+ e.code === 'SQLITE_CANTOPEN' &&
126
+ !explicitWrite &&
127
+ !write &&
128
+ !this.config.fileMustExist
129
+ ) {
130
+ // This happens when the file doesn't exist and we attempt to open it
131
+ // readonly.
132
+ // First open it in write mode.
133
+ const writeLink = new SQLite3(filename, {
134
+ readonly: false,
135
+ fileMustExist,
136
+ timeout,
137
+ verbose,
138
+ });
139
+ setOptions(writeLink);
140
+ writeLink.close();
141
+ // Now open in readonly.
142
+ link = new SQLite3(filename, {
143
+ readonly: true,
144
+ fileMustExist,
145
+ timeout,
146
+ verbose,
147
+ });
148
+ } else {
149
+ throw e;
150
+ }
151
+ }
94
152
 
95
153
  if (!this.store) {
154
+ if (write) {
155
+ throw new Error(
156
+ 'Tried to open in write without opening in read first.'
157
+ );
158
+ }
96
159
  this.store = new InternalStore(link);
160
+ } else if (write) {
161
+ this.store.linkWrite = link;
97
162
  } else {
98
163
  this.store.link = link;
99
164
  }
100
165
  this.store.connected = true;
101
- // Set database and connection options.
102
- if (wal) {
103
- this.store.link.pragma('journal_mode = WAL;');
104
- }
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;');
108
- // Create the preg_match and regexp functions.
109
- this.store.link.function(
110
- 'regexp',
111
- { deterministic: true },
112
- (pattern: string, subject: string) =>
113
- this.posixRegexMatch(pattern, subject) ? 1 : 0
114
- );
166
+ setOptions(link);
115
167
  } catch (e: any) {
116
168
  if (this.store) {
117
169
  this.store.connected = false;
118
170
  }
119
171
  if (filename === ':memory:') {
120
172
  throw new NotConfiguredError(
121
- "It seems the config hasn't been set up correctly."
173
+ "It seems the config hasn't been set up correctly. Could not connect: " +
174
+ e?.message
122
175
  );
123
176
  } else {
124
177
  throw new UnableToConnectError('Could not connect: ' + e?.message);
125
178
  }
126
179
  }
127
-
128
- return this.store.connected;
129
180
  }
130
181
 
131
182
  /**
@@ -135,8 +186,16 @@ export default class SQLite3Driver extends NymphDriver {
135
186
  */
136
187
  public async disconnect() {
137
188
  if (this.store.connected) {
138
- this.store.link.exec('PRAGMA optimize;');
189
+ if (this.store.linkWrite && !this.config.explicitWrite) {
190
+ this.store.linkWrite.exec('PRAGMA optimize;');
191
+ this.store.linkWrite.close();
192
+ this.store.linkWrite = undefined;
193
+ }
194
+ if (this.config.explicitWrite) {
195
+ this.store.link.exec('PRAGMA optimize;');
196
+ }
139
197
  this.store.link.close();
198
+ this.store.transactionsStarted = 0;
140
199
  this.store.connected = false;
141
200
  }
142
201
  return this.store.connected;
@@ -155,24 +214,12 @@ export default class SQLite3Driver extends NymphDriver {
155
214
  return this.store.connected;
156
215
  }
157
216
 
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
217
  /**
170
218
  * Create entity tables in the database.
171
219
  *
172
220
  * @param etype The entity type to create a table for. If this is blank, the default tables are created.
173
221
  */
174
222
  private createTables(etype: string | null = null) {
175
- this.checkReadOnlyMode();
176
223
  this.startTransaction('nymph-tablecreation');
177
224
  try {
178
225
  if (etype != null) {
@@ -363,7 +410,10 @@ export default class SQLite3Driver extends NymphDriver {
363
410
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
364
411
  ) {
365
412
  return this.query(
366
- () => this.store.link.prepare(query).iterate(params),
413
+ () =>
414
+ (this.store.linkWrite || this.store.link)
415
+ .prepare(query)
416
+ .iterate(params),
367
417
  `${query} -- ${JSON.stringify(params)}`,
368
418
  etypes
369
419
  );
@@ -377,7 +427,8 @@ export default class SQLite3Driver extends NymphDriver {
377
427
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
378
428
  ) {
379
429
  return this.query(
380
- () => this.store.link.prepare(query).get(params),
430
+ () =>
431
+ (this.store.linkWrite || this.store.link).prepare(query).get(params),
381
432
  `${query} -- ${JSON.stringify(params)}`,
382
433
  etypes
383
434
  );
@@ -391,7 +442,8 @@ export default class SQLite3Driver extends NymphDriver {
391
442
  }: { etypes?: string[]; params?: { [k: string]: any } } = {}
392
443
  ) {
393
444
  return this.query(
394
- () => this.store.link.prepare(query).run(params),
445
+ () =>
446
+ (this.store.linkWrite || this.store.link).prepare(query).run(params),
395
447
  `${query} -- ${JSON.stringify(params)}`,
396
448
  etypes
397
449
  );
@@ -408,6 +460,17 @@ export default class SQLite3Driver extends NymphDriver {
408
460
  }
409
461
  this.queryRun(`RELEASE SAVEPOINT ${SQLite3Driver.escape(name)};`);
410
462
  this.store.transactionsStarted--;
463
+
464
+ if (
465
+ this.store.transactionsStarted === 0 &&
466
+ this.store.linkWrite &&
467
+ !this.config.explicitWrite
468
+ ) {
469
+ this.store.linkWrite.exec('PRAGMA optimize;');
470
+ this.store.linkWrite.close();
471
+ this.store.linkWrite = undefined;
472
+ }
473
+
411
474
  return true;
412
475
  }
413
476
 
@@ -423,7 +486,6 @@ export default class SQLite3Driver extends NymphDriver {
423
486
  EntityClass = className;
424
487
  }
425
488
  const etype = EntityClass.ETYPE;
426
- this.checkReadOnlyMode();
427
489
  await this.startTransaction('nymph-delete');
428
490
  try {
429
491
  this.queryRun(
@@ -486,7 +548,7 @@ export default class SQLite3Driver extends NymphDriver {
486
548
  if (!name) {
487
549
  throw new InvalidParametersError('Name not given for UID');
488
550
  }
489
- this.checkReadOnlyMode();
551
+ await this.startTransaction('nymph-delete-uid');
490
552
  this.queryRun(
491
553
  `DELETE FROM ${SQLite3Driver.escape(
492
554
  `${this.prefix}uids`
@@ -497,6 +559,7 @@ export default class SQLite3Driver extends NymphDriver {
497
559
  },
498
560
  }
499
561
  );
562
+ await this.commit('nymph-delete-uid');
500
563
  return true;
501
564
  }
502
565
 
@@ -1637,7 +1700,6 @@ export default class SQLite3Driver extends NymphDriver {
1637
1700
  }
1638
1701
 
1639
1702
  public async import(filename: string) {
1640
- this.checkReadOnlyMode();
1641
1703
  try {
1642
1704
  return this.importFromFile(
1643
1705
  filename,
@@ -1800,7 +1862,6 @@ export default class SQLite3Driver extends NymphDriver {
1800
1862
  if (name == null) {
1801
1863
  throw new InvalidParametersError('Name not given for UID.');
1802
1864
  }
1803
- this.checkReadOnlyMode();
1804
1865
  await this.startTransaction('nymph-newuid');
1805
1866
  try {
1806
1867
  let curUid =
@@ -1853,7 +1914,7 @@ export default class SQLite3Driver extends NymphDriver {
1853
1914
  if (oldName == null || newName == null) {
1854
1915
  throw new InvalidParametersError('Name not given for UID.');
1855
1916
  }
1856
- this.checkReadOnlyMode();
1917
+ await this.startTransaction('nymph-rename-uid');
1857
1918
  this.queryRun(
1858
1919
  `UPDATE ${SQLite3Driver.escape(
1859
1920
  `${this.prefix}uids`
@@ -1865,6 +1926,7 @@ export default class SQLite3Driver extends NymphDriver {
1865
1926
  },
1866
1927
  }
1867
1928
  );
1929
+ await this.commit('nymph-rename-uid');
1868
1930
  return true;
1869
1931
  }
1870
1932
 
@@ -1879,11 +1941,21 @@ export default class SQLite3Driver extends NymphDriver {
1879
1941
  }
1880
1942
  this.queryRun(`ROLLBACK TO SAVEPOINT ${SQLite3Driver.escape(name)};`);
1881
1943
  this.store.transactionsStarted--;
1944
+
1945
+ if (
1946
+ this.store.transactionsStarted === 0 &&
1947
+ this.store.linkWrite &&
1948
+ !this.config.explicitWrite
1949
+ ) {
1950
+ this.store.linkWrite.exec('PRAGMA optimize;');
1951
+ this.store.linkWrite.close();
1952
+ this.store.linkWrite = undefined;
1953
+ }
1954
+
1882
1955
  return true;
1883
1956
  }
1884
1957
 
1885
1958
  public async saveEntity(entity: EntityInterface) {
1886
- this.checkReadOnlyMode();
1887
1959
  const insertData = (
1888
1960
  guid: string,
1889
1961
  data: EntityData,
@@ -2049,7 +2121,7 @@ export default class SQLite3Driver extends NymphDriver {
2049
2121
  if (name == null) {
2050
2122
  throw new InvalidParametersError('Name not given for UID.');
2051
2123
  }
2052
- this.checkReadOnlyMode();
2124
+ await this.startTransaction('nymph-set-uid');
2053
2125
  this.queryRun(
2054
2126
  `DELETE FROM ${SQLite3Driver.escape(
2055
2127
  `${this.prefix}uids`
@@ -2071,6 +2143,7 @@ export default class SQLite3Driver extends NymphDriver {
2071
2143
  },
2072
2144
  }
2073
2145
  );
2146
+ await this.commit('nymph-set-uid');
2074
2147
  return true;
2075
2148
  }
2076
2149
 
@@ -2080,6 +2153,9 @@ export default class SQLite3Driver extends NymphDriver {
2080
2153
  'Transaction start attempted without a name.'
2081
2154
  );
2082
2155
  }
2156
+ if (!this.config.explicitWrite && !this.store.linkWrite) {
2157
+ this._connect(true);
2158
+ }
2083
2159
  this.queryRun(`SAVEPOINT ${SQLite3Driver.escape(name)};`);
2084
2160
  this.store.transactionsStarted++;
2085
2161
  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;