mongolite-ts 0.1.28 → 0.2.3

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/README.md CHANGED
@@ -11,6 +11,7 @@ A MongoDB-like client that uses SQLite as its underlying persistent store. Writt
11
11
  * MongoDB-like API (`insertOne`, `findOne`, `updateOne`, `deleteOne`, etc.)
12
12
  * SQLite backend for persistence.
13
13
  * Automatic `_id` (UUID) generation and indexing.
14
+ * Support for Write Ahead Logging (WAL) mode for better concurrency.
14
15
  * Support for querying JSON fields.
15
16
  * Written in TypeScript with strong typing.
16
17
  * 100% test coverage (aiming for).
@@ -18,12 +19,12 @@ A MongoDB-like client that uses SQLite as its underlying persistent store. Writt
18
19
  ## Installation
19
20
 
20
21
  ```bash
21
- npm install mongolite-ts sqlite3
22
+ npm install mongolite-ts better-sqlite3
22
23
  # or
23
- yarn add mongolite-ts sqlite3
24
+ yarn add mongolite-ts better-sqlite3
24
25
  ```
25
26
 
26
- **Note:** `sqlite3` is a peer dependency and needs to be installed separately.
27
+ **Note:** `better-sqlite3` is a peer dependency and needs to be installed separately.
27
28
 
28
29
  ## Usage
29
30
 
@@ -180,17 +181,18 @@ Finds multiple documents matching the filter and returns a cursor.
180
181
 
181
182
  Updates a single document matching the filter.
182
183
 
183
- * `filter`: The query criteria to select the document.
184
- * `update`: The update operations to apply. Supports operators like `$set`, `$unset`, `$inc`, `$push`, `$pull`.
185
- * Returns `UpdateResult`: `{ acknowledged: boolean; matchedCount: number; modifiedCount: number; upsertedId: string | null; }`. (Upsert not yet implemented, `upsertedId` will be `null`).
184
+ * `filter`: The selection criteria for the update.
185
+ * `update`: The modifications to apply. Supports operators like `$set`, `$unset`, `$inc`, `$push`, `$pull`.
186
+ * Returns `UpdateResult`: `{ acknowledged: boolean; matchedCount: number; modifiedCount: number; upsertedId: string | null; }`.
186
187
 
187
188
  #### `async deleteOne(filter: Filter<T>): Promise<DeleteResult>`
188
189
 
189
190
  Deletes a single document matching the filter.
190
191
 
191
- * `filter`: The query criteria to select the document.
192
+ * `filter`: The selection criteria for the deletion.
192
193
  * Returns `DeleteResult`: `{ acknowledged: boolean; deletedCount: number; }`.
193
194
 
195
+
194
196
  ### `FindCursor<T>`
195
197
 
196
198
  #### `async toArray(): Promise<T[]>`
@@ -249,6 +251,58 @@ The `update` parameter in `updateOne` supports the following:
249
251
  * `{ $pull: { arrayField: valueOrCondition, ... } }`: Removes all instances of a value or values that match a condition from an array.
250
252
  * `{ $pull: { scores: 0 } }`
251
253
  * `{ $pull: { items: { id: { $in: [1, 2] } } } }` (More complex conditions for $pull might be limited initially)
254
+ #### `async createIndex(fieldOrSpec: string | IndexSpecification, options?: CreateIndexOptions): Promise<CreateIndexResult>`
255
+
256
+ Creates an index on the specified field(s) of the collection.
257
+
258
+ * `fieldOrSpec`: Either a string field name or an index specification object (e.g., `{ name: 1, age: -1 }`).
259
+ * `options`: Optional settings for the index creation.
260
+ * `unique`: If `true`, the index will enforce uniqueness of the indexed field.
261
+ * `name`: Custom name for the index. If not provided, a name will be generated automatically.
262
+ * `background`: If `true`, creates the index in the background (in SQLite, this might not have a significant effect).
263
+ * `sparse`: If `true`, ignores documents that don't have the indexed field (for MongoDB compatibility).
264
+ * Returns `CreateIndexResult`: `{ acknowledged: boolean; name: string; }`.
265
+
266
+ ```typescript
267
+ // Create a simple index on the "name" field
268
+ await usersCollection.createIndex({ name: 1 });
269
+
270
+ // Create a unique index on the "email" field
271
+ await usersCollection.createIndex({ email: 1 }, { unique: true });
272
+
273
+ // Create a compound index on multiple fields
274
+ await usersCollection.createIndex({ name: 1, age: -1 });
275
+
276
+ // You can even create an index on a nested field
277
+ await usersCollection.createIndex({ 'address.city': 1 });
278
+ ```
279
+
280
+ #### `listIndexes(): { toArray: () => Promise<IndexInfo[]> }`
281
+
282
+ Lists all indexes on the collection.
283
+
284
+ * Returns an object with a `toArray()` method that resolves to an array of `IndexInfo` objects.
285
+ * Each `IndexInfo` contains: `name` (string), `key` (object mapping field names to sort direction), and `unique` (boolean).
286
+
287
+ ```typescript
288
+ const indexes = await usersCollection.listIndexes().toArray();
289
+ console.log('Available indexes:', indexes);
290
+ ```
291
+
292
+ #### `async dropIndex(indexName: string): Promise<DropIndexResult>`
293
+
294
+ Drops a specified index from the collection.
295
+
296
+ * `indexName`: The name of the index to drop.
297
+ * Returns `DropIndexResult`: `{ acknowledged: boolean; name: string; }`.
298
+
299
+ #### `async dropIndexes(): Promise<{ acknowledged: boolean; droppedCount: number }>`
300
+
301
+ Drops all indexes from the collection, except for the index on _id.
302
+
303
+ * Returns an object with `acknowledged` (boolean) and `droppedCount` (number) indicating how many indexes were dropped.
304
+ ````
305
+
252
306
 
253
307
  ## Development
254
308
 
@@ -1,5 +1,5 @@
1
1
  import { SQLiteDB } from './db.js';
2
- import { DocumentWithId, Filter, UpdateFilter, InsertOneResult, UpdateResult, DeleteResult, Projection } from './types.js';
2
+ import { DocumentWithId, Filter, UpdateFilter, InsertOneResult, UpdateResult, DeleteResult, Projection, IndexSpecification, CreateIndexOptions, CreateIndexResult, DropIndexResult, IndexInfo } from './types.js';
3
3
  import { FindCursor } from './cursors/findCursor.js';
4
4
  /**
5
5
  * MongoLiteCollection provides methods to interact with a specific SQLite table
@@ -65,6 +65,61 @@ export declare class MongoLiteCollection<T extends DocumentWithId> {
65
65
  * @returns {Promise<UpdateResult>} An object describing the outcome.
66
66
  */
67
67
  updateMany(filter: Filter<T>, update: UpdateFilter<T>): Promise<UpdateResult>;
68
+ /**
69
+ * Creates an index on the specified field(s) of the collection.
70
+ *
71
+ * @param fieldOrSpec The field or specification to create the index on.
72
+ * @param options Options for creating the index.
73
+ * @returns A promise that resolves to the result of the operation.
74
+ *
75
+ * @example
76
+ * // Create a simple index on the "name" field
77
+ * collection.createIndex({ name: 1 });
78
+ *
79
+ * // Create a unique index on the "email" field
80
+ * collection.createIndex({ email: 1 }, { unique: true });
81
+ *
82
+ * // Create a compound index on multiple fields
83
+ * collection.createIndex({ name: 1, age: -1 });
84
+ */
85
+ createIndex(fieldOrSpec: string | IndexSpecification, options?: CreateIndexOptions): Promise<CreateIndexResult>;
86
+ /**
87
+ * Generate a MongoDB-like index name from an index specification.
88
+ * Format: collectionName_field1_1_field2_-1
89
+ */
90
+ private generateIndexName;
91
+ /**
92
+ * Lists all indexes on the collection.
93
+ *
94
+ * @returns A promise that resolves to an object with a toArray method
95
+ * that returns the list of indexes.
96
+ */
97
+ listIndexes(): {
98
+ toArray: () => Promise<IndexInfo[]>;
99
+ };
100
+ /**
101
+ * Drops a specified index from the collection.
102
+ *
103
+ * @param indexName The name of the index to drop.
104
+ * @returns A promise that resolves to the result of the operation.
105
+ */
106
+ dropIndex(indexName: string): Promise<DropIndexResult>;
107
+ /**
108
+ * Drops all indexes from the collection, except for the index on _id.
109
+ *
110
+ * @returns A promise that resolves to the result of the operation.
111
+ */
112
+ dropIndexes(): Promise<{
113
+ acknowledged: boolean;
114
+ droppedCount: number;
115
+ }>;
116
+ /**
117
+ * Prepends '$.' to the path for SQLite JSON functions.
118
+ * @private
119
+ * @param path Field path, e.g., 'address.city'
120
+ * @returns JSON path string for SQLite, e.g., '$.address.city'
121
+ */
122
+ private parseJsonPath;
68
123
  private setNestedValue;
69
124
  private unsetNestedValue;
70
125
  private getNestedValue;
@@ -1,5 +1,6 @@
1
1
  import { ObjectId } from 'bson';
2
2
  import { FindCursor } from './cursors/findCursor.js';
3
+ import { extractRawIndexColumns } from './utils/indexing.js';
3
4
  /**
4
5
  * MongoLiteCollection provides methods to interact with a specific SQLite table
5
6
  * as if it were a MongoDB collection.
@@ -443,6 +444,161 @@ export class MongoLiteCollection {
443
444
  upsertedId: null, // We don't support upsert yet
444
445
  };
445
446
  }
447
+ /**
448
+ * Creates an index on the specified field(s) of the collection.
449
+ *
450
+ * @param fieldOrSpec The field or specification to create the index on.
451
+ * @param options Options for creating the index.
452
+ * @returns A promise that resolves to the result of the operation.
453
+ *
454
+ * @example
455
+ * // Create a simple index on the "name" field
456
+ * collection.createIndex({ name: 1 });
457
+ *
458
+ * // Create a unique index on the "email" field
459
+ * collection.createIndex({ email: 1 }, { unique: true });
460
+ *
461
+ * // Create a compound index on multiple fields
462
+ * collection.createIndex({ name: 1, age: -1 });
463
+ */
464
+ async createIndex(fieldOrSpec, options = {}) {
465
+ await this.ensureTable();
466
+ // Convert string field to index spec format
467
+ const spec = typeof fieldOrSpec === 'string' ? { [fieldOrSpec]: 1 } : fieldOrSpec;
468
+ // Generate index name if not provided
469
+ const indexName = options.name || this.generateIndexName(spec);
470
+ // Build the index fields part for SQLite (field1, field2, ...)
471
+ const indexFields = Object.entries(spec)
472
+ .map(([field, direction]) => {
473
+ // For JSON field paths, we need to use json_extract
474
+ if (field.includes('.') || field !== '_id') {
475
+ const jsonPath = this.parseJsonPath(field);
476
+ return `json_extract(data, ${jsonPath}) ${direction === -1 ? 'DESC' : 'ASC'}`;
477
+ }
478
+ // For _id field, use the column directly
479
+ return `_id ${direction === -1 ? 'DESC' : 'ASC'}`;
480
+ })
481
+ .join(', ');
482
+ // Create the SQL for the index
483
+ const uniqueClause = options.unique ? 'UNIQUE' : '';
484
+ const createIndexSQL = `CREATE ${uniqueClause} INDEX IF NOT EXISTS "${indexName}" ON "${this.name}" (${indexFields})`;
485
+ try {
486
+ if (this.options.verbose) {
487
+ console.log(`Creating index ${indexName} on collection ${this.name}`);
488
+ }
489
+ await this.db.exec(createIndexSQL);
490
+ return { acknowledged: true, name: indexName };
491
+ }
492
+ catch (error) {
493
+ console.error(`Error creating index ${indexName} on collection ${this.name}:`, error);
494
+ throw error;
495
+ }
496
+ }
497
+ /**
498
+ * Generate a MongoDB-like index name from an index specification.
499
+ * Format: collectionName_field1_1_field2_-1
500
+ */
501
+ generateIndexName(spec) {
502
+ const nameParts = Object.entries(spec).map(([field, direction]) => `${field.replace(/\./g, '_')}_${direction}`);
503
+ return `${this.name}_${nameParts.join('_')}`;
504
+ }
505
+ /**
506
+ * Lists all indexes on the collection.
507
+ *
508
+ * @returns A promise that resolves to an object with a toArray method
509
+ * that returns the list of indexes.
510
+ */
511
+ listIndexes() {
512
+ return {
513
+ toArray: async () => {
514
+ await this.ensureTable();
515
+ try {
516
+ // Query SQLite master table for indexes on this collection
517
+ const indexes = await this.db.all(`SELECT name, sql FROM sqlite_master
518
+ WHERE type='index' AND tbl_name=? AND name NOT LIKE 'sqlite_autoindex%'`, [this.name]);
519
+ const results = [];
520
+ // Parse the SQL to determine indexed fields and options
521
+ for (const index of indexes) {
522
+ const indexInfo = {
523
+ name: index.name,
524
+ key: {},
525
+ };
526
+ // Parse the CREATE INDEX statement to extract field information
527
+ // Example: CREATE UNIQUE INDEX "users_email_1" ON "users" (json_extract(data, '$.email') ASC)
528
+ const sqlLower = index.sql.toLowerCase();
529
+ indexInfo.unique = sqlLower.includes('unique index');
530
+ // Extract the fields from the SQL
531
+ const rawColumns = extractRawIndexColumns(index.sql);
532
+ for (const col of rawColumns) {
533
+ // Use the column name as the key, and direction as value
534
+ indexInfo.key[col.column] = col.direction === 'DESC' ? -1 : 1;
535
+ }
536
+ results.push(indexInfo);
537
+ }
538
+ return results;
539
+ }
540
+ catch (error) {
541
+ console.error(`Error listing indexes for collection ${this.name}:`, error);
542
+ throw error;
543
+ }
544
+ },
545
+ };
546
+ }
547
+ /**
548
+ * Drops a specified index from the collection.
549
+ *
550
+ * @param indexName The name of the index to drop.
551
+ * @returns A promise that resolves to the result of the operation.
552
+ */
553
+ async dropIndex(indexName) {
554
+ await this.ensureTable();
555
+ try {
556
+ if (this.options.verbose) {
557
+ console.log(`Dropping index ${indexName} from collection ${this.name}`);
558
+ }
559
+ await this.db.exec(`DROP INDEX IF EXISTS "${indexName}"`);
560
+ return { acknowledged: true, name: indexName };
561
+ }
562
+ catch (error) {
563
+ console.error(`Error dropping index ${indexName} from collection ${this.name}:`, error);
564
+ throw error;
565
+ }
566
+ }
567
+ /**
568
+ * Drops all indexes from the collection, except for the index on _id.
569
+ *
570
+ * @returns A promise that resolves to the result of the operation.
571
+ */
572
+ async dropIndexes() {
573
+ await this.ensureTable();
574
+ try {
575
+ const indexes = await this.listIndexes().toArray();
576
+ let droppedCount = 0;
577
+ for (const index of indexes) {
578
+ // Skip primary key index on _id if it exists
579
+ if (index.name === `sqlite_autoindex_${this.name}_1`)
580
+ continue;
581
+ await this.db.exec(`DROP INDEX IF EXISTS "${index.name}"`);
582
+ droppedCount++;
583
+ }
584
+ return { acknowledged: true, droppedCount };
585
+ }
586
+ catch (error) {
587
+ console.error(`Error dropping indexes from collection ${this.name}:`, error);
588
+ throw error;
589
+ }
590
+ }
591
+ /**
592
+ * Prepends '$.' to the path for SQLite JSON functions.
593
+ * @private
594
+ * @param path Field path, e.g., 'address.city'
595
+ * @returns JSON path string for SQLite, e.g., '$.address.city'
596
+ */
597
+ parseJsonPath(path) {
598
+ // Prepends '$.' to the path for SQLite JSON functions.
599
+ // 'address.city' becomes '$.address.city'
600
+ return `'$.${path}'`;
601
+ }
446
602
  // Helper for $set, $inc to handle dot notation
447
603
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
448
604
  setNestedValue(obj, path, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
@@ -61,4 +61,15 @@ export declare class FindCursor<T extends DocumentWithId> {
61
61
  * @returns A promise that resolves to an array of documents.
62
62
  */
63
63
  toArray(): Promise<Partial<T>[]>;
64
+ /**
65
+ * Executes the query and returns the first matching document.
66
+ * @returns A promise that resolves to the first matching document or null if no matches are found.
67
+ * @throws Error if the query fails.
68
+ */
69
+ first(): Promise<Partial<T> | null>;
70
+ /**
71
+ * Executes the query and returns a count of matching documents.
72
+ * @returns A promise that resolves to the count of matching documents.
73
+ */
74
+ count(): Promise<number>;
64
75
  }
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Helper function to convert JavaScript values to SQLite-compatible values.
3
+ * This ensures that boolean values are converted to 0/1 integers that SQLite can handle.
4
+ * @param value The value to convert
5
+ * @returns A SQLite-compatible value
6
+ */
7
+ function toSQLiteValue(value) {
8
+ if (typeof value === 'boolean') {
9
+ return value ? 1 : 0;
10
+ }
11
+ return value;
12
+ }
1
13
  /**
2
14
  * Represents a cursor for find operations, allowing chaining of limit, skip, and sort.
3
15
  */
@@ -23,20 +35,22 @@ export class FindCursor {
23
35
  if (field === '_id' && elementPrefix === 'data') {
24
36
  switch (operator) {
25
37
  case '$eq':
26
- params.push(value);
38
+ params.push(toSQLiteValue(value));
27
39
  return '_id = ?';
28
40
  case '$ne':
29
- params.push(value);
41
+ params.push(toSQLiteValue(value));
30
42
  return '_id <> ?';
31
43
  case '$in':
32
44
  if (Array.isArray(value) && value.length > 0) {
33
- params.push(...value);
45
+ // Convert each value to SQLite-compatible type
46
+ params.push(...value.map((v) => toSQLiteValue(v)));
34
47
  return `_id IN (${value.map(() => '?').join(',')})`;
35
48
  }
36
49
  return '1=0'; // Empty array, nothing matches
37
50
  case '$nin':
38
51
  if (Array.isArray(value) && value.length > 0) {
39
- params.push(...value);
52
+ // Convert each value to SQLite-compatible type
53
+ params.push(...value.map((v) => toSQLiteValue(v)));
40
54
  return `_id NOT IN (${value.map(() => '?').join(',')})`;
41
55
  }
42
56
  return '1=1'; // Empty array, everything matches
@@ -55,40 +69,40 @@ export class FindCursor {
55
69
  return `${jsonPath} IS NULL`;
56
70
  }
57
71
  // Handle string matching for equality and array matching as par mongodb client
58
- params.push(value);
59
- params.push(value);
72
+ params.push(toSQLiteValue(value));
73
+ params.push(toSQLiteValue(value));
60
74
  return `(${jsonPath} = ? OR ${jsonPath} LIKE '%' || ? || '%')`; // For string matching
61
75
  case '$ne':
62
76
  if (value === null) {
63
77
  return `${jsonPath} IS NOT NULL`;
64
78
  }
65
- params.push(value);
79
+ params.push(toSQLiteValue(value));
66
80
  return `${jsonPath} != ?`;
67
81
  case '$gt':
68
- params.push(value);
82
+ params.push(toSQLiteValue(value));
69
83
  return `${jsonPath} > ?`;
70
84
  case '$gte':
71
- params.push(value);
85
+ params.push(toSQLiteValue(value));
72
86
  return `${jsonPath} >= ?`;
73
87
  case '$lt':
74
- params.push(value);
88
+ params.push(toSQLiteValue(value));
75
89
  return `${jsonPath} < ?`;
76
90
  case '$lte':
77
- params.push(value);
91
+ params.push(toSQLiteValue(value));
78
92
  return `${jsonPath} <= ?`;
79
93
  case '$exists':
80
94
  return value ? `${jsonPath} IS NOT NULL` : `${jsonPath} IS NULL`;
81
95
  case '$in':
82
96
  if (Array.isArray(value) && value.length > 0) {
83
97
  const conditions = value.map(() => `${jsonPath} = ?`).join(' OR ');
84
- params.push(...value);
98
+ params.push(...value.map((v) => toSQLiteValue(v)));
85
99
  return `(${conditions})`;
86
100
  }
87
101
  return '1=0'; // Empty array, nothing matches
88
102
  case '$nin':
89
103
  if (Array.isArray(value) && value.length > 0) {
90
104
  const conditions = value.map(() => `${jsonPath} != ?`).join(' AND ');
91
- params.push(...value);
105
+ params.push(...value.map((v) => toSQLiteValue(v)));
92
106
  return `(${conditions})`;
93
107
  }
94
108
  return '1=1'; // Empty array, everything matches
@@ -186,12 +200,17 @@ export class FindCursor {
186
200
  conditions.push(`NOT (${norConditions})`);
187
201
  }
188
202
  else if (key === '$not' && filter.$not) {
189
- const notClause = this.buildWhereClause(filter.$not, params);
203
+ // Create a nested filter with the $not contents
204
+ const nestedFilter = {
205
+ [Object.keys(filter.$not)[0]]: filter.$not[Object.keys(filter.$not)[0]],
206
+ };
207
+ const notClause = this.buildWhereClause(nestedFilter, params);
190
208
  conditions.push(`NOT (${notClause})`);
191
209
  }
192
210
  // Handle text search
193
211
  else if (key === '$text' && filter.$text) {
194
- const search = filter.$text.$search;
212
+ const textSearch = filter.$text;
213
+ const search = textSearch.$search;
195
214
  if (typeof search === 'string' && search.trim() !== '') {
196
215
  conditions.push(`data LIKE ?`);
197
216
  params.push(`%${search}%`); // Simple LIKE search
@@ -451,5 +470,24 @@ export class FindCursor {
451
470
  return this.applyProjection(doc);
452
471
  });
453
472
  }
473
+ /**
474
+ * Executes the query and returns the first matching document.
475
+ * @returns A promise that resolves to the first matching document or null if no matches are found.
476
+ * @throws Error if the query fails.
477
+ */
478
+ async first() {
479
+ const results = await this.limit(1).toArray();
480
+ return results.length > 0 ? results[0] : null;
481
+ }
482
+ /**
483
+ * Executes the query and returns a count of matching documents.
484
+ * @returns A promise that resolves to the count of matching documents.
485
+ */
486
+ async count() {
487
+ const whereClause = this.buildWhereClause({}, []);
488
+ const countSql = `SELECT COUNT(*) as count FROM "${this.collectionName}" WHERE ${whereClause}`;
489
+ const result = await this.db.get(countSql);
490
+ return result?.count ?? 0; // Return 0 if result is undefined
491
+ }
454
492
  }
455
493
  //# sourceMappingURL=findCursor.js.map
@@ -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,18 +1,21 @@
1
- import sqlite3 from 'sqlite3';
1
+ import Database from 'better-sqlite3';
2
+ import type { Statement } from 'better-sqlite3';
2
3
  export interface MongoLiteOptions {
3
4
  filePath: string;
4
5
  verbose?: boolean;
5
6
  readOnly?: boolean;
7
+ WAL?: boolean;
6
8
  }
7
9
  /**
8
- * SQLiteDB class provides a wrapper around the sqlite3 library
9
- * to simplify database operations using Promises.
10
+ * SQLiteDB class provides a wrapper around the better-sqlite3 library
11
+ * to simplify database operations.
10
12
  */
11
13
  export declare class SQLiteDB {
12
14
  private db;
13
15
  private readonly filePath;
14
16
  private readonly verbose;
15
17
  private readonly readOnly;
18
+ private readonly WAL;
16
19
  private openPromise;
17
20
  /**
18
21
  * Creates an instance of SQLiteDB.
@@ -28,7 +31,7 @@ export declare class SQLiteDB {
28
31
  /**
29
32
  * Ensures the database connection is open before performing an operation.
30
33
  * @private
31
- * @returns {Promise<Sqlite3Database>} The active database instance.
34
+ * @returns {Promise<Database.Database>} The active database instance.
32
35
  * @throws {Error} If the database is not connected.
33
36
  */
34
37
  private ensureConnected;
@@ -36,9 +39,12 @@ export declare class SQLiteDB {
36
39
  * Executes a SQL query that does not return rows (e.g., INSERT, UPDATE, DELETE, CREATE).
37
40
  * @param {string} sql - The SQL query string.
38
41
  * @param {any[]} [params=[]] - Parameters for the SQL query.
39
- * @returns {Promise<sqlite3.RunResult>} Result of the execution (e.g., lastID, changes).
42
+ * @returns {Promise<{ lastID: number, changes: number }>} Result of the execution.
40
43
  */
41
- run(sql: string, params?: unknown[]): Promise<sqlite3.RunResult>;
44
+ run(sql: string, params?: unknown[]): Promise<{
45
+ lastID: number;
46
+ changes: number;
47
+ }>;
42
48
  /**
43
49
  * Executes a SQL query that returns a single row.
44
50
  * @param {string} sql - The SQL query string.
@@ -65,10 +71,31 @@ export declare class SQLiteDB {
65
71
  */
66
72
  close(): Promise<void>;
67
73
  /**
68
- * Gets the underlying sqlite3.Database instance.
74
+ * Gets the underlying better-sqlite3 Database instance.
69
75
  * Useful for operations not covered by this wrapper, like transactions.
70
- * @returns {Promise<sqlite3.Database>} The raw database object.
76
+ * @returns {Promise<Database.Database>} The raw database object.
71
77
  * @throws {Error} If the database is not connected.
72
78
  */
73
- getDbInstance(): Promise<sqlite3.Database>;
79
+ getDbInstance(): Promise<Database.Database>;
80
+ /**
81
+ * Prepares a SQL statement for later execution.
82
+ * @param {string} sql - The SQL query string.
83
+ * @returns {Promise<Statement>} A prepared statement that can be executed multiple times.
84
+ */
85
+ prepare(sql: string): Promise<Statement>;
86
+ /**
87
+ * Begins a transaction.
88
+ * @returns {Promise<void>}
89
+ */
90
+ beginTransaction(): Promise<void>;
91
+ /**
92
+ * Commits a transaction.
93
+ * @returns {Promise<void>}
94
+ */
95
+ commitTransaction(): Promise<void>;
96
+ /**
97
+ * Rolls back a transaction.
98
+ * @returns {Promise<void>}
99
+ */
100
+ rollbackTransaction(): Promise<void>;
74
101
  }
package/dist/db.js CHANGED
@@ -1,8 +1,7 @@
1
- import sqlite3 from 'sqlite3';
2
- import { promisify } from 'util';
1
+ import Database from 'better-sqlite3';
3
2
  /**
4
- * SQLiteDB class provides a wrapper around the sqlite3 library
5
- * to simplify database operations using Promises.
3
+ * SQLiteDB class provides a wrapper around the better-sqlite3 library
4
+ * to simplify database operations.
6
5
  */
7
6
  export class SQLiteDB {
8
7
  /**
@@ -17,14 +16,13 @@ export class SQLiteDB {
17
16
  this.filePath = dbPathOrOptions;
18
17
  this.verbose = false;
19
18
  this.readOnly = false;
19
+ this.WAL = false;
20
20
  }
21
21
  else {
22
22
  this.filePath = dbPathOrOptions.filePath;
23
23
  this.verbose = dbPathOrOptions.verbose || false;
24
24
  this.readOnly = dbPathOrOptions.readOnly || false;
25
- }
26
- if (this.verbose) {
27
- sqlite3.verbose();
25
+ this.WAL = dbPathOrOptions.WAL || true;
28
26
  }
29
27
  }
30
28
  /**
@@ -40,37 +38,34 @@ export class SQLiteDB {
40
38
  return Promise.resolve();
41
39
  }
42
40
  this.openPromise = new Promise((resolve, reject) => {
43
- const mode = this.readOnly
44
- ? sqlite3.OPEN_READONLY
45
- : sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE;
46
- this.db = new sqlite3.Database(this.filePath, mode, (err) => {
47
- if (err) {
48
- console.error(`Error opening database ${this.filePath}:`, err.message);
49
- this.db = null; // Ensure db is null on error
50
- this.openPromise = null;
51
- return reject(err);
41
+ try {
42
+ const options = {
43
+ readonly: this.readOnly,
44
+ verbose: this.verbose ? console.log : undefined,
45
+ };
46
+ this.db = new Database(this.filePath, options);
47
+ // Enable Write-Ahead Logging if requested
48
+ if (this.WAL && !this.readOnly) {
49
+ this.db.pragma('journal_mode = WAL');
52
50
  }
53
51
  if (this.verbose) {
54
52
  console.log(`SQLite database opened: ${this.filePath}`);
55
53
  }
56
- // Promisify methods for the current db instance
57
- if (this.db) {
58
- // Use explicit type casting to ensure proper TypeScript types
59
- this.db.getAsync = promisify(this.db.get).bind(this.db);
60
- this.db.runAsync = promisify(this.db.run).bind(this.db);
61
- this.db.allAsync = promisify(this.db.all).bind(this.db);
62
- this.db.closeAsync = promisify(this.db.close).bind(this.db);
63
- this.db.execAsync = promisify(this.db.exec).bind(this.db);
64
- }
65
54
  resolve();
66
- });
55
+ }
56
+ catch (err) {
57
+ console.error(`Error opening database ${this.filePath}:`, err.message);
58
+ this.db = null;
59
+ this.openPromise = null;
60
+ reject(err);
61
+ }
67
62
  });
68
63
  return this.openPromise;
69
64
  }
70
65
  /**
71
66
  * Ensures the database connection is open before performing an operation.
72
67
  * @private
73
- * @returns {Promise<Sqlite3Database>} The active database instance.
68
+ * @returns {Promise<Database.Database>} The active database instance.
74
69
  * @throws {Error} If the database is not connected.
75
70
  */
76
71
  async ensureConnected() {
@@ -90,13 +85,21 @@ export class SQLiteDB {
90
85
  * Executes a SQL query that does not return rows (e.g., INSERT, UPDATE, DELETE, CREATE).
91
86
  * @param {string} sql - The SQL query string.
92
87
  * @param {any[]} [params=[]] - Parameters for the SQL query.
93
- * @returns {Promise<sqlite3.RunResult>} Result of the execution (e.g., lastID, changes).
88
+ * @returns {Promise<{ lastID: number, changes: number }>} Result of the execution.
94
89
  */
95
90
  async run(sql, params = []) {
96
91
  const dbInstance = await this.ensureConnected();
97
- if (!dbInstance.runAsync)
98
- throw new Error('runAsync not initialized');
99
- return dbInstance.runAsync(sql, params);
92
+ try {
93
+ const result = dbInstance.prepare(sql).run(...params);
94
+ return {
95
+ lastID: result.lastInsertRowid,
96
+ changes: result.changes,
97
+ };
98
+ }
99
+ catch (err) {
100
+ console.error(`Error running SQL: ${sql}`, err);
101
+ throw err;
102
+ }
100
103
  }
101
104
  /**
102
105
  * Executes a SQL query that returns a single row.
@@ -106,9 +109,13 @@ export class SQLiteDB {
106
109
  */
107
110
  async get(sql, params = []) {
108
111
  const dbInstance = await this.ensureConnected();
109
- if (!dbInstance.getAsync)
110
- throw new Error('getAsync not initialized');
111
- return dbInstance.getAsync(sql, params);
112
+ try {
113
+ return dbInstance.prepare(sql).get(...params);
114
+ }
115
+ catch (err) {
116
+ console.error(`Error getting SQL: ${sql}`, err);
117
+ throw err;
118
+ }
112
119
  }
113
120
  /**
114
121
  * Executes a SQL query that returns multiple rows.
@@ -118,9 +125,13 @@ export class SQLiteDB {
118
125
  */
119
126
  async all(sql, params = []) {
120
127
  const dbInstance = await this.ensureConnected();
121
- if (!dbInstance.allAsync)
122
- throw new Error('allAsync not initialized');
123
- return dbInstance.allAsync(sql, params);
128
+ try {
129
+ return dbInstance.prepare(sql).all(...params);
130
+ }
131
+ catch (err) {
132
+ console.error(`Error getting all SQL: ${sql}`, err);
133
+ throw err;
134
+ }
124
135
  }
125
136
  /**
126
137
  * Executes multiple SQL statements.
@@ -129,9 +140,14 @@ export class SQLiteDB {
129
140
  */
130
141
  async exec(sql) {
131
142
  const dbInstance = await this.ensureConnected();
132
- if (!dbInstance.execAsync)
133
- throw new Error('execAsync not initialized');
134
- return dbInstance.execAsync(sql);
143
+ try {
144
+ dbInstance.exec(sql);
145
+ return Promise.resolve();
146
+ }
147
+ catch (err) {
148
+ console.error(`Error executing SQL: ${sql}`, err);
149
+ throw err;
150
+ }
135
151
  }
136
152
  /**
137
153
  * Closes the database connection.
@@ -141,9 +157,9 @@ export class SQLiteDB {
141
157
  if (this.openPromise) {
142
158
  await this.openPromise; // Ensure any pending connection attempt is finished
143
159
  }
144
- if (this.db && this.db.closeAsync) {
160
+ if (this.db) {
145
161
  try {
146
- await this.db.closeAsync();
162
+ this.db.close();
147
163
  if (this.verbose) {
148
164
  console.log(`SQLite database closed: ${this.filePath}`);
149
165
  }
@@ -164,13 +180,49 @@ export class SQLiteDB {
164
180
  }
165
181
  }
166
182
  /**
167
- * Gets the underlying sqlite3.Database instance.
183
+ * Gets the underlying better-sqlite3 Database instance.
168
184
  * Useful for operations not covered by this wrapper, like transactions.
169
- * @returns {Promise<sqlite3.Database>} The raw database object.
185
+ * @returns {Promise<Database.Database>} The raw database object.
170
186
  * @throws {Error} If the database is not connected.
171
187
  */
172
188
  async getDbInstance() {
173
189
  return this.ensureConnected();
174
190
  }
191
+ /**
192
+ * Prepares a SQL statement for later execution.
193
+ * @param {string} sql - The SQL query string.
194
+ * @returns {Promise<Statement>} A prepared statement that can be executed multiple times.
195
+ */
196
+ async prepare(sql) {
197
+ const dbInstance = await this.ensureConnected();
198
+ return dbInstance.prepare(sql);
199
+ }
200
+ /**
201
+ * Begins a transaction.
202
+ * @returns {Promise<void>}
203
+ */
204
+ async beginTransaction() {
205
+ const dbInstance = await this.ensureConnected();
206
+ dbInstance.prepare('BEGIN').run();
207
+ return Promise.resolve();
208
+ }
209
+ /**
210
+ * Commits a transaction.
211
+ * @returns {Promise<void>}
212
+ */
213
+ async commitTransaction() {
214
+ const dbInstance = await this.ensureConnected();
215
+ dbInstance.prepare('COMMIT').run();
216
+ return Promise.resolve();
217
+ }
218
+ /**
219
+ * Rolls back a transaction.
220
+ * @returns {Promise<void>}
221
+ */
222
+ async rollbackTransaction() {
223
+ const dbInstance = await this.ensureConnected();
224
+ dbInstance.prepare('ROLLBACK').run();
225
+ return Promise.resolve();
226
+ }
175
227
  }
176
228
  //# sourceMappingURL=db.js.map
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export interface DocumentWithId {
5
5
  _id?: string;
6
- [key: string]: any;
6
+ [key: string]: unknown;
7
7
  }
8
8
  /**
9
9
  * Result of insertOne operation.
@@ -52,6 +52,12 @@ export interface LogicalOperators<T> {
52
52
  $or?: Filter<T>[];
53
53
  $nor?: Filter<T>[];
54
54
  }
55
+ /**
56
+ * Text search operator for full-text search.
57
+ */
58
+ export interface TextSearchOperator {
59
+ $search: string;
60
+ }
55
61
  /**
56
62
  * Filter type for querying documents.
57
63
  * T is the document type.
@@ -59,8 +65,10 @@ export interface LogicalOperators<T> {
59
65
  export type Filter<T> = {
60
66
  [P in keyof T]?: T[P] | QueryOperators<T[P]>;
61
67
  } & {
62
- [key: string]: any;
63
- } & Partial<LogicalOperators<T>>;
68
+ [key: string]: unknown;
69
+ } & Partial<LogicalOperators<T>> & {
70
+ $text?: TextSearchOperator;
71
+ };
64
72
  /**
65
73
  * Operators for updating documents.
66
74
  * T is the document type.
@@ -69,7 +77,7 @@ export interface UpdateOperators<T> {
69
77
  $set?: {
70
78
  [P in keyof T]?: T[P];
71
79
  } & {
72
- [key: string]: any;
80
+ [key: string]: unknown;
73
81
  };
74
82
  $unset?: {
75
83
  [P in keyof T]?: '';
@@ -82,18 +90,18 @@ export interface UpdateOperators<T> {
82
90
  [key: string]: number;
83
91
  };
84
92
  $push?: {
85
- [P in keyof T]?: any | {
86
- $each: any[];
93
+ [P in keyof T]?: unknown | {
94
+ $each: unknown[];
87
95
  };
88
96
  } & {
89
- [key: string]: any | {
90
- $each: any[];
97
+ [key: string]: unknown | {
98
+ $each: unknown[];
91
99
  };
92
100
  };
93
101
  $pull?: {
94
- [P in keyof T]?: any;
102
+ [P in keyof T]?: unknown;
95
103
  } & {
96
- [key: string]: any;
104
+ [key: string]: unknown;
97
105
  };
98
106
  }
99
107
  /**
@@ -123,3 +131,78 @@ export interface SQLiteRow {
123
131
  _id: string;
124
132
  data: string;
125
133
  }
134
+ /**
135
+ * Index specification type.
136
+ * Specifies fields to index and their sort order (1 for ascending, -1 for descending).
137
+ */
138
+ export type IndexSpecification = {
139
+ [key: string]: 1 | -1 | string;
140
+ };
141
+ /**
142
+ * Options for createIndex.
143
+ */
144
+ export interface CreateIndexOptions {
145
+ /**
146
+ * Unique index flag. If true, the index will enforce uniqueness of the indexed field.
147
+ */
148
+ unique?: boolean;
149
+ /**
150
+ * Name of the index. If not specified, a name will be generated.
151
+ */
152
+ name?: string;
153
+ /**
154
+ * If true, create the index in the background and don't block other operations.
155
+ * In SQLite this might not make a significant difference.
156
+ */
157
+ background?: boolean;
158
+ /**
159
+ * If true, MongoDB will ignore any duplicate values when creating a unique index.
160
+ * Not directly applicable to SQLite, but retained for API compatibility.
161
+ */
162
+ sparse?: boolean;
163
+ }
164
+ /**
165
+ * Result of createIndex operation.
166
+ */
167
+ export interface CreateIndexResult {
168
+ /**
169
+ * Indicates whether the index creation operation was acknowledged.
170
+ */
171
+ acknowledged: boolean;
172
+ /**
173
+ * The name of the created index.
174
+ */
175
+ name: string;
176
+ }
177
+ /**
178
+ * Result of dropIndex operation.
179
+ */
180
+ export interface DropIndexResult {
181
+ /**
182
+ * Indicates whether the index deletion operation was acknowledged.
183
+ */
184
+ acknowledged: boolean;
185
+ /**
186
+ * The name of the dropped index.
187
+ */
188
+ name: string;
189
+ }
190
+ /**
191
+ * Result of a listIndexes operation.
192
+ */
193
+ export interface IndexInfo {
194
+ /**
195
+ * Name of the index.
196
+ */
197
+ name: string;
198
+ /**
199
+ * The fields this index is defined on.
200
+ */
201
+ key: {
202
+ [key: string]: number;
203
+ };
204
+ /**
205
+ * Whether this index enforces uniqueness.
206
+ */
207
+ unique?: boolean;
208
+ }
@@ -0,0 +1,4 @@
1
+ export declare function extractRawIndexColumns(sql: any): {
2
+ column: string;
3
+ direction: string | null;
4
+ }[];
@@ -0,0 +1,43 @@
1
+ export function extractRawIndexColumns(sql) {
2
+ const match = sql.match(/\(([\s\S]+)\)/); // allow multiline matching
3
+ if (!match)
4
+ return [];
5
+ const colsPart = match[1];
6
+ // Split on commas not inside parentheses
7
+ const columns = [];
8
+ let current = '';
9
+ let parens = 0;
10
+ for (let i = 0; i < colsPart.length; i++) {
11
+ const char = colsPart[i];
12
+ if (char === '(')
13
+ parens++;
14
+ if (char === ')')
15
+ parens--;
16
+ if (char === ',' && parens === 0) {
17
+ columns.push(current.trim());
18
+ current = '';
19
+ }
20
+ else {
21
+ current += char;
22
+ }
23
+ }
24
+ if (current.trim())
25
+ columns.push(current.trim());
26
+ return columns.map((col) => {
27
+ // Extract direction (ASC or DESC)
28
+ const directionMatch = col.match(/\s+(ASC|DESC)\s*$/i);
29
+ const direction = directionMatch ? directionMatch[1].toUpperCase() : null;
30
+ // Remove direction from column string
31
+ const colWithoutDirection = directionMatch
32
+ ? col.slice(0, directionMatch.index).trim()
33
+ : col.trim();
34
+ // Check for json_extract and pull out path
35
+ const jsonMatch = colWithoutDirection.match(/json_extract\s*\(\s*[^,]+,\s*'([^']+)'\s*\)/i);
36
+ let column = jsonMatch
37
+ ? jsonMatch[1] // the JSON path like '$.age'
38
+ : colWithoutDirection; // fallback to raw column like testCol
39
+ column = column.replace('$.', ''); // Remove leading $ if present
40
+ return { column, direction };
41
+ });
42
+ }
43
+ //# sourceMappingURL=indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/utils/indexing.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,GAAG;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,2BAA2B;IACrE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1B,yCAAyC;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,kCAAkC;QAClC,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1E,sCAAsC;QACtC,MAAM,mBAAmB,GAAG,cAAc;YACxC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YAC3C,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEf,2CAA2C;QAC3C,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC5F,IAAI,MAAM,GAAG,SAAS;YACpB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,6BAA6B;YAC5C,CAAC,CAAC,mBAAmB,CAAC,CAAC,sCAAsC;QAE/D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;QACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongolite-ts",
3
- "version": "0.1.28",
3
+ "version": "0.2.3",
4
4
  "description": "A MongoDB-like client using SQLite as a persistent store, written in TypeScript.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "homepage": "https://github.com/semics-tech/mongolite-ts#readme",
38
38
  "devDependencies": {
39
+ "@types/better-sqlite3": "^7.6.13",
39
40
  "@types/node": "^20.17.57",
40
- "@types/sqlite3": "^3.1.11",
41
41
  "@typescript-eslint/eslint-plugin": "^7.9.0",
42
42
  "@typescript-eslint/parser": "^7.9.0",
43
43
  "c8": "^9.1.0",
@@ -51,8 +51,8 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@types/uuid": "^9.0.8",
54
+ "better-sqlite3": "^12.1.1",
54
55
  "bson": "^6.10.4",
55
- "sqlite3": "^5.1.7",
56
56
  "uuid": "^9.0.1"
57
57
  },
58
58
  "files": [