Skip to content

Commit 7cc3a32

Browse files
committed
[persisters] Sqlite3Persister
1 parent 0222465 commit 7cc3a32

File tree

4 files changed

+60
-11
lines changed

4 files changed

+60
-11
lines changed

src/persisters/persister-sqlite3.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import {DatabasePersisterConfig, Persister} from '../types/persisters';
1+
import {
2+
Sqlite3Persister,
3+
createSqlite3Persister as createSqlite3PersisterDecl,
4+
} from '../types/persisters/persister-sqlite3';
25
import {UpdateListener, createSqlitePersister} from './sqlite/create';
36
import {Database} from 'sqlite3';
7+
import {DatabasePersisterConfig} from '../types/persisters';
48
import {IdObj} from '../common/obj';
59
import {Store} from '../types/store';
6-
import {createSqlite3Persister as createSqlite3PersisterDecl} from '../types/persisters/persister-sqlite3';
710
import {promiseNew} from '../common/other';
811

912
const CHANGE = 'change';
@@ -16,7 +19,7 @@ export const createSqlite3Persister = ((
1619
configOrStoreTableName?: DatabasePersisterConfig | string,
1720
onSqlCommand?: (sql: string, args?: any[]) => void,
1821
onIgnoredError?: (error: any) => void,
19-
): Persister =>
22+
): Sqlite3Persister =>
2023
createSqlitePersister(
2124
store,
2225
configOrStoreTableName,
@@ -38,4 +41,4 @@ export const createSqlite3Persister = ((
3841
onSqlCommand,
3942
onIgnoredError,
4043
db,
41-
)) as typeof createSqlite3PersisterDecl;
44+
) as Sqlite3Persister) as typeof createSqlite3PersisterDecl;

src/types/docs/persisters/persister-sqlite3.js

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,39 @@
88
* @since v4.0.0
99
*/
1010
/// persister-sqlite3
11+
/**
12+
* The Sqlite3Persister interface is a minor extension to the Persister
13+
* interface.
14+
*
15+
* It simply provides an extra getDb method for accessing a reference to the
16+
* database instance the Store is being persisted to.
17+
* @since v4.3.14
18+
*/
19+
/// Sqlite3Persister
20+
{
21+
/**
22+
* The getDb method returns a reference to the database instance the Store is
23+
* being persisted to.
24+
* @returns A reference to the database instance.
25+
* @example
26+
* This example creates a Persister object against a newly-created Store and
27+
* then gets the database instance back out again.
28+
*
29+
* ```js
30+
* const db = new sqlite3.Database(':memory:');
31+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
32+
* const persister = createSqlite3Persister(store, db, 'my_tinybase');
33+
*
34+
* console.log(persister.getDb() == db);
35+
* // -> true
36+
*
37+
* persister.destroy();
38+
* ```
39+
* @category Getter
40+
* @since v4.3.14
41+
*/
42+
/// Sqlite3Persister.getDb
43+
}
1144
/**
1245
* The createSqlite3Persister function creates a Persister object that can
1346
* persist the Store to a local SQLite database (in an appropriate environment).
@@ -38,11 +71,11 @@
3871
* @param onIgnoredError An optional handler for the errors that the Persister
3972
* would otherwise ignore when trying to save or load data. This is suitable for
4073
* debugging persistence issues in a development environment, since v4.0.4.
41-
* @returns A reference to the new Persister object.
74+
* @returns A reference to the new Sqlite3Persister object.
4275
* @example
43-
* This example creates a Persister object and persists the Store to a local
44-
* SQLite database as a JSON serialization into the `my_tinybase` table. It
45-
* makes a change to the database directly and then reloads it back into the
76+
* This example creates a Sqlite3Persister object and persists the Store to a
77+
* local SQLite database as a JSON serialization into the `my_tinybase` table.
78+
* It makes a change to the database directly and then reloads it back into the
4679
* Store.
4780
*
4881
* ```js
@@ -74,8 +107,8 @@
74107
* persister.destroy();
75108
* ```
76109
* @example
77-
* This example creates a Persister object and persists the Store to a local
78-
* SQLite database with tabular mapping.
110+
* This example creates a Sqlite3Persister object and persists the Store to a
111+
* local SQLite database with tabular mapping.
79112
*
80113
* ```js
81114
* const db = new sqlite3.Database(':memory:');

src/types/persisters/persister-sqlite3.d.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,17 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
44
import {Database} from 'sqlite3';
55
import {Store} from '../store';
66

7+
/// Sqlite3Persister
8+
export interface Sqlite3Persister extends Persister {
9+
/// Sqlite3Persister.getDb
10+
getDb: () => Database;
11+
}
12+
713
/// createSqlite3Persister
814
export function createSqlite3Persister(
915
store: Store,
1016
db: Database,
1117
configOrStoreTableName?: DatabasePersisterConfig | string,
1218
onSqlCommand?: (sql: string, args?: any[]) => void,
1319
onIgnoredError?: (error: any) => void,
14-
): Persister;
20+
): Sqlite3Persister;

src/types/with-schemas/persisters/persister-sqlite3.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
44
import {OptionalSchemas, Store} from '../store';
55
import {Database} from 'sqlite3';
66

7+
/// Sqlite3Persister
8+
export interface Sqlite3Persister<Schemas extends OptionalSchemas>
9+
extends Persister<Schemas> {
10+
/// Sqlite3Persister.getDb
11+
getDb: () => Database;
12+
}
13+
714
/// createSqlite3Persister
815
export function createSqlite3Persister<Schemas extends OptionalSchemas>(
916
store: Store<Schemas>,

0 commit comments

Comments
 (0)