@capacitor-community/sqlite 5.6.0 → 5.6.1-2
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/dist/esm/web.d.ts +0 -2
- package/dist/esm/web.js +56 -210
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +49 -519
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +49 -519
- package/dist/plugin.js.map +1 -1
- package/electron/dist/plugin.js +1 -1
- package/electron/dist/plugin.js.map +1 -1
- package/ios/Plugin/Utils/UtilsBinding.swift +25 -0
- package/package.json +2 -2
- package/src/web.ts +63 -209
- package/dist/esm/web-typeorm-utils/database.d.ts +0 -21
- package/dist/esm/web-typeorm-utils/database.js +0 -91
- package/dist/esm/web-typeorm-utils/database.js.map +0 -1
- package/dist/esm/web-typeorm-utils/utilsSQLite.d.ts +0 -28
- package/dist/esm/web-typeorm-utils/utilsSQLite.js +0 -233
- package/dist/esm/web-typeorm-utils/utilsSQLite.js.map +0 -1
- package/src/web-typeorm-utils/database.ts +0 -111
- package/src/web-typeorm-utils/utilsSQLite.ts +0 -249
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
/************************************************
|
|
2
|
-
* Only to be used to run TypeOrm Cli
|
|
3
|
-
* migration:generate
|
|
4
|
-
* A in-memory database is used
|
|
5
|
-
************************************************
|
|
6
|
-
*/
|
|
7
|
-
export class UtilsSQLite {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.isExists = false;
|
|
10
|
-
this.retExists = { isExists: false, pathWasm: '' };
|
|
11
|
-
this.initSqlJs = require('sql.js');
|
|
12
|
-
this.OS = require('os');
|
|
13
|
-
this.FS = require('fs');
|
|
14
|
-
this.Path = require('path');
|
|
15
|
-
}
|
|
16
|
-
getTypeOrmDBFolder() {
|
|
17
|
-
// Find the index of the "node_modules" string in the path
|
|
18
|
-
const nodeModulesIndex = __dirname.indexOf('node_modules');
|
|
19
|
-
// Extract the part of the path before "node_modules"
|
|
20
|
-
const outputPath = __dirname.slice(0, nodeModulesIndex);
|
|
21
|
-
// Extract the App name
|
|
22
|
-
const appName = this.Path.basename(outputPath);
|
|
23
|
-
// Get the Documents path
|
|
24
|
-
const documentsDirectory = this.Path.join(this.OS.homedir(), 'Documents');
|
|
25
|
-
// Add "CapacitorSQLite" and appName
|
|
26
|
-
const outputFolderPath = this.Path.join(documentsDirectory, 'CapacitorSQLite', appName);
|
|
27
|
-
// Ensure the output folder exists
|
|
28
|
-
this.FS.mkdirSync(outputFolderPath, { recursive: true });
|
|
29
|
-
return outputFolderPath;
|
|
30
|
-
}
|
|
31
|
-
getTypeOrmDBPath(outputFolderPath, dbName) {
|
|
32
|
-
return this.Path.resolve(outputFolderPath, dbName);
|
|
33
|
-
}
|
|
34
|
-
async checkFileExistence(wasmPath) {
|
|
35
|
-
// check if a public folder exists
|
|
36
|
-
const folder = (await this.checkFolderExistence('public'))
|
|
37
|
-
? 'public'
|
|
38
|
-
: 'src';
|
|
39
|
-
const pathWasm = this.Path.join(folder, wasmPath);
|
|
40
|
-
const retObj = {};
|
|
41
|
-
retObj.pathWasm = pathWasm;
|
|
42
|
-
try {
|
|
43
|
-
if (this.FS.existsSync(pathWasm)) {
|
|
44
|
-
retObj.isExists = true;
|
|
45
|
-
return Promise.resolve(retObj);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
retObj.isExists = false;
|
|
49
|
-
return Promise.resolve(retObj);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
retObj.isExists = false;
|
|
54
|
-
return Promise.resolve(retObj);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async checkFolderExistence(folder) {
|
|
58
|
-
try {
|
|
59
|
-
if (this.FS.existsSync(folder)) {
|
|
60
|
-
return Promise.resolve(true);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
return Promise.resolve(false);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
return Promise.resolve(false);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
async openOrCreateDatabase(wasmPath, databasePath) {
|
|
71
|
-
let mDB;
|
|
72
|
-
const msg = 'OpenOrCreateDatabase';
|
|
73
|
-
try {
|
|
74
|
-
this.retExists = await this.checkFileExistence(wasmPath);
|
|
75
|
-
this.isExists = this.retExists.isExists;
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
this.isExists = false;
|
|
79
|
-
}
|
|
80
|
-
if (!this.isExists) {
|
|
81
|
-
return Promise.reject(msg + ' No sql-wasm.wasm found in ' + wasmPath);
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const config = {
|
|
85
|
-
locateFile: (file) => `${this.retExists.pathWasm}/${file}`,
|
|
86
|
-
};
|
|
87
|
-
const SQL = await this.initSqlJs(config);
|
|
88
|
-
// Check if the database exists
|
|
89
|
-
if (!this.FS.existsSync(databasePath)) {
|
|
90
|
-
mDB = new SQL.Database();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// Read the database file from the local disk
|
|
94
|
-
const fileBuffer = this.FS.readFileSync(databasePath);
|
|
95
|
-
// Create a new database instance
|
|
96
|
-
mDB = new SQL.Database(fileBuffer);
|
|
97
|
-
}
|
|
98
|
-
return Promise.resolve(mDB);
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
return Promise.reject(msg + ' open database failed');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
async saveDatabase(mDb, outputPath) {
|
|
105
|
-
try {
|
|
106
|
-
// Export the modified database to a Uint8Array
|
|
107
|
-
const data = mDb.export();
|
|
108
|
-
// Write the Uint8Array to a file on the local disk
|
|
109
|
-
this.FS.writeFileSync(outputPath, Buffer.from(data));
|
|
110
|
-
return Promise.resolve();
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
return Promise.reject(error);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
closeDB(mDB) {
|
|
117
|
-
const msg = 'closeDB';
|
|
118
|
-
try {
|
|
119
|
-
mDB.close();
|
|
120
|
-
return Promise.resolve();
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
const errmsg = err.message ? err.message : err;
|
|
124
|
-
return Promise.reject(`${msg} ${errmsg}`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
async dbChanges(mDB) {
|
|
128
|
-
const SELECT_CHANGE = 'SELECT total_changes()';
|
|
129
|
-
let changes = 0;
|
|
130
|
-
try {
|
|
131
|
-
const res = mDB.exec(SELECT_CHANGE);
|
|
132
|
-
// process the row here
|
|
133
|
-
changes = res[0].values[0][0];
|
|
134
|
-
return Promise.resolve(changes);
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
const errmsg = err.message ? err.message : err;
|
|
138
|
-
return Promise.reject(`DbChanges failed: ${errmsg}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
async getLastId(mDB) {
|
|
142
|
-
const SELECT_LAST_ID = 'SELECT last_insert_rowid()';
|
|
143
|
-
let lastId = -1;
|
|
144
|
-
try {
|
|
145
|
-
const res = mDB.exec(SELECT_LAST_ID);
|
|
146
|
-
// process the row here
|
|
147
|
-
lastId = res[0].values[0][0];
|
|
148
|
-
return Promise.resolve(lastId);
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
const errmsg = err.message ? err.message : err;
|
|
152
|
-
return Promise.reject(new Error(`GetLastId failed: ${errmsg}`));
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
async execute(mDB, sql) {
|
|
156
|
-
try {
|
|
157
|
-
mDB.exec(sql);
|
|
158
|
-
const changes = await this.dbChanges(mDB);
|
|
159
|
-
return Promise.resolve(changes);
|
|
160
|
-
}
|
|
161
|
-
catch (err) {
|
|
162
|
-
const errmsg = err.message ? err.message : err;
|
|
163
|
-
return Promise.reject(new Error(`Execute failed: ${errmsg}`));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
async run(mDB, statement, values, returnMode) {
|
|
167
|
-
let res;
|
|
168
|
-
let retValues = [];
|
|
169
|
-
const retObj = {};
|
|
170
|
-
try {
|
|
171
|
-
if (values.length > 0) {
|
|
172
|
-
res = mDB.exec(statement, values);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
res = mDB.exec(statement);
|
|
176
|
-
}
|
|
177
|
-
if (returnMode === 'all' || returnMode === 'one') {
|
|
178
|
-
if (res && res.length > 0) {
|
|
179
|
-
retValues = this.getReturnedValues(res[0], returnMode);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
const lastId = await this.getLastId(mDB);
|
|
183
|
-
retObj['lastId'] = lastId;
|
|
184
|
-
if (retValues != null && retValues.length > 0)
|
|
185
|
-
retObj['values'] = retValues;
|
|
186
|
-
return Promise.resolve(retObj);
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
const errmsg = err.message ? err.message : err;
|
|
190
|
-
return Promise.reject(new Error(`Run failed: ${errmsg}`));
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
getReturnedValues(result, returnMode) {
|
|
194
|
-
const retValues = [];
|
|
195
|
-
for (const values of result.values) {
|
|
196
|
-
const row = {};
|
|
197
|
-
for (let j = 0; j < result.columns.length; j++) {
|
|
198
|
-
row[result.columns[j]] = values[j];
|
|
199
|
-
}
|
|
200
|
-
retValues.push(row);
|
|
201
|
-
if (returnMode === 'one') {
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return retValues;
|
|
206
|
-
}
|
|
207
|
-
async queryAll(mDB, sql, values) {
|
|
208
|
-
try {
|
|
209
|
-
let retArr = [];
|
|
210
|
-
if (values != null && values.length > 0) {
|
|
211
|
-
retArr = mDB.exec(sql, values);
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
retArr = mDB.exec(sql);
|
|
215
|
-
}
|
|
216
|
-
if (retArr.length == 0)
|
|
217
|
-
return Promise.resolve([]);
|
|
218
|
-
const result = retArr[0].values.map((entry) => {
|
|
219
|
-
const obj = {};
|
|
220
|
-
retArr[0].columns.forEach((column, index) => {
|
|
221
|
-
obj[`${column}`] = entry[index];
|
|
222
|
-
});
|
|
223
|
-
return obj;
|
|
224
|
-
});
|
|
225
|
-
return Promise.resolve(result);
|
|
226
|
-
}
|
|
227
|
-
catch (err) {
|
|
228
|
-
const errmsg = err.message ? err.message : err;
|
|
229
|
-
return Promise.reject(new Error(`queryAll: ${errmsg}`));
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
//# sourceMappingURL=utilsSQLite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utilsSQLite.js","sourceRoot":"","sources":["../../../src/web-typeorm-utils/utilsSQLite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/************************************************
|
|
2
|
-
* Only to be used to run TypeOrm Cli
|
|
3
|
-
* migration:generate
|
|
4
|
-
* A in-memory database is used
|
|
5
|
-
************************************************
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { capSQLiteChanges, capSQLiteValues } from '../definitions';
|
|
9
|
-
|
|
10
|
-
import { UtilsSQLite } from './utilsSQLite';
|
|
11
|
-
|
|
12
|
-
export class Database {
|
|
13
|
-
private _isDBOpen: boolean;
|
|
14
|
-
private wasmPath = 'assets';
|
|
15
|
-
private sqliteUtil: UtilsSQLite = new UtilsSQLite();
|
|
16
|
-
private typeOrmDBFolder = this.sqliteUtil.getTypeOrmDBFolder();
|
|
17
|
-
private dbPath = '';
|
|
18
|
-
public mDb: any;
|
|
19
|
-
|
|
20
|
-
constructor() {
|
|
21
|
-
this.mDb = null;
|
|
22
|
-
this._isDBOpen = false;
|
|
23
|
-
}
|
|
24
|
-
public async open(dbName: string): Promise<void> {
|
|
25
|
-
try {
|
|
26
|
-
this.dbPath = this.sqliteUtil.getTypeOrmDBPath(
|
|
27
|
-
this.typeOrmDBFolder,
|
|
28
|
-
`${dbName}SQLite.db`,
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
this.mDb = await this.sqliteUtil.openOrCreateDatabase(
|
|
32
|
-
this.wasmPath,
|
|
33
|
-
this.dbPath,
|
|
34
|
-
);
|
|
35
|
-
this._isDBOpen = true;
|
|
36
|
-
return Promise.resolve();
|
|
37
|
-
} catch (err) {
|
|
38
|
-
return Promise.reject(`Open: ${err}`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
public async close(): Promise<void> {
|
|
42
|
-
try {
|
|
43
|
-
if (this._isDBOpen) {
|
|
44
|
-
await this.sqliteUtil.saveDatabase(this.mDb, this.dbPath);
|
|
45
|
-
await this.mDb.close();
|
|
46
|
-
}
|
|
47
|
-
return Promise.resolve();
|
|
48
|
-
} catch (err) {
|
|
49
|
-
return Promise.reject(`Close: ${err}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public async executeSQL(statements: string): Promise<number> {
|
|
54
|
-
let changes = -1;
|
|
55
|
-
try {
|
|
56
|
-
if (this._isDBOpen) {
|
|
57
|
-
const initChanges = await this.sqliteUtil.dbChanges(this.mDb);
|
|
58
|
-
changes = await this.sqliteUtil.execute(this.mDb, statements);
|
|
59
|
-
if (changes < 0) {
|
|
60
|
-
return Promise.reject(new Error('ExecuteSQL: changes < 0'));
|
|
61
|
-
}
|
|
62
|
-
changes = (await this.sqliteUtil.dbChanges(this.mDb)) - initChanges;
|
|
63
|
-
}
|
|
64
|
-
return Promise.resolve(changes);
|
|
65
|
-
} catch (err) {
|
|
66
|
-
return Promise.reject(`ExecuteSQL: ${err}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
public async run(
|
|
70
|
-
statement: string,
|
|
71
|
-
values: any[],
|
|
72
|
-
returnMode: string,
|
|
73
|
-
): Promise<capSQLiteChanges> {
|
|
74
|
-
const retRes: any = { changes: -1, lastId: -1 };
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
if (this._isDBOpen) {
|
|
78
|
-
const initChanges = await this.sqliteUtil.dbChanges(this.mDb);
|
|
79
|
-
const retObj = await this.sqliteUtil.run(
|
|
80
|
-
this.mDb,
|
|
81
|
-
statement,
|
|
82
|
-
values,
|
|
83
|
-
returnMode,
|
|
84
|
-
);
|
|
85
|
-
const lastId = retObj['lastId'];
|
|
86
|
-
if (lastId < 0) {
|
|
87
|
-
return Promise.reject(new Error('RunSQL: lastId < 0'));
|
|
88
|
-
}
|
|
89
|
-
const changes =
|
|
90
|
-
(await this.sqliteUtil.dbChanges(this.mDb)) - initChanges;
|
|
91
|
-
retRes.changes = changes;
|
|
92
|
-
retRes.lastId = lastId;
|
|
93
|
-
retRes.values = retObj['values'] ? retObj['values'] : [];
|
|
94
|
-
}
|
|
95
|
-
return Promise.resolve({ changes: retRes });
|
|
96
|
-
} catch (err) {
|
|
97
|
-
return Promise.reject(`Run: ${err}`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
public async selectSQL(sql: string, values: any[]): Promise<capSQLiteValues> {
|
|
101
|
-
let retArr: any[] = [];
|
|
102
|
-
try {
|
|
103
|
-
if (this._isDBOpen) {
|
|
104
|
-
retArr = await this.sqliteUtil.queryAll(this.mDb, sql, values);
|
|
105
|
-
}
|
|
106
|
-
return Promise.resolve({ values: retArr });
|
|
107
|
-
} catch (err) {
|
|
108
|
-
return Promise.reject(`SelectSQL: ${err}`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/************************************************
|
|
2
|
-
* Only to be used to run TypeOrm Cli
|
|
3
|
-
* migration:generate
|
|
4
|
-
* A in-memory database is used
|
|
5
|
-
************************************************
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export class UtilsSQLite {
|
|
9
|
-
public initSqlJs: any;
|
|
10
|
-
public FS: any;
|
|
11
|
-
public OS: any;
|
|
12
|
-
public Path: any;
|
|
13
|
-
private isExists = false;
|
|
14
|
-
private retExists = { isExists: false, pathWasm: '' };
|
|
15
|
-
|
|
16
|
-
constructor() {
|
|
17
|
-
this.initSqlJs = require('sql.js');
|
|
18
|
-
this.OS = require('os');
|
|
19
|
-
this.FS = require('fs');
|
|
20
|
-
this.Path = require('path');
|
|
21
|
-
}
|
|
22
|
-
public getTypeOrmDBFolder(): string {
|
|
23
|
-
// Find the index of the "node_modules" string in the path
|
|
24
|
-
const nodeModulesIndex = __dirname.indexOf('node_modules');
|
|
25
|
-
|
|
26
|
-
// Extract the part of the path before "node_modules"
|
|
27
|
-
const outputPath = __dirname.slice(0, nodeModulesIndex);
|
|
28
|
-
|
|
29
|
-
// Extract the App name
|
|
30
|
-
const appName = this.Path.basename(outputPath);
|
|
31
|
-
|
|
32
|
-
// Get the Documents path
|
|
33
|
-
const documentsDirectory = this.Path.join(this.OS.homedir(), 'Documents');
|
|
34
|
-
|
|
35
|
-
// Add "CapacitorSQLite" and appName
|
|
36
|
-
const outputFolderPath = this.Path.join(
|
|
37
|
-
documentsDirectory,
|
|
38
|
-
'CapacitorSQLite',
|
|
39
|
-
appName,
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
// Ensure the output folder exists
|
|
43
|
-
this.FS.mkdirSync(outputFolderPath, { recursive: true });
|
|
44
|
-
return outputFolderPath;
|
|
45
|
-
}
|
|
46
|
-
public getTypeOrmDBPath(outputFolderPath: string, dbName: string): string {
|
|
47
|
-
return this.Path.resolve(outputFolderPath, dbName);
|
|
48
|
-
}
|
|
49
|
-
public async checkFileExistence(wasmPath: string): Promise<any> {
|
|
50
|
-
// check if a public folder exists
|
|
51
|
-
const folder = (await this.checkFolderExistence('public'))
|
|
52
|
-
? 'public'
|
|
53
|
-
: 'src';
|
|
54
|
-
const pathWasm = this.Path.join(folder, wasmPath);
|
|
55
|
-
const retObj: any = {};
|
|
56
|
-
retObj.pathWasm = pathWasm;
|
|
57
|
-
try {
|
|
58
|
-
if (this.FS.existsSync(pathWasm)) {
|
|
59
|
-
retObj.isExists = true;
|
|
60
|
-
return Promise.resolve(retObj);
|
|
61
|
-
} else {
|
|
62
|
-
retObj.isExists = false;
|
|
63
|
-
return Promise.resolve(retObj);
|
|
64
|
-
}
|
|
65
|
-
} catch (err) {
|
|
66
|
-
retObj.isExists = false;
|
|
67
|
-
return Promise.resolve(retObj);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
public async checkFolderExistence(folder: string): Promise<boolean> {
|
|
71
|
-
try {
|
|
72
|
-
if (this.FS.existsSync(folder)) {
|
|
73
|
-
return Promise.resolve(true);
|
|
74
|
-
} else {
|
|
75
|
-
return Promise.resolve(false);
|
|
76
|
-
}
|
|
77
|
-
} catch (err) {
|
|
78
|
-
return Promise.resolve(false);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
public async openOrCreateDatabase(
|
|
82
|
-
wasmPath: string,
|
|
83
|
-
databasePath: string,
|
|
84
|
-
): Promise<any> {
|
|
85
|
-
let mDB: any;
|
|
86
|
-
const msg = 'OpenOrCreateDatabase';
|
|
87
|
-
try {
|
|
88
|
-
this.retExists = await this.checkFileExistence(wasmPath);
|
|
89
|
-
this.isExists = this.retExists.isExists;
|
|
90
|
-
} catch (err) {
|
|
91
|
-
this.isExists = false;
|
|
92
|
-
}
|
|
93
|
-
if (!this.isExists) {
|
|
94
|
-
return Promise.reject(msg + ' No sql-wasm.wasm found in ' + wasmPath);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
try {
|
|
98
|
-
const config = {
|
|
99
|
-
locateFile: (file: any) => `${this.retExists.pathWasm}/${file}`,
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const SQL = await this.initSqlJs(config);
|
|
103
|
-
// Check if the database exists
|
|
104
|
-
if (!this.FS.existsSync(databasePath)) {
|
|
105
|
-
mDB = new SQL.Database();
|
|
106
|
-
} else {
|
|
107
|
-
// Read the database file from the local disk
|
|
108
|
-
const fileBuffer = this.FS.readFileSync(databasePath);
|
|
109
|
-
// Create a new database instance
|
|
110
|
-
mDB = new SQL.Database(fileBuffer);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return Promise.resolve(mDB);
|
|
114
|
-
} catch (err: any) {
|
|
115
|
-
return Promise.reject(msg + ' open database failed');
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
public async saveDatabase(mDb: any, outputPath: string): Promise<void> {
|
|
119
|
-
try {
|
|
120
|
-
// Export the modified database to a Uint8Array
|
|
121
|
-
const data = mDb.export();
|
|
122
|
-
|
|
123
|
-
// Write the Uint8Array to a file on the local disk
|
|
124
|
-
this.FS.writeFileSync(outputPath, Buffer.from(data));
|
|
125
|
-
|
|
126
|
-
return Promise.resolve();
|
|
127
|
-
} catch (error) {
|
|
128
|
-
return Promise.reject(error);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
public closeDB(mDB: any): Promise<void> {
|
|
132
|
-
const msg = 'closeDB';
|
|
133
|
-
try {
|
|
134
|
-
mDB.close();
|
|
135
|
-
return Promise.resolve();
|
|
136
|
-
} catch (err: any) {
|
|
137
|
-
const errmsg = err.message ? err.message : err;
|
|
138
|
-
return Promise.reject(`${msg} ${errmsg}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
public async dbChanges(mDB: any): Promise<number> {
|
|
142
|
-
const SELECT_CHANGE = 'SELECT total_changes()';
|
|
143
|
-
let changes = 0;
|
|
144
|
-
try {
|
|
145
|
-
const res = mDB.exec(SELECT_CHANGE);
|
|
146
|
-
// process the row here
|
|
147
|
-
changes = res[0].values[0][0];
|
|
148
|
-
return Promise.resolve(changes);
|
|
149
|
-
} catch (err: any) {
|
|
150
|
-
const errmsg = err.message ? err.message : err;
|
|
151
|
-
return Promise.reject(`DbChanges failed: ${errmsg}`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
public async getLastId(mDB: any): Promise<number> {
|
|
155
|
-
const SELECT_LAST_ID = 'SELECT last_insert_rowid()';
|
|
156
|
-
let lastId = -1;
|
|
157
|
-
try {
|
|
158
|
-
const res = mDB.exec(SELECT_LAST_ID);
|
|
159
|
-
// process the row here
|
|
160
|
-
lastId = res[0].values[0][0];
|
|
161
|
-
return Promise.resolve(lastId);
|
|
162
|
-
} catch (err: any) {
|
|
163
|
-
const errmsg = err.message ? err.message : err;
|
|
164
|
-
return Promise.reject(new Error(`GetLastId failed: ${errmsg}`));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
public async execute(mDB: any, sql: string): Promise<number> {
|
|
168
|
-
try {
|
|
169
|
-
mDB.exec(sql);
|
|
170
|
-
const changes = await this.dbChanges(mDB);
|
|
171
|
-
return Promise.resolve(changes);
|
|
172
|
-
} catch (err: any) {
|
|
173
|
-
const errmsg = err.message ? err.message : err;
|
|
174
|
-
return Promise.reject(new Error(`Execute failed: ${errmsg}`));
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
public async run(
|
|
178
|
-
mDB: any,
|
|
179
|
-
statement: string,
|
|
180
|
-
values: any[],
|
|
181
|
-
returnMode: string,
|
|
182
|
-
): Promise<any> {
|
|
183
|
-
let res: any;
|
|
184
|
-
let retValues: any[] = [];
|
|
185
|
-
const retObj: any = {};
|
|
186
|
-
|
|
187
|
-
try {
|
|
188
|
-
if (values.length > 0) {
|
|
189
|
-
res = mDB.exec(statement, values);
|
|
190
|
-
} else {
|
|
191
|
-
res = mDB.exec(statement);
|
|
192
|
-
}
|
|
193
|
-
if (returnMode === 'all' || returnMode === 'one') {
|
|
194
|
-
if (res && res.length > 0) {
|
|
195
|
-
retValues = this.getReturnedValues(res[0], returnMode);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
const lastId = await this.getLastId(mDB);
|
|
199
|
-
retObj['lastId'] = lastId;
|
|
200
|
-
if (retValues != null && retValues.length > 0)
|
|
201
|
-
retObj['values'] = retValues;
|
|
202
|
-
return Promise.resolve(retObj);
|
|
203
|
-
} catch (err: any) {
|
|
204
|
-
const errmsg = err.message ? err.message : err;
|
|
205
|
-
return Promise.reject(new Error(`Run failed: ${errmsg}`));
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
public getReturnedValues(result: any, returnMode: string): any[] {
|
|
209
|
-
const retValues: any[] = [];
|
|
210
|
-
for (const values of result.values) {
|
|
211
|
-
const row: any = {};
|
|
212
|
-
|
|
213
|
-
for (let j = 0; j < result.columns.length; j++) {
|
|
214
|
-
row[result.columns[j]] = values[j];
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
retValues.push(row);
|
|
218
|
-
|
|
219
|
-
if (returnMode === 'one') {
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return retValues;
|
|
224
|
-
}
|
|
225
|
-
public async queryAll(mDB: any, sql: string, values: any[]): Promise<any[]> {
|
|
226
|
-
try {
|
|
227
|
-
let retArr: any[] = [];
|
|
228
|
-
if (values != null && values.length > 0) {
|
|
229
|
-
retArr = mDB.exec(sql, values);
|
|
230
|
-
} else {
|
|
231
|
-
retArr = mDB.exec(sql);
|
|
232
|
-
}
|
|
233
|
-
if (retArr.length == 0) return Promise.resolve([]);
|
|
234
|
-
|
|
235
|
-
const result = retArr[0].values.map((entry: any[]) => {
|
|
236
|
-
const obj: any = {};
|
|
237
|
-
retArr[0].columns.forEach((column: string, index: number) => {
|
|
238
|
-
obj[`${column}`] = entry[index];
|
|
239
|
-
});
|
|
240
|
-
return obj;
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
return Promise.resolve(result);
|
|
244
|
-
} catch (err: any) {
|
|
245
|
-
const errmsg = err.message ? err.message : err;
|
|
246
|
-
return Promise.reject(new Error(`queryAll: ${errmsg}`));
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|