@symbiote-native/sqlite 0.1.0
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/LICENSE +21 -0
- package/README.md +283 -0
- package/build/angular/index.d.ts +2 -0
- package/build/angular/index.js +2 -0
- package/build/angular/sqlite.service.d.ts +41 -0
- package/build/angular/sqlite.service.js +127 -0
- package/build/core/index.d.ts +10 -0
- package/build/core/index.js +6 -0
- package/build/core/native-database.d.ts +65 -0
- package/build/core/native-database.js +13 -0
- package/build/core/native-module.d.ts +25 -0
- package/build/core/native-module.js +17 -0
- package/build/core/native-session.d.ts +20 -0
- package/build/core/native-session.js +1 -0
- package/build/core/native-statement.d.ts +45 -0
- package/build/core/native-statement.js +6 -0
- package/build/core/param-utils.d.ts +28 -0
- package/build/core/param-utils.js +126 -0
- package/build/core/path-utils.d.ts +6 -0
- package/build/core/path-utils.js +29 -0
- package/build/core/query-utils.d.ts +17 -0
- package/build/core/query-utils.js +37 -0
- package/build/core/sqlite-database.d.ts +246 -0
- package/build/core/sqlite-database.js +427 -0
- package/build/core/sqlite-session.d.ts +84 -0
- package/build/core/sqlite-session.js +121 -0
- package/build/core/sqlite-statement.d.ts +96 -0
- package/build/core/sqlite-statement.js +321 -0
- package/build/core/sqlite-tagged-query.d.ts +73 -0
- package/build/core/sqlite-tagged-query.js +119 -0
- package/build/core/storage.d.ts +107 -0
- package/build/core/storage.js +382 -0
- package/build/core/types.d.ts +30 -0
- package/build/core/types.js +1 -0
- package/build/react/index.d.ts +2 -0
- package/build/react/index.js +2 -0
- package/build/react/sqlite-context.d.ts +25 -0
- package/build/react/sqlite-context.js +129 -0
- package/build/solid/index.d.ts +2 -0
- package/build/solid/index.js +2 -0
- package/build/solid/sqlite-context.d.ts +23 -0
- package/build/solid/sqlite-context.js +106 -0
- package/build/svelte/SQLiteProvider.svelte +88 -0
- package/build/svelte/SQLiteProvider.svelte.d.ts +13 -0
- package/build/svelte/index.d.ts +3 -0
- package/build/svelte/index.js +5 -0
- package/build/svelte/sqlite-context.d.ts +11 -0
- package/build/svelte/sqlite-context.js +23 -0
- package/build/vue/index.d.ts +2 -0
- package/build/vue/index.js +2 -0
- package/build/vue/sqlite-context.d.ts +21 -0
- package/build/vue/sqlite-context.js +69 -0
- package/build-ngc/angular/index.d.ts +2 -0
- package/build-ngc/angular/index.js +3 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/angular/sqlite.service.d.ts +44 -0
- package/build-ngc/angular/sqlite.service.js +85 -0
- package/build-ngc/angular/sqlite.service.js.map +1 -0
- package/build-ngc/core/index.d.ts +10 -0
- package/build-ngc/core/index.js +7 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/native-database.d.ts +65 -0
- package/build-ngc/core/native-database.js +14 -0
- package/build-ngc/core/native-database.js.map +1 -0
- package/build-ngc/core/native-module.d.ts +25 -0
- package/build-ngc/core/native-module.js +18 -0
- package/build-ngc/core/native-module.js.map +1 -0
- package/build-ngc/core/native-session.d.ts +20 -0
- package/build-ngc/core/native-session.js +2 -0
- package/build-ngc/core/native-session.js.map +1 -0
- package/build-ngc/core/native-statement.d.ts +45 -0
- package/build-ngc/core/native-statement.js +7 -0
- package/build-ngc/core/native-statement.js.map +1 -0
- package/build-ngc/core/param-utils.d.ts +28 -0
- package/build-ngc/core/param-utils.js +127 -0
- package/build-ngc/core/param-utils.js.map +1 -0
- package/build-ngc/core/path-utils.d.ts +6 -0
- package/build-ngc/core/path-utils.js +30 -0
- package/build-ngc/core/path-utils.js.map +1 -0
- package/build-ngc/core/query-utils.d.ts +17 -0
- package/build-ngc/core/query-utils.js +38 -0
- package/build-ngc/core/query-utils.js.map +1 -0
- package/build-ngc/core/sqlite-database.d.ts +246 -0
- package/build-ngc/core/sqlite-database.js +428 -0
- package/build-ngc/core/sqlite-database.js.map +1 -0
- package/build-ngc/core/sqlite-session.d.ts +84 -0
- package/build-ngc/core/sqlite-session.js +122 -0
- package/build-ngc/core/sqlite-session.js.map +1 -0
- package/build-ngc/core/sqlite-statement.d.ts +96 -0
- package/build-ngc/core/sqlite-statement.js +322 -0
- package/build-ngc/core/sqlite-statement.js.map +1 -0
- package/build-ngc/core/sqlite-tagged-query.d.ts +73 -0
- package/build-ngc/core/sqlite-tagged-query.js +120 -0
- package/build-ngc/core/sqlite-tagged-query.js.map +1 -0
- package/build-ngc/core/storage.d.ts +107 -0
- package/build-ngc/core/storage.js +383 -0
- package/build-ngc/core/storage.js.map +1 -0
- package/build-ngc/core/types.d.ts +30 -0
- package/build-ngc/core/types.js +2 -0
- package/build-ngc/core/types.js.map +1 -0
- package/native-link.json +12 -0
- package/package.json +141 -0
- package/src/angular/index.ts +2 -0
- package/src/angular/sqlite.service.ts +114 -0
- package/src/core/index.ts +40 -0
- package/src/core/native-database.ts +118 -0
- package/src/core/native-module.ts +57 -0
- package/src/core/native-session.ts +64 -0
- package/src/core/native-statement.ts +85 -0
- package/src/core/param-utils.ts +163 -0
- package/src/core/path-utils.ts +38 -0
- package/src/core/query-utils.ts +45 -0
- package/src/core/sqlite-database.ts +676 -0
- package/src/core/sqlite-session.ts +165 -0
- package/src/core/sqlite-statement.ts +578 -0
- package/src/core/sqlite-tagged-query.ts +160 -0
- package/src/core/storage.ts +492 -0
- package/src/core/types.ts +33 -0
- package/src/react/index.ts +2 -0
- package/src/react/sqlite-context.tsx +244 -0
- package/src/solid/index.ts +2 -0
- package/src/solid/sqlite-context.ts +156 -0
- package/src/svelte/SQLiteProvider.svelte +88 -0
- package/src/svelte/index.ts +6 -0
- package/src/svelte/sqlite-context.ts +32 -0
- package/src/svelte/svelte-compile.test-helper.ts +135 -0
- package/src/vue/index.ts +2 -0
- package/src/vue/sqlite-context.ts +105 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// Ported from expo-sqlite's SQLiteSession.ts (.vendors/expo @ origin/sdk-57,
|
|
2
|
+
// packages/expo-sqlite/src/SQLiteSession.ts), renamed with this repo's `I`-prefix convention.
|
|
3
|
+
import type { NativeDatabase } from './native-database';
|
|
4
|
+
import type { NativeSession, IChangeset } from './native-session';
|
|
5
|
+
|
|
6
|
+
export type { IChangeset };
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* An instance of the SQLite session extension.
|
|
10
|
+
* @see [Session Extension](https://www.sqlite.org/sessionintro.html)
|
|
11
|
+
*/
|
|
12
|
+
export class SQLiteSession {
|
|
13
|
+
constructor(
|
|
14
|
+
private readonly nativeDatabase: NativeDatabase,
|
|
15
|
+
private readonly nativeSession: NativeSession,
|
|
16
|
+
) {}
|
|
17
|
+
|
|
18
|
+
//#region Asynchronous API
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Attaches a table to the session.
|
|
22
|
+
* @see [`sqlite3session_attach`](https://www.sqlite.org/session/sqlite3session_attach.html)
|
|
23
|
+
* @param table The table to attach. `null` attaches all tables.
|
|
24
|
+
*/
|
|
25
|
+
public attachAsync(table: string | null): Promise<void> {
|
|
26
|
+
return this.nativeSession.attachAsync(this.nativeDatabase, table);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Enables or disables the session.
|
|
31
|
+
* @see [`sqlite3session_enable`](https://www.sqlite.org/session/sqlite3session_enable.html)
|
|
32
|
+
*/
|
|
33
|
+
public enableAsync(enabled: boolean): Promise<void> {
|
|
34
|
+
return this.nativeSession.enableAsync(this.nativeDatabase, enabled);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Closes the session.
|
|
39
|
+
* @see [`sqlite3session_delete`](https://www.sqlite.org/session/sqlite3session_delete.html)
|
|
40
|
+
*/
|
|
41
|
+
public closeAsync(): Promise<void> {
|
|
42
|
+
return this.nativeSession.closeAsync(this.nativeDatabase);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates a changeset.
|
|
47
|
+
* @see [`sqlite3session_changeset`](https://www.sqlite.org/session/sqlite3session_changeset.html)
|
|
48
|
+
*/
|
|
49
|
+
public async createChangesetAsync(): Promise<IChangeset> {
|
|
50
|
+
const changesetBuffer = await this.nativeSession.createChangesetAsync(
|
|
51
|
+
this.nativeDatabase,
|
|
52
|
+
);
|
|
53
|
+
return new Uint8Array(changesetBuffer);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Creates an inverted changeset — shorthand for `createChangesetAsync()` +
|
|
58
|
+
* `invertChangesetAsync()`.
|
|
59
|
+
*/
|
|
60
|
+
public async createInvertedChangesetAsync(): Promise<IChangeset> {
|
|
61
|
+
const changesetBuffer =
|
|
62
|
+
await this.nativeSession.createInvertedChangesetAsync(
|
|
63
|
+
this.nativeDatabase,
|
|
64
|
+
);
|
|
65
|
+
return new Uint8Array(changesetBuffer);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Applies a changeset.
|
|
70
|
+
* @see [`sqlite3changeset_apply`](https://www.sqlite.org/session/sqlite3changeset_apply.html)
|
|
71
|
+
*/
|
|
72
|
+
public applyChangesetAsync(changeset: IChangeset): Promise<void> {
|
|
73
|
+
return this.nativeSession.applyChangesetAsync(
|
|
74
|
+
this.nativeDatabase,
|
|
75
|
+
changeset,
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Inverts a changeset.
|
|
81
|
+
* @see [`sqlite3changeset_invert`](https://www.sqlite.org/session/sqlite3changeset_invert.html)
|
|
82
|
+
*/
|
|
83
|
+
public async invertChangesetAsync(
|
|
84
|
+
changeset: IChangeset,
|
|
85
|
+
): Promise<IChangeset> {
|
|
86
|
+
const changesetBuffer = await this.nativeSession.invertChangesetAsync(
|
|
87
|
+
this.nativeDatabase,
|
|
88
|
+
changeset,
|
|
89
|
+
);
|
|
90
|
+
return new Uint8Array(changesetBuffer);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
//#endregion
|
|
94
|
+
|
|
95
|
+
//#region Synchronous API
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Attaches a table to the session.
|
|
99
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
100
|
+
*/
|
|
101
|
+
public attachSync(table: string | null): void {
|
|
102
|
+
this.nativeSession.attachSync(this.nativeDatabase, table);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Enables or disables the session.
|
|
107
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
108
|
+
*/
|
|
109
|
+
public enableSync(enabled: boolean): void {
|
|
110
|
+
this.nativeSession.enableSync(this.nativeDatabase, enabled);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Closes the session.
|
|
115
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
116
|
+
*/
|
|
117
|
+
public closeSync(): void {
|
|
118
|
+
this.nativeSession.closeSync(this.nativeDatabase);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Creates a changeset.
|
|
123
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
124
|
+
*/
|
|
125
|
+
public createChangesetSync(): IChangeset {
|
|
126
|
+
const changesetBuffer = this.nativeSession.createChangesetSync(
|
|
127
|
+
this.nativeDatabase,
|
|
128
|
+
);
|
|
129
|
+
return new Uint8Array(changesetBuffer);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Creates an inverted changeset — shorthand for `createChangesetSync()` +
|
|
134
|
+
* `invertChangesetSync()`.
|
|
135
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
136
|
+
*/
|
|
137
|
+
public createInvertedChangesetSync(): IChangeset {
|
|
138
|
+
const changesetBuffer = this.nativeSession.createInvertedChangesetSync(
|
|
139
|
+
this.nativeDatabase,
|
|
140
|
+
);
|
|
141
|
+
return new Uint8Array(changesetBuffer);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Applies a changeset.
|
|
146
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
147
|
+
*/
|
|
148
|
+
public applyChangesetSync(changeset: IChangeset): void {
|
|
149
|
+
this.nativeSession.applyChangesetSync(this.nativeDatabase, changeset);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Inverts a changeset.
|
|
154
|
+
* > **Note:** Running heavy tasks with this function can block the JavaScript thread.
|
|
155
|
+
*/
|
|
156
|
+
public invertChangesetSync(changeset: IChangeset): IChangeset {
|
|
157
|
+
const changesetBuffer = this.nativeSession.invertChangesetSync(
|
|
158
|
+
this.nativeDatabase,
|
|
159
|
+
changeset,
|
|
160
|
+
);
|
|
161
|
+
return new Uint8Array(changesetBuffer);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
}
|