@capacitor-community/sqlite 4.2.0 → 4.2.1
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 +14 -1
- package/electron/dist/plugin.js +71 -17
- package/electron/dist/plugin.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,8 +27,21 @@
|
|
|
27
27
|
| Quéau Jean Pierre | [jepiqueau](https://github.com/jepiqueau) | |
|
|
28
28
|
|
|
29
29
|
To install:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
npm install --save @capacitor-community/sqlite
|
|
33
|
+
npx cap sync
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
yarn install --save @capacitor-community/sqlite
|
|
38
|
+
npx cap sync
|
|
39
|
+
```
|
|
40
|
+
|
|
30
41
|
```
|
|
31
|
-
|
|
42
|
+
pnpm install --save @capacitor-community/sqlite
|
|
43
|
+
pnpm install --save @jeep-sqlite
|
|
44
|
+
pnpm install --save sql.js
|
|
32
45
|
npx cap sync
|
|
33
46
|
```
|
|
34
47
|
|
package/electron/dist/plugin.js
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var require$$0 = require('sqlite3');
|
|
6
|
-
var require$$0$1 = require('
|
|
7
|
-
var require$$1 = require('
|
|
8
|
-
var require$$2 = require('
|
|
9
|
-
var require$$3 = require('
|
|
10
|
-
var require$$4 = require('
|
|
11
|
-
var require$$5 = require('
|
|
6
|
+
var require$$0$1 = require('node:fs/promises');
|
|
7
|
+
var require$$1 = require('path');
|
|
8
|
+
var require$$2 = require('fs');
|
|
9
|
+
var require$$3 = require('node-fetch');
|
|
10
|
+
var require$$4 = require('os');
|
|
11
|
+
var require$$5 = require('jszip');
|
|
12
|
+
var require$$6 = require('electron');
|
|
12
13
|
|
|
13
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
15
|
|
|
@@ -19,6 +20,7 @@ var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
|
|
|
19
20
|
var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3);
|
|
20
21
|
var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4);
|
|
21
22
|
var require$$5__default = /*#__PURE__*/_interopDefaultLegacy(require$$5);
|
|
23
|
+
var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6);
|
|
22
24
|
|
|
23
25
|
var src = {};
|
|
24
26
|
|
|
@@ -2673,6 +2675,7 @@ var utilsFile = {};
|
|
|
2673
2675
|
|
|
2674
2676
|
Object.defineProperty(utilsFile, "__esModule", { value: true });
|
|
2675
2677
|
utilsFile.UtilsFile = void 0;
|
|
2678
|
+
const promises_1 = require$$0__default$1["default"];
|
|
2676
2679
|
class UtilsFile {
|
|
2677
2680
|
constructor() {
|
|
2678
2681
|
this.pathDB = 'Databases';
|
|
@@ -2685,12 +2688,12 @@ class UtilsFile {
|
|
|
2685
2688
|
this.AppName = '';
|
|
2686
2689
|
this.HomeDir = '';
|
|
2687
2690
|
this.sep = '/';
|
|
2688
|
-
this.Path = require$$
|
|
2689
|
-
this.NodeFs = require$$
|
|
2690
|
-
this.NodeFetch = require$$
|
|
2691
|
-
this.Os = require$$
|
|
2692
|
-
this.JSZip = require$$
|
|
2693
|
-
this.Electron = require$$
|
|
2691
|
+
this.Path = require$$1__default["default"];
|
|
2692
|
+
this.NodeFs = require$$2__default["default"];
|
|
2693
|
+
this.NodeFetch = require$$3__default["default"];
|
|
2694
|
+
this.Os = require$$4__default["default"];
|
|
2695
|
+
this.JSZip = require$$5__default["default"];
|
|
2696
|
+
this.Electron = require$$6__default["default"];
|
|
2694
2697
|
this.HomeDir = this.Os.homedir();
|
|
2695
2698
|
const dir = __dirname;
|
|
2696
2699
|
const idx = dir.indexOf('\\');
|
|
@@ -2996,6 +2999,7 @@ class UtilsFile {
|
|
|
2996
2999
|
const isPath = this.isPathExists(filePath);
|
|
2997
3000
|
if (isPath) {
|
|
2998
3001
|
try {
|
|
3002
|
+
await this.waitForFilePathLock(filePath);
|
|
2999
3003
|
this.NodeFs.unlinkSync(filePath);
|
|
3000
3004
|
return Promise.resolve();
|
|
3001
3005
|
}
|
|
@@ -3011,6 +3015,52 @@ class UtilsFile {
|
|
|
3011
3015
|
return Promise.reject('DeleteFilePath: delete filePath' + 'failed');
|
|
3012
3016
|
}
|
|
3013
3017
|
}
|
|
3018
|
+
async waitForFilePathLock(filePath, timeoutMS = 4000) {
|
|
3019
|
+
let timeIsOver = false;
|
|
3020
|
+
setTimeout(() => {
|
|
3021
|
+
timeIsOver = true;
|
|
3022
|
+
}, timeoutMS);
|
|
3023
|
+
return new Promise((resolve, reject) => {
|
|
3024
|
+
const check = async () => {
|
|
3025
|
+
if (timeIsOver) {
|
|
3026
|
+
reject(new Error(`WaitForFilePathLock: The resource is still locked / busy after ${timeoutMS} milliseconds.`));
|
|
3027
|
+
return;
|
|
3028
|
+
}
|
|
3029
|
+
// check if path exists
|
|
3030
|
+
const isPath = this.isPathExists(filePath);
|
|
3031
|
+
// The file path does not exist. A non existant path cannot be locked.
|
|
3032
|
+
if (!isPath) {
|
|
3033
|
+
resolve();
|
|
3034
|
+
return;
|
|
3035
|
+
}
|
|
3036
|
+
try {
|
|
3037
|
+
const stream = await promises_1.open(filePath, 'r+');
|
|
3038
|
+
// We need to close the stream afterwards, because otherwise, we're locking the file
|
|
3039
|
+
await stream.close();
|
|
3040
|
+
resolve();
|
|
3041
|
+
}
|
|
3042
|
+
catch (err) {
|
|
3043
|
+
if (err.code === 'EBUSY') {
|
|
3044
|
+
// The resource is busy. Retry in 100ms
|
|
3045
|
+
setTimeout(() => {
|
|
3046
|
+
check();
|
|
3047
|
+
}, 100);
|
|
3048
|
+
return;
|
|
3049
|
+
}
|
|
3050
|
+
else if (err.code === 'ENOENT') {
|
|
3051
|
+
// The file does not exist (anymore). So it cannot be locked.
|
|
3052
|
+
resolve();
|
|
3053
|
+
return;
|
|
3054
|
+
}
|
|
3055
|
+
else {
|
|
3056
|
+
// Something else went wrong.
|
|
3057
|
+
reject(new Error(`WaitForFilePathLock: Error while checking the file: ${err}`));
|
|
3058
|
+
}
|
|
3059
|
+
}
|
|
3060
|
+
};
|
|
3061
|
+
check();
|
|
3062
|
+
});
|
|
3063
|
+
}
|
|
3014
3064
|
/**
|
|
3015
3065
|
* RenameFileName
|
|
3016
3066
|
* @param fileName
|
|
@@ -3350,11 +3400,15 @@ class Database {
|
|
|
3350
3400
|
*/
|
|
3351
3401
|
async close() {
|
|
3352
3402
|
this.ensureDatabaseIsOpen();
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3403
|
+
return new Promise((resolve, reject) => {
|
|
3404
|
+
this.database.close((err) => {
|
|
3405
|
+
if (err) {
|
|
3406
|
+
reject(new Error(`Close failed: ${this.dbName} ${err}`));
|
|
3407
|
+
return;
|
|
3408
|
+
}
|
|
3409
|
+
this._isDbOpen = false;
|
|
3410
|
+
resolve();
|
|
3411
|
+
});
|
|
3358
3412
|
});
|
|
3359
3413
|
}
|
|
3360
3414
|
/**
|