@nativescript-community/sqlite 3.4.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/CHANGELOG.md +219 -0
- package/LICENSE +201 -0
- package/README.md +30 -0
- package/before-prepare.js.map +1 -0
- package/nanosql/index.d.ts +39 -0
- package/nanosql/index.js +92 -0
- package/nanosql/index.js.map +1 -0
- package/package.json +40 -0
- package/platforms/android/AndroidManifest.xml +8 -0
- package/platforms/android/README.md +9 -0
- package/platforms/android/include.gradle +11 -0
- package/platforms/android/java/com/akylas/sqlite/WorkersContext.java +20 -0
- package/platforms/android/native-api-usage.json +5 -0
- package/platforms/ios/Podfile +1 -0
- package/postinstall.d.ts +0 -0
- package/postinstall.js +2 -0
- package/postinstall.js.map +1 -0
- package/preuninstall.d.ts +0 -0
- package/preuninstall.js +2 -0
- package/preuninstall.js.map +1 -0
- package/scripts/before-prepare.d.ts +0 -0
- package/scripts/before-prepare.js +3 -0
- package/scripts/before-prepare.js.map +1 -0
- package/sqlite.android.d.ts +10 -0
- package/sqlite.android.js +36 -0
- package/sqlite.android.js.map +1 -0
- package/sqlite.common.d.ts +27 -0
- package/sqlite.common.js +79 -0
- package/sqlite.common.js.map +1 -0
- package/sqlite.d.ts +1 -0
- package/sqlite.ios.d.ts +30 -0
- package/sqlite.ios.js +215 -0
- package/sqlite.ios.js.map +1 -0
- package/sqlitedatabase.android.d.ts +67 -0
- package/sqlitedatabase.android.js +269 -0
- package/sqlitedatabase.android.js.map +1 -0
- package/typeorm/NativescriptDriver.d.ts +42 -0
- package/typeorm/NativescriptDriver.js +72 -0
- package/typeorm/NativescriptDriver.js.map +1 -0
- package/typeorm/NativescriptQueryRunner.d.ts +15 -0
- package/typeorm/NativescriptQueryRunner.js +42 -0
- package/typeorm/NativescriptQueryRunner.js.map +1 -0
- package/typeorm/index.d.ts +7 -0
- package/typeorm/index.js +21 -0
- package/typeorm/index.js.map +1 -0
- package/worker.d.ts +1 -0
- package/worker.js +36 -0
- package/worker.js.map +1 -0
@@ -0,0 +1,269 @@
|
|
1
|
+
import { paramsToStringArray, throwError } from './sqlite.common';
|
2
|
+
export function byteArrayToBuffer(value) {
|
3
|
+
if (!value) {
|
4
|
+
return null;
|
5
|
+
}
|
6
|
+
const length = value.length;
|
7
|
+
const ret = new Uint8Array(length);
|
8
|
+
const isString = typeof value === 'string';
|
9
|
+
for (let i = 0; i < length; i++) {
|
10
|
+
ret[i] = isString ? value.charCodeAt(i) : value[i];
|
11
|
+
}
|
12
|
+
return ret;
|
13
|
+
}
|
14
|
+
const dataFromCursor = (cursor, transformBlobs) => {
|
15
|
+
const colCount = cursor.getColumnCount();
|
16
|
+
const data = {};
|
17
|
+
for (let i = 0; i < colCount; i++) {
|
18
|
+
const type = cursor.getType(i);
|
19
|
+
const name = cursor.getColumnName(i);
|
20
|
+
switch (type) {
|
21
|
+
case android.database.Cursor.FIELD_TYPE_INTEGER:
|
22
|
+
data[name] = cursor.getDouble(i);
|
23
|
+
break;
|
24
|
+
case android.database.Cursor.FIELD_TYPE_FLOAT:
|
25
|
+
data[name] = cursor.getDouble(i);
|
26
|
+
break;
|
27
|
+
case android.database.Cursor.FIELD_TYPE_STRING:
|
28
|
+
data[name] = cursor.getString(i);
|
29
|
+
break;
|
30
|
+
case android.database.Cursor.FIELD_TYPE_BLOB:
|
31
|
+
data[name] = transformBlobs ? byteArrayToBuffer(cursor.getBlob(i)) : cursor.getBlob(i);
|
32
|
+
break;
|
33
|
+
case android.database.Cursor.FIELD_TYPE_NULL:
|
34
|
+
data[name] = null;
|
35
|
+
break;
|
36
|
+
default:
|
37
|
+
throwError(`unknown.type: ${type}`);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
return data;
|
41
|
+
};
|
42
|
+
const arrayFromCursor = (cursor, transformBlobs) => {
|
43
|
+
const colCount = cursor.getColumnCount();
|
44
|
+
const data = [];
|
45
|
+
for (let i = 0; i < colCount; i++) {
|
46
|
+
const type = cursor.getType(i);
|
47
|
+
switch (type) {
|
48
|
+
case android.database.Cursor.FIELD_TYPE_NULL:
|
49
|
+
data.push(null);
|
50
|
+
break;
|
51
|
+
case android.database.Cursor.FIELD_TYPE_STRING:
|
52
|
+
data.push(cursor.getString(i));
|
53
|
+
break;
|
54
|
+
case android.database.Cursor.FIELD_TYPE_FLOAT:
|
55
|
+
data.push(cursor.getDouble(i));
|
56
|
+
break;
|
57
|
+
case android.database.Cursor.FIELD_TYPE_INTEGER:
|
58
|
+
data.push(cursor.getDouble(i));
|
59
|
+
break;
|
60
|
+
case android.database.Cursor.FIELD_TYPE_BLOB:
|
61
|
+
data.push(transformBlobs ? byteArrayToBuffer(cursor.getBlob(i)) : cursor.getBlob(i));
|
62
|
+
break;
|
63
|
+
case android.database.Cursor.FIELD_TYPE_NULL:
|
64
|
+
data.push(null);
|
65
|
+
break;
|
66
|
+
default:
|
67
|
+
throwError(`unknown.type: ${type}`);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
return data;
|
71
|
+
};
|
72
|
+
const rawSql = (onCursor) => (db, transformBlobs) => (sql, params) => {
|
73
|
+
const parameters = paramsToStringArray(params);
|
74
|
+
const cursor = db.rawQuery(sql, parameters);
|
75
|
+
try {
|
76
|
+
const result = [];
|
77
|
+
while (cursor.moveToNext()) {
|
78
|
+
result.push(onCursor(cursor, transformBlobs));
|
79
|
+
}
|
80
|
+
return result;
|
81
|
+
}
|
82
|
+
finally {
|
83
|
+
cursor.close();
|
84
|
+
}
|
85
|
+
};
|
86
|
+
const eachRaw = (onCursor) => (db, transformBlobs) => (sql, params, callback, complete) => {
|
87
|
+
const parameters = paramsToStringArray(params);
|
88
|
+
const cursor = db.rawQuery(sql, parameters);
|
89
|
+
return Promise.resolve()
|
90
|
+
.then(() => {
|
91
|
+
const count = 0;
|
92
|
+
while (cursor.moveToNext()) {
|
93
|
+
const result = onCursor(cursor, transformBlobs);
|
94
|
+
callback(null, result);
|
95
|
+
}
|
96
|
+
cursor.close();
|
97
|
+
complete && complete(null, count);
|
98
|
+
return count;
|
99
|
+
})
|
100
|
+
.catch((err) => {
|
101
|
+
cursor.close();
|
102
|
+
const errorCB = complete || callback;
|
103
|
+
if (errorCB) {
|
104
|
+
errorCB(err, null);
|
105
|
+
}
|
106
|
+
return Promise.reject(err);
|
107
|
+
});
|
108
|
+
};
|
109
|
+
const transactionRaw = async (db, action) => {
|
110
|
+
db.beginTransaction();
|
111
|
+
try {
|
112
|
+
const cancelled = { value: false };
|
113
|
+
const cancel = () => {
|
114
|
+
cancelled.value = true;
|
115
|
+
};
|
116
|
+
const result = await action(cancel);
|
117
|
+
if (!cancelled.value) {
|
118
|
+
db.setTransactionSuccessful();
|
119
|
+
}
|
120
|
+
return result;
|
121
|
+
}
|
122
|
+
finally {
|
123
|
+
db.endTransaction();
|
124
|
+
}
|
125
|
+
};
|
126
|
+
const messagePromises = {};
|
127
|
+
export class SQLiteDatabaseBase {
|
128
|
+
constructor(filePath, options) {
|
129
|
+
this.filePath = filePath;
|
130
|
+
this._isInTransaction = false;
|
131
|
+
this.threading = false;
|
132
|
+
this.threading = options && options.threading === true;
|
133
|
+
this.flags = options === null || options === void 0 ? void 0 : options.flags;
|
134
|
+
this.transformBlobs = !options || options.transformBlobs !== false;
|
135
|
+
}
|
136
|
+
onWorkerMessage(event) {
|
137
|
+
const data = event.data;
|
138
|
+
const id = data.id;
|
139
|
+
if (id && messagePromises.hasOwnProperty(id)) {
|
140
|
+
messagePromises[id].forEach(function (executor) {
|
141
|
+
executor.timeoutTimer && clearTimeout(executor.timeoutTimer);
|
142
|
+
if (data.error) {
|
143
|
+
executor.reject(data.error);
|
144
|
+
}
|
145
|
+
else {
|
146
|
+
executor.resolve(data.result);
|
147
|
+
}
|
148
|
+
});
|
149
|
+
delete messagePromises[id];
|
150
|
+
}
|
151
|
+
}
|
152
|
+
sendMessageToWorker(nativeData, messageData, timeout = 0) {
|
153
|
+
return new Promise((resolve, reject) => {
|
154
|
+
let id = Date.now().valueOf();
|
155
|
+
if (id <= this.lastId) {
|
156
|
+
id = this.lastId + 1;
|
157
|
+
}
|
158
|
+
this.lastId = id;
|
159
|
+
messagePromises[id] = messagePromises[id] || [];
|
160
|
+
let timeoutTimer;
|
161
|
+
if (timeout > 0) {
|
162
|
+
timeoutTimer = setTimeout(() => {
|
163
|
+
try {
|
164
|
+
reject(new Error('timeout'));
|
165
|
+
}
|
166
|
+
catch (_a) { }
|
167
|
+
delete messagePromises[id];
|
168
|
+
}, timeout);
|
169
|
+
}
|
170
|
+
messagePromises[id].push({ resolve, reject, timeoutTimer });
|
171
|
+
const keys = Object.keys(nativeData);
|
172
|
+
keys.forEach((k) => {
|
173
|
+
com.akylas.sqlite.WorkersContext.setValue(`${id}_${k}`, nativeData[k]._native || nativeData[k]);
|
174
|
+
});
|
175
|
+
const mData = Object.assign({
|
176
|
+
type: 'call',
|
177
|
+
id,
|
178
|
+
dbOptions: {
|
179
|
+
transformBlobs: this.transformBlobs
|
180
|
+
},
|
181
|
+
nativeDataKeys: keys,
|
182
|
+
}, messageData);
|
183
|
+
this.worker.postMessage(mData);
|
184
|
+
});
|
185
|
+
}
|
186
|
+
get isOpen() {
|
187
|
+
return this.db && this.db.isOpen();
|
188
|
+
}
|
189
|
+
async close() {
|
190
|
+
if (!this.isOpen)
|
191
|
+
return;
|
192
|
+
if (this.worker) {
|
193
|
+
this.worker.postMessage({
|
194
|
+
type: 'terminate',
|
195
|
+
});
|
196
|
+
this.worker = null;
|
197
|
+
}
|
198
|
+
this.db.close();
|
199
|
+
this.db = null;
|
200
|
+
}
|
201
|
+
async setVersion(version) {
|
202
|
+
this.db.setVersion(version);
|
203
|
+
}
|
204
|
+
async getVersion() {
|
205
|
+
return this.db.getVersion();
|
206
|
+
}
|
207
|
+
async execute(query, params) {
|
208
|
+
if (this.threading) {
|
209
|
+
return this.sendMessageToWorker({
|
210
|
+
db: this.db,
|
211
|
+
}, {
|
212
|
+
callName: 'execute',
|
213
|
+
args: [query, params],
|
214
|
+
});
|
215
|
+
}
|
216
|
+
return this.db.execSQL(query, paramsToStringArray(params));
|
217
|
+
}
|
218
|
+
async get(query, params, transformBlobs) {
|
219
|
+
if (this.threading) {
|
220
|
+
return this.sendMessageToWorker({
|
221
|
+
db: this.db,
|
222
|
+
}, {
|
223
|
+
callName: 'get',
|
224
|
+
args: [query, params],
|
225
|
+
});
|
226
|
+
}
|
227
|
+
return rawSql(dataFromCursor)(this.db, transformBlobs !== null && transformBlobs !== void 0 ? transformBlobs : this.transformBlobs)(query, params)[0] || null;
|
228
|
+
}
|
229
|
+
async getArray(query, params, transformBlobs) {
|
230
|
+
if (this.threading) {
|
231
|
+
return this.sendMessageToWorker({
|
232
|
+
db: this.db,
|
233
|
+
}, {
|
234
|
+
callName: 'getArray',
|
235
|
+
args: [query, params],
|
236
|
+
});
|
237
|
+
}
|
238
|
+
return rawSql(arrayFromCursor)(this.db, transformBlobs !== null && transformBlobs !== void 0 ? transformBlobs : this.transformBlobs)(query, params)[0] || null;
|
239
|
+
}
|
240
|
+
async select(query, params, transformBlobs) {
|
241
|
+
if (this.threading) {
|
242
|
+
return this.sendMessageToWorker({
|
243
|
+
db: this.db,
|
244
|
+
}, {
|
245
|
+
callName: 'select',
|
246
|
+
args: [query, params],
|
247
|
+
});
|
248
|
+
}
|
249
|
+
return rawSql(dataFromCursor)(this.db, transformBlobs !== null && transformBlobs !== void 0 ? transformBlobs : this.transformBlobs)(query, params);
|
250
|
+
}
|
251
|
+
async selectArray(query, params, transformBlobs) {
|
252
|
+
if (this.threading) {
|
253
|
+
return this.sendMessageToWorker({
|
254
|
+
db: this.db,
|
255
|
+
}, {
|
256
|
+
callName: 'selectArray',
|
257
|
+
args: [query, params],
|
258
|
+
});
|
259
|
+
}
|
260
|
+
return rawSql(arrayFromCursor)(this.db, transformBlobs !== null && transformBlobs !== void 0 ? transformBlobs : this.transformBlobs)(query, params);
|
261
|
+
}
|
262
|
+
async each(query, params, callback, complete, transformBlobs) {
|
263
|
+
return eachRaw(dataFromCursor)(this.db, transformBlobs !== null && transformBlobs !== void 0 ? transformBlobs : this.transformBlobs)(query, params, callback, complete);
|
264
|
+
}
|
265
|
+
async transaction(action) {
|
266
|
+
return transactionRaw(this.db, action);
|
267
|
+
}
|
268
|
+
}
|
269
|
+
//# sourceMappingURL=sqlitedatabase.android.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sqlitedatabase.android.js","sourceRoot":"","sources":["../src/sqlitedatabase.android.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Connection } from '@nativescript-community/typeorm/browser/connection/Connection';
|
2
|
+
import { AbstractSqliteDriver } from '@nativescript-community/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver';
|
3
|
+
import { ColumnType } from '@nativescript-community/typeorm/browser/driver/types/ColumnTypes';
|
4
|
+
import { QueryRunner } from '@nativescript-community/typeorm/browser/query-runner/QueryRunner';
|
5
|
+
import * as NSQlite from '../sqlite';
|
6
|
+
import { NativescriptConnectionOptions } from './index';
|
7
|
+
export declare class NativescriptDriver extends AbstractSqliteDriver {
|
8
|
+
options: NativescriptConnectionOptions;
|
9
|
+
driver: any;
|
10
|
+
constructor(connection: Connection);
|
11
|
+
disconnect(): Promise<any>;
|
12
|
+
createQueryRunner(mode?: 'master' | 'slave'): QueryRunner;
|
13
|
+
normalizeType(column: {
|
14
|
+
type?: ColumnType;
|
15
|
+
length?: number | string;
|
16
|
+
precision?: number | null;
|
17
|
+
scale?: number;
|
18
|
+
}): string;
|
19
|
+
sqlite: typeof NSQlite;
|
20
|
+
protected createDatabaseConnection(): Promise<NSQlite.SQLiteDatabase>;
|
21
|
+
protected loadDependencies(): void;
|
22
|
+
}
|
23
|
+
export declare class MongoDriver {
|
24
|
+
}
|
25
|
+
export declare class SqljsDriver {
|
26
|
+
}
|
27
|
+
export declare class PostgresDriver {
|
28
|
+
}
|
29
|
+
export declare class CockroachDriver {
|
30
|
+
}
|
31
|
+
export declare class MysqlDriver {
|
32
|
+
}
|
33
|
+
export declare class AuroraDataApiDriver {
|
34
|
+
}
|
35
|
+
export declare class OracleDriver {
|
36
|
+
}
|
37
|
+
export declare class SqlServerDriver {
|
38
|
+
}
|
39
|
+
export declare class BetterSqlite3Driver {
|
40
|
+
}
|
41
|
+
export declare class SapDriver {
|
42
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import { AbstractSqliteDriver } from '@nativescript-community/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver';
|
2
|
+
import { DriverOptionNotSetError } from '@nativescript-community/typeorm/browser/error/DriverOptionNotSetError';
|
3
|
+
import { DriverPackageNotInstalledError } from '@nativescript-community/typeorm/browser/error/DriverPackageNotInstalledError';
|
4
|
+
import { NativescriptQueryRunner } from './NativescriptQueryRunner';
|
5
|
+
export class NativescriptDriver extends AbstractSqliteDriver {
|
6
|
+
constructor(connection) {
|
7
|
+
super(connection);
|
8
|
+
this.connection = connection;
|
9
|
+
this.options = connection.options;
|
10
|
+
this.database = this.options.database;
|
11
|
+
this.driver = this.options.driver;
|
12
|
+
if (!this.options.database) {
|
13
|
+
throw new DriverOptionNotSetError('database');
|
14
|
+
}
|
15
|
+
this.loadDependencies();
|
16
|
+
}
|
17
|
+
async disconnect() {
|
18
|
+
this.queryRunner = undefined;
|
19
|
+
return this.databaseConnection.close();
|
20
|
+
}
|
21
|
+
createQueryRunner(mode = 'master') {
|
22
|
+
if (!this.queryRunner) {
|
23
|
+
this.queryRunner = new NativescriptQueryRunner(this);
|
24
|
+
}
|
25
|
+
return this.queryRunner;
|
26
|
+
}
|
27
|
+
normalizeType(column) {
|
28
|
+
if (column.type === Buffer) {
|
29
|
+
return 'blob';
|
30
|
+
}
|
31
|
+
return super.normalizeType(column);
|
32
|
+
}
|
33
|
+
async createDatabaseConnection() {
|
34
|
+
try {
|
35
|
+
const db = this.sqlite.openOrCreate(this.options.database, this.options.extra ? Object.assign({}, this.options.extra) : {});
|
36
|
+
await db.execute('PRAGMA foreign_keys = ON;', []);
|
37
|
+
return db;
|
38
|
+
}
|
39
|
+
catch (err) {
|
40
|
+
throw new Error(err);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
loadDependencies() {
|
44
|
+
try {
|
45
|
+
this.sqlite = this.options.driver || require('@nativescript-community/sqlite');
|
46
|
+
}
|
47
|
+
catch (e) {
|
48
|
+
throw new DriverPackageNotInstalledError('Nativescript', '@nativescript-community/sqlite');
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
export class MongoDriver {
|
53
|
+
}
|
54
|
+
export class SqljsDriver {
|
55
|
+
}
|
56
|
+
export class PostgresDriver {
|
57
|
+
}
|
58
|
+
export class CockroachDriver {
|
59
|
+
}
|
60
|
+
export class MysqlDriver {
|
61
|
+
}
|
62
|
+
export class AuroraDataApiDriver {
|
63
|
+
}
|
64
|
+
export class OracleDriver {
|
65
|
+
}
|
66
|
+
export class SqlServerDriver {
|
67
|
+
}
|
68
|
+
export class BetterSqlite3Driver {
|
69
|
+
}
|
70
|
+
export class SapDriver {
|
71
|
+
}
|
72
|
+
//# sourceMappingURL=NativescriptDriver.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NativescriptDriver.js","sourceRoot":"","sources":["../../src/typeorm/NativescriptDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qFAAqF,CAAC;AAE3H,OAAO,EAAE,uBAAuB,EAAE,MAAM,uEAAuE,CAAC;AAChH,OAAO,EAAE,8BAA8B,EAAE,MAAM,8EAA8E,CAAC;AAI9H,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,OAAO,kBAAmB,SAAQ,oBAAoB;IAiBxD,YAAY,UAAsB;QAC9B,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAwC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACxB,MAAM,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAOD,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAID,iBAAiB,CAAC,OAA2B,QAAQ;QACjD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;SACxD;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,MAAkG;QAC5G,IAAK,MAAM,CAAC,IAAY,KAAK,MAAM,EAAE;YACjC,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAmBS,KAAK,CAAC,wBAAwB;QACpC,IAAI;YACA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA,CAAC,mBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAK9G,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;IACL,CAAC;IAIS,gBAAgB;QACtB,IAAI;YACA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,gCAAgC,CAAC,CAAC;SAClF;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,8BAA8B,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;SAC9F;IACL,CAAC;CACJ;AAED,MAAM,OAAO,WAAW;CAAG;AAC3B,MAAM,OAAO,WAAW;CAAG;AAC3B,MAAM,OAAO,cAAc;CAAG;AAC9B,MAAM,OAAO,eAAe;CAAG;AAC/B,MAAM,OAAO,WAAW;CAAG;AAC3B,MAAM,OAAO,mBAAmB;CAAG;AACnC,MAAM,OAAO,YAAY;CAAG;AAC5B,MAAM,OAAO,eAAe;CAAG;AAC/B,MAAM,OAAO,mBAAmB;CAAG;AACnC,MAAM,OAAO,SAAS;CAAG"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { ObjectLiteral } from '@nativescript-community/typeorm/browser/common/ObjectLiteral';
|
2
|
+
import { AbstractSqliteQueryRunner } from '@nativescript-community/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner';
|
3
|
+
import { NativescriptDriver } from './NativescriptDriver';
|
4
|
+
export declare class NativescriptQueryRunner extends AbstractSqliteQueryRunner {
|
5
|
+
driver: NativescriptDriver;
|
6
|
+
constructor(driver: NativescriptDriver);
|
7
|
+
query(query: string, parameters?: any[]): Promise<void | import("../sqlite.common").SqliteRow[] | {
|
8
|
+
[k: string]: any;
|
9
|
+
id: number;
|
10
|
+
nativeDatas?: {
|
11
|
+
[k: string]: any;
|
12
|
+
};
|
13
|
+
}>;
|
14
|
+
protected parametrize(objectLiteral: ObjectLiteral, startIndex?: number): string[];
|
15
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { QueryRunnerAlreadyReleasedError } from '@nativescript-community/typeorm/browser/error/QueryRunnerAlreadyReleasedError';
|
2
|
+
import { QueryFailedError } from '@nativescript-community/typeorm/browser/error/QueryFailedError';
|
3
|
+
import { AbstractSqliteQueryRunner } from '@nativescript-community/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner';
|
4
|
+
import { Broadcaster } from '@nativescript-community/typeorm/browser/subscriber/Broadcaster';
|
5
|
+
export class NativescriptQueryRunner extends AbstractSqliteQueryRunner {
|
6
|
+
constructor(driver) {
|
7
|
+
super();
|
8
|
+
this.driver = driver;
|
9
|
+
this.connection = driver.connection;
|
10
|
+
this.broadcaster = new Broadcaster(this);
|
11
|
+
}
|
12
|
+
async query(query, parameters) {
|
13
|
+
if (this.isReleased) {
|
14
|
+
throw new QueryRunnerAlreadyReleasedError();
|
15
|
+
}
|
16
|
+
const connection = this.driver.connection;
|
17
|
+
const isInsertQuery = query.startsWith('INSERT INTO') || query.startsWith('UPDATE');
|
18
|
+
connection.logger.logQuery(query, parameters, this);
|
19
|
+
try {
|
20
|
+
const db = await this.connect();
|
21
|
+
const queryStartTime = +new Date();
|
22
|
+
const result = isInsertQuery
|
23
|
+
? await db.execute(query, parameters)
|
24
|
+
: await db.select(query, parameters);
|
25
|
+
const queryEndTime = +new Date();
|
26
|
+
const queryExecutionTime = queryEndTime - queryStartTime;
|
27
|
+
const maxQueryExecutionTime = connection.options.maxQueryExecutionTime;
|
28
|
+
if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) {
|
29
|
+
connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
|
30
|
+
}
|
31
|
+
return result;
|
32
|
+
}
|
33
|
+
catch (err) {
|
34
|
+
connection.logger.logQueryError(err, query, parameters, this);
|
35
|
+
throw new QueryFailedError(query, parameters, err);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
parametrize(objectLiteral, startIndex = 0) {
|
39
|
+
return Object.keys(objectLiteral).map((key, index) => `"${key}"` + '=?');
|
40
|
+
}
|
41
|
+
}
|
42
|
+
//# sourceMappingURL=NativescriptQueryRunner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NativescriptQueryRunner.js","sourceRoot":"","sources":["../../src/typeorm/NativescriptQueryRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,+EAA+E,CAAC;AAChI,OAAO,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,0FAA0F,CAAC;AACrI,OAAO,EAAE,WAAW,EAAE,MAAM,gEAAgE,CAAC;AAQ7F,MAAM,OAAO,uBAAwB,SAAQ,yBAAyB;IAQlE,YAAY,MAA0B;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,UAAkB;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,IAAI,+BAA+B,EAAE,CAAC;SAC/C;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpF,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI;YACA,MAAM,EAAE,GAA2B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,aAAa;gBACxB,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;gBACrC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAC;YACzD,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAEvE,IAAI,qBAAqB,IAAI,kBAAkB,GAAG,qBAAqB,EAAE;gBACrE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aAC/E;YACD,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;SACtD;IACL,CAAC;IAOS,WAAW,CAAC,aAA4B,EAAE,aAAqB,CAAC;QACtE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;CACJ"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { BaseConnectionOptions } from '@nativescript-community/typeorm/browser/connection/BaseConnectionOptions';
|
2
|
+
export declare function installMixins(): void;
|
3
|
+
export interface NativescriptConnectionOptions extends BaseConnectionOptions {
|
4
|
+
readonly type: 'nativescript';
|
5
|
+
readonly database: string;
|
6
|
+
readonly driver?: any;
|
7
|
+
}
|
package/typeorm/index.js
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
import { NativescriptDriver } from './NativescriptDriver';
|
2
|
+
let installed = false;
|
3
|
+
export function installMixins() {
|
4
|
+
if (installed) {
|
5
|
+
return;
|
6
|
+
}
|
7
|
+
installed = true;
|
8
|
+
const DriverFactory = require('@nativescript-community/typeorm/browser/driver/DriverFactory').DriverFactory;
|
9
|
+
const oldFunc = DriverFactory.prototype.create;
|
10
|
+
DriverFactory.prototype.create = function (connection) {
|
11
|
+
const { type } = connection.options;
|
12
|
+
switch (type) {
|
13
|
+
case 'nativescript':
|
14
|
+
case '@nativescript-community/sqlite':
|
15
|
+
return new NativescriptDriver(connection);
|
16
|
+
default:
|
17
|
+
return oldFunc.call(this, connection);
|
18
|
+
}
|
19
|
+
};
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typeorm/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,MAAM,UAAU,aAAa;IACzB,IAAI,SAAS,EAAE;QACX,OAAO;KACV;IACD,SAAS,GAAG,IAAI,CAAC;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,8DAA8D,CAAC,CAAC,aAAa,CAAC;IAC5G,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;IAE/C,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,UAAsB;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;QACpC,QAAQ,IAAI,EAAE;YACV,KAAK,cAAqB,CAAC;YAC3B,KAAK,gCAAuC;gBACxC,OAAO,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC9C;gBACI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC7C;IACL,CAAC,CAAC;AACN,CAAC"}
|
package/worker.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
package/worker.js
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
const context = self;
|
2
|
+
import { SQLiteDatabaseBase } from './sqlitedatabase';
|
3
|
+
const fakeDatabase = new SQLiteDatabaseBase(null);
|
4
|
+
context.onmessage = (async (event) => {
|
5
|
+
const data = event.data;
|
6
|
+
switch (data.type) {
|
7
|
+
case 'terminate':
|
8
|
+
context.close();
|
9
|
+
break;
|
10
|
+
case 'call':
|
11
|
+
const id = data.id;
|
12
|
+
const call = data.callName;
|
13
|
+
const args = data.args;
|
14
|
+
const db = com.akylas.sqlite.WorkersContext.getValue(`${id}_db`);
|
15
|
+
fakeDatabase.db = db;
|
16
|
+
fakeDatabase.threading = false;
|
17
|
+
if (data.dbOptions) {
|
18
|
+
Object.assign(fakeDatabase, data.dbOptions);
|
19
|
+
}
|
20
|
+
try {
|
21
|
+
const result = await fakeDatabase[call].apply(fakeDatabase, args);
|
22
|
+
global.postMessage({
|
23
|
+
id,
|
24
|
+
result,
|
25
|
+
});
|
26
|
+
}
|
27
|
+
catch (err) {
|
28
|
+
global.postMessage(Object.assign(data, {
|
29
|
+
id,
|
30
|
+
error: err.toString(),
|
31
|
+
}));
|
32
|
+
}
|
33
|
+
break;
|
34
|
+
}
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=worker.js.map
|
package/worker.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAW,IAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClD,OAAO,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,WAAW;YAGX,OAAe,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM;QACV,KAAK,MAAM;YACP,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,GAAI,GAAW,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1E,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;YACrB,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAE/C;YACD,IAAI;gBACA,MAAM,MAAM,GAAE,MAAO,YAAY,CAAC,IAAI,CAAc,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAE9E,MAAc,CAAC,WAAW,CACvB;oBACI,EAAE;oBACF,MAAM;iBACT,CACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACT,MAAc,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;oBAChB,EAAE;oBACF,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;iBACxB,CAAC,CACL,CAAC;aAEL;YAcD,MAAM;KACb;AACL,CAAC,CAAQ,CAAC"}
|