tnp-helpers 16.100.7 → 16.100.8

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.
Files changed (114) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-project-resolver.mjs +32 -1
  3. package/browser/esm2022/lib/base/base-project.mjs +46 -2
  4. package/browser/esm2022/lib/base/core-project.mjs +7 -27
  5. package/browser/esm2022/lib/index.mjs +2 -1
  6. package/browser/esm2022/lib/models.mjs +3 -0
  7. package/browser/fesm2022/tnp-helpers.mjs +81 -25
  8. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  9. package/browser/lib/base/base-project-resolver.d.ts +14 -1
  10. package/browser/lib/base/base-project.d.ts +9 -17
  11. package/browser/lib/base/core-project.d.ts +4 -14
  12. package/browser/lib/index.d.ts +2 -1
  13. package/browser/lib/models.d.ts +17 -0
  14. package/client/esm2022/lib/base/base-project-resolver.mjs +32 -1
  15. package/client/esm2022/lib/base/base-project.mjs +46 -2
  16. package/client/esm2022/lib/base/core-project.mjs +7 -27
  17. package/client/esm2022/lib/index.mjs +2 -1
  18. package/client/esm2022/lib/models.mjs +3 -0
  19. package/client/fesm2022/tnp-helpers.mjs +81 -25
  20. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  21. package/client/lib/base/base-project-resolver.d.ts +14 -1
  22. package/client/lib/base/base-project.d.ts +9 -17
  23. package/client/lib/base/core-project.d.ts +4 -14
  24. package/client/lib/index.d.ts +2 -1
  25. package/client/lib/models.d.ts +17 -0
  26. package/client/package.json +27 -26
  27. package/firedev.jsonc +3 -2
  28. package/lib/base/base-project-resolver.d.ts +13 -1
  29. package/lib/base/base-project-resolver.js +53 -4
  30. package/lib/base/base-project-resolver.js.map +1 -1
  31. package/lib/base/base-project.d.ts +10 -21
  32. package/lib/base/base-project.js +144 -64
  33. package/lib/base/base-project.js.map +1 -1
  34. package/lib/base/core-project.d.ts +3 -13
  35. package/lib/base/core-project.js +5 -34
  36. package/lib/base/core-project.js.map +1 -1
  37. package/lib/helpers/for-browser/angular.helper.js +3 -3
  38. package/lib/index.d.ts +2 -1
  39. package/lib/index.js +1 -0
  40. package/lib/index.js.map +1 -1
  41. package/lib/lowdb/adapters/Memory.d.ts +11 -0
  42. package/lib/lowdb/adapters/Memory.js +31 -0
  43. package/lib/lowdb/adapters/Memory.js.map +1 -0
  44. package/lib/lowdb/adapters/browser/LocalStorage.d.ts +4 -0
  45. package/lib/lowdb/adapters/browser/LocalStorage.js +14 -0
  46. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -0
  47. package/lib/lowdb/adapters/browser/SessionStorage.d.ts +4 -0
  48. package/lib/lowdb/adapters/browser/SessionStorage.js +14 -0
  49. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -0
  50. package/lib/lowdb/adapters/browser/WebStorage.d.ts +8 -0
  51. package/lib/lowdb/adapters/browser/WebStorage.js +22 -0
  52. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -0
  53. package/lib/lowdb/adapters/node/DataFile.d.ts +26 -0
  54. package/lib/lowdb/adapters/node/DataFile.js +60 -0
  55. package/lib/lowdb/adapters/node/DataFile.js.map +1 -0
  56. package/lib/lowdb/adapters/node/JSONFile.d.ts +9 -0
  57. package/lib/lowdb/adapters/node/JSONFile.js +28 -0
  58. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -0
  59. package/lib/lowdb/adapters/node/TextFile.d.ts +18 -0
  60. package/lib/lowdb/adapters/node/TextFile.js +68 -0
  61. package/lib/lowdb/adapters/node/TextFile.js.map +1 -0
  62. package/lib/lowdb/adapters/node/steno.d.ts +13 -0
  63. package/lib/lowdb/adapters/node/steno.js +141 -0
  64. package/lib/lowdb/adapters/node/steno.js.map +1 -0
  65. package/lib/lowdb/browser.d.ts +3 -0
  66. package/lib/lowdb/browser.js +7 -0
  67. package/lib/lowdb/browser.js.map +1 -0
  68. package/lib/lowdb/core/Low.d.ts +24 -0
  69. package/lib/lowdb/core/Low.js +86 -0
  70. package/lib/lowdb/core/Low.js.map +1 -0
  71. package/lib/lowdb/examples/browser.d.ts +1 -0
  72. package/lib/lowdb/examples/browser.js +10 -0
  73. package/lib/lowdb/examples/browser.js.map +1 -0
  74. package/lib/lowdb/examples/cli.d.ts +1 -0
  75. package/lib/lowdb/examples/cli.js +11 -0
  76. package/lib/lowdb/examples/cli.js.map +1 -0
  77. package/lib/lowdb/examples/in-memory.d.ts +8 -0
  78. package/lib/lowdb/examples/in-memory.js +14 -0
  79. package/lib/lowdb/examples/in-memory.js.map +1 -0
  80. package/lib/lowdb/examples/server.d.ts +0 -0
  81. package/lib/lowdb/examples/server.js +36 -0
  82. package/lib/lowdb/examples/server.js.map +1 -0
  83. package/lib/lowdb/index.d.ts +2 -0
  84. package/lib/lowdb/index.js +6 -0
  85. package/lib/lowdb/index.js.map +1 -0
  86. package/lib/lowdb/node.d.ts +4 -0
  87. package/lib/lowdb/node.js +8 -0
  88. package/lib/lowdb/node.js.map +1 -0
  89. package/lib/lowdb/presets/browser.d.ts +3 -0
  90. package/lib/lowdb/presets/browser.js +21 -0
  91. package/lib/lowdb/presets/browser.js.map +1 -0
  92. package/lib/lowdb/presets/node.d.ts +5 -0
  93. package/lib/lowdb/presets/node.js +36 -0
  94. package/lib/lowdb/presets/node.js.map +1 -0
  95. package/lib/models.d.ts +16 -0
  96. package/lib/models.js +0 -3
  97. package/lib/models.js.map +1 -1
  98. package/lib/old/base-component.js +3 -3
  99. package/lib/old/base-formly-component.js +3 -3
  100. package/lib/old/dual-component-ctrl.js +3 -3
  101. package/package.json +5 -3
  102. package/tmp-environment.json +31 -30
  103. package/websql/esm2022/lib/base/base-project-resolver.mjs +32 -4
  104. package/websql/esm2022/lib/base/base-project.mjs +46 -2
  105. package/websql/esm2022/lib/base/core-project.mjs +7 -27
  106. package/websql/esm2022/lib/index.mjs +2 -1
  107. package/websql/esm2022/lib/models.mjs +3 -0
  108. package/websql/fesm2022/tnp-helpers.mjs +78 -25
  109. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  110. package/websql/lib/base/base-project-resolver.d.ts +14 -1
  111. package/websql/lib/base/base-project.d.ts +9 -17
  112. package/websql/lib/base/core-project.d.ts +4 -14
  113. package/websql/lib/index.d.ts +2 -1
  114. package/websql/lib/models.d.ts +17 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSONFileSync = exports.JSONFile = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var DataFile_1 = require("./DataFile");
6
+ var JSONFile = /** @class */ (function (_super) {
7
+ tslib_1.__extends(JSONFile, _super);
8
+ function JSONFile(filename) {
9
+ return _super.call(this, filename, {
10
+ parse: JSON.parse,
11
+ stringify: function (data) { return JSON.stringify(data, null, 2); },
12
+ }) || this;
13
+ }
14
+ return JSONFile;
15
+ }(DataFile_1.DataFile));
16
+ exports.JSONFile = JSONFile;
17
+ var JSONFileSync = /** @class */ (function (_super) {
18
+ tslib_1.__extends(JSONFileSync, _super);
19
+ function JSONFileSync(filename) {
20
+ return _super.call(this, filename, {
21
+ parse: JSON.parse,
22
+ stringify: function (data) { return JSON.stringify(data, null, 2); },
23
+ }) || this;
24
+ }
25
+ return JSONFileSync;
26
+ }(DataFile_1.DataFileSync));
27
+ exports.JSONFileSync = JSONFileSync;
28
+ //# sourceMappingURL=JSONFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSONFile.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;AAEA,uCAAmD;AAEnD;IAAiC,oCAAW;IAC1C,kBAAY,QAAkB;eAC5B,kBAAM,QAAQ,EAAE;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,UAAC,IAAO,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAA7B,CAA6B;SACtD,CAAC;IACJ,CAAC;IACH,eAAC;AAAD,CAAC,AAPD,CAAiC,mBAAQ,GAOxC;AAPY,4BAAQ;AASrB;IAAqC,wCAAe;IAClD,sBAAY,QAAkB;eAC5B,kBAAM,QAAQ,EAAE;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,UAAC,IAAO,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAA7B,CAA6B;SACtD,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAPD,CAAqC,uBAAY,GAOhD;AAPY,oCAAY"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import { PathLike } from 'node:fs';
3
+ import { Writer } from './steno';
4
+ import { Adapter, SyncAdapter } from '../../core/Low';
5
+ export declare class TextFile implements Adapter<string> {
6
+ __filename: PathLike;
7
+ __writer: Writer;
8
+ constructor(filename: PathLike);
9
+ read(): Promise<string | null>;
10
+ write(str: string): Promise<void>;
11
+ }
12
+ export declare class TextFileSync implements SyncAdapter<string> {
13
+ __tempFilename: PathLike;
14
+ __filename: PathLike;
15
+ constructor(filename: PathLike);
16
+ read(): string | null;
17
+ write(str: string): void;
18
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextFileSync = exports.TextFile = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var node_fs_1 = require("node:fs");
6
+ var promises_1 = require("node:fs/promises");
7
+ var tnp_core_1 = require("tnp-core");
8
+ var steno_1 = require("./steno");
9
+ var TextFile = /** @class */ (function () {
10
+ function TextFile(filename) {
11
+ this.__filename = filename;
12
+ this.__writer = new steno_1.Writer(filename);
13
+ }
14
+ TextFile.prototype.read = function () {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
16
+ var data, e_1;
17
+ return tslib_1.__generator(this, function (_a) {
18
+ switch (_a.label) {
19
+ case 0:
20
+ _a.trys.push([0, 2, , 3]);
21
+ return [4 /*yield*/, (0, promises_1.readFile)(this.__filename, 'utf-8')];
22
+ case 1:
23
+ data = _a.sent();
24
+ return [3 /*break*/, 3];
25
+ case 2:
26
+ e_1 = _a.sent();
27
+ if (e_1.code === 'ENOENT') {
28
+ return [2 /*return*/, null];
29
+ }
30
+ throw e_1;
31
+ case 3: return [2 /*return*/, data];
32
+ }
33
+ });
34
+ });
35
+ };
36
+ TextFile.prototype.write = function (str) {
37
+ return this.__writer.write(str);
38
+ };
39
+ return TextFile;
40
+ }());
41
+ exports.TextFile = TextFile;
42
+ var TextFileSync = /** @class */ (function () {
43
+ function TextFileSync(filename) {
44
+ this.__filename = filename;
45
+ var f = filename.toString();
46
+ this.__tempFilename = tnp_core_1.path.join(tnp_core_1.path.dirname(f), ".".concat(tnp_core_1.path.basename(f), ".tmp"));
47
+ }
48
+ TextFileSync.prototype.read = function () {
49
+ var data;
50
+ try {
51
+ data = (0, node_fs_1.readFileSync)(this.__filename, 'utf-8');
52
+ }
53
+ catch (e) {
54
+ if (e.code === 'ENOENT') {
55
+ return null;
56
+ }
57
+ throw e;
58
+ }
59
+ return data;
60
+ };
61
+ TextFileSync.prototype.write = function (str) {
62
+ (0, node_fs_1.writeFileSync)(this.__tempFilename, str);
63
+ (0, node_fs_1.renameSync)(this.__tempFilename, this.__filename);
64
+ };
65
+ return TextFileSync;
66
+ }());
67
+ exports.TextFileSync = TextFileSync;
68
+ //# sourceMappingURL=TextFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFile.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;AAAA,mCAA2E;AAC3E,6CAA2C;AAC3C,qCAAgC;AAEhC,iCAAgC;AAIhC;IAIE,kBAAY,QAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAM,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAEK,uBAAI,GAAV;;;;;;;wBAIW,qBAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;wBAA/C,IAAI,GAAG,SAAwC,CAAA;;;;wBAE/C,IAAK,GAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE;4BAClD,sBAAO,IAAI,EAAA;yBACZ;wBACD,MAAM,GAAC,CAAA;4BAGT,sBAAO,IAAI,EAAA;;;;KACZ;IAED,wBAAK,GAAL,UAAM,GAAW;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAQ,CAAC;IACzC,CAAC;IACH,eAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,4BAAQ;AA6BrB;IAIE,sBAAY,QAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;QAC1B,IAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,eAAI,CAAC,IAAI,CAAC,eAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAI,eAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAM,CAAC,CAAA;IAC9E,CAAC;IAED,2BAAI,GAAJ;QACE,IAAI,IAAI,CAAA;QAER,IAAI;YACF,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAClD,OAAO,IAAI,CAAA;aACZ;YACD,MAAM,CAAC,CAAA;SACR;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4BAAK,GAAL,UAAM,GAAW;QACf,IAAA,uBAAa,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QACvC,IAAA,oBAAU,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,CAAC;IACH,mBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,oCAAY"}
@@ -0,0 +1,13 @@
1
+ export declare class Writer {
2
+ __filename: any;
3
+ __tempFilename: any;
4
+ __locked: boolean;
5
+ __prev: any;
6
+ __next: any;
7
+ __nextPromise: any;
8
+ __nextData: any;
9
+ __add(data: any): Promise<unknown>;
10
+ __write(data: any): Promise<void>;
11
+ constructor(filename: any);
12
+ write(data: any): Promise<unknown>;
13
+ }
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Writer = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var promises_1 = require("node:fs/promises");
6
+ var node_path_1 = require("node:path");
7
+ var node_url_1 = require("node:url");
8
+ // Returns a temporary file
9
+ // Example: for /some/file will return /some/.file.tmp
10
+ function getTempFilename(file) {
11
+ var f = file instanceof URL ? (0, node_url_1.fileURLToPath)(file) : file.toString();
12
+ return (0, node_path_1.join)((0, node_path_1.dirname)(f), ".".concat((0, node_path_1.basename)(f), ".tmp"));
13
+ }
14
+ // Retries an asynchronous operation with a delay between retries and a maximum retry count
15
+ function retryAsyncOperation(fn, maxRetries, delayMs) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
17
+ var i, error_1;
18
+ return tslib_1.__generator(this, function (_a) {
19
+ switch (_a.label) {
20
+ case 0:
21
+ i = 0;
22
+ _a.label = 1;
23
+ case 1:
24
+ if (!(i < maxRetries)) return [3 /*break*/, 9];
25
+ _a.label = 2;
26
+ case 2:
27
+ _a.trys.push([2, 4, , 8]);
28
+ return [4 /*yield*/, fn()];
29
+ case 3: return [2 /*return*/, _a.sent()];
30
+ case 4:
31
+ error_1 = _a.sent();
32
+ if (!(i < maxRetries - 1)) return [3 /*break*/, 6];
33
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delayMs); })];
34
+ case 5:
35
+ _a.sent();
36
+ return [3 /*break*/, 7];
37
+ case 6: throw error_1; // Rethrow the error if max retries reached
38
+ case 7: return [3 /*break*/, 8];
39
+ case 8:
40
+ i++;
41
+ return [3 /*break*/, 1];
42
+ case 9: return [2 /*return*/];
43
+ }
44
+ });
45
+ });
46
+ }
47
+ var Writer = /** @class */ (function () {
48
+ function Writer(filename) {
49
+ this.__locked = false;
50
+ this.__prev = null;
51
+ this.__next = null;
52
+ this.__nextPromise = null;
53
+ this.__nextData = null;
54
+ this.__filename = filename;
55
+ this.__tempFilename = getTempFilename(filename);
56
+ }
57
+ // File is locked, add data for later
58
+ Writer.prototype.__add = function (data) {
59
+ var _this = this;
60
+ // Only keep most recent data
61
+ this.__nextData = data;
62
+ // Create a singleton promise to resolve all next promises once next data is written
63
+ this.__nextPromise || (this.__nextPromise = new Promise(function (resolve, reject) {
64
+ _this.__next = [resolve, reject];
65
+ }));
66
+ // Return a promise that will resolve at the same time as next promise
67
+ return new Promise(function (resolve, reject) {
68
+ var _a;
69
+ (_a = _this.__nextPromise) === null || _a === void 0 ? void 0 : _a.then(resolve).catch(reject);
70
+ });
71
+ };
72
+ // File isn't locked, write data
73
+ Writer.prototype.__write = function (data) {
74
+ var _a, _b;
75
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
76
+ var err_1, nextData;
77
+ var _this = this;
78
+ return tslib_1.__generator(this, function (_c) {
79
+ switch (_c.label) {
80
+ case 0:
81
+ // Lock file
82
+ this.__locked = true;
83
+ _c.label = 1;
84
+ case 1:
85
+ _c.trys.push([1, 4, 5, 8]);
86
+ // Atomic write
87
+ return [4 /*yield*/, (0, promises_1.writeFile)(this.__tempFilename, data, 'utf-8')];
88
+ case 2:
89
+ // Atomic write
90
+ _c.sent();
91
+ return [4 /*yield*/, retryAsyncOperation(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
92
+ return tslib_1.__generator(this, function (_a) {
93
+ switch (_a.label) {
94
+ case 0: return [4 /*yield*/, (0, promises_1.rename)(this.__tempFilename, this.__filename)];
95
+ case 1:
96
+ _a.sent();
97
+ return [2 /*return*/];
98
+ }
99
+ });
100
+ }); }, 10, 100)];
101
+ case 3:
102
+ _c.sent();
103
+ // Call resolve
104
+ (_a = this.__prev) === null || _a === void 0 ? void 0 : _a[0]();
105
+ return [3 /*break*/, 8];
106
+ case 4:
107
+ err_1 = _c.sent();
108
+ // Call reject
109
+ if (err_1 instanceof Error) {
110
+ (_b = this.__prev) === null || _b === void 0 ? void 0 : _b[1](err_1);
111
+ }
112
+ throw err_1;
113
+ case 5:
114
+ // Unlock file
115
+ this.__locked = false;
116
+ this.__prev = this.__next;
117
+ this.__next = this.__nextPromise = null;
118
+ if (!(this.__nextData !== null)) return [3 /*break*/, 7];
119
+ nextData = this.__nextData;
120
+ this.__nextData = null;
121
+ return [4 /*yield*/, this.write(nextData)];
122
+ case 6:
123
+ _c.sent();
124
+ _c.label = 7;
125
+ case 7: return [7 /*endfinally*/];
126
+ case 8: return [2 /*return*/];
127
+ }
128
+ });
129
+ });
130
+ };
131
+ Writer.prototype.write = function (data) {
132
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
133
+ return tslib_1.__generator(this, function (_a) {
134
+ return [2 /*return*/, this.__locked ? this.__add(data) : this.__write(data)];
135
+ });
136
+ });
137
+ };
138
+ return Writer;
139
+ }());
140
+ exports.Writer = Writer;
141
+ //# sourceMappingURL=steno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steno.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './adapters/browser/LocalStorage';
2
+ export * from './adapters/browser/SessionStorage';
3
+ export * from './presets/browser';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapters/browser/LocalStorage"), exports);
5
+ tslib_1.__exportStar(require("./adapters/browser/SessionStorage"), exports);
6
+ tslib_1.__exportStar(require("./presets/browser"), exports);
7
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,0EAA+C;AAC/C,4EAAiD;AACjD,4DAAiC"}
@@ -0,0 +1,24 @@
1
+ export interface Adapter<T> {
2
+ read: () => Promise<T | null>;
3
+ write: (data: T) => Promise<void>;
4
+ }
5
+ export interface SyncAdapter<T> {
6
+ read: () => T | null;
7
+ write: (data: T) => void;
8
+ }
9
+ export declare class Low<T = unknown> {
10
+ adapter: Adapter<T>;
11
+ data: T;
12
+ constructor(adapter: Adapter<T>, defaultData: T);
13
+ read(): Promise<void>;
14
+ write(): Promise<void>;
15
+ update(fn: (data: T) => unknown): Promise<void>;
16
+ }
17
+ export declare class LowSync<T = unknown> {
18
+ adapter: SyncAdapter<T>;
19
+ data: T;
20
+ constructor(adapter: SyncAdapter<T>, defaultData: T);
21
+ read(): void;
22
+ write(): void;
23
+ update(fn: (data: T) => unknown): void;
24
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LowSync = exports.Low = void 0;
4
+ var tslib_1 = require("tslib");
5
+ function checkArgs(adapter, defaultData) {
6
+ if (adapter === undefined)
7
+ throw new Error('lowdb: missing adapter');
8
+ if (defaultData === undefined)
9
+ throw new Error('lowdb: missing default data');
10
+ }
11
+ var Low = /** @class */ (function () {
12
+ function Low(adapter, defaultData) {
13
+ checkArgs(adapter, defaultData);
14
+ this.adapter = adapter;
15
+ this.data = defaultData;
16
+ }
17
+ Low.prototype.read = function () {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
19
+ var data;
20
+ return tslib_1.__generator(this, function (_a) {
21
+ switch (_a.label) {
22
+ case 0: return [4 /*yield*/, this.adapter.read()];
23
+ case 1:
24
+ data = _a.sent();
25
+ if (data)
26
+ this.data = data;
27
+ return [2 /*return*/];
28
+ }
29
+ });
30
+ });
31
+ };
32
+ Low.prototype.write = function () {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
34
+ return tslib_1.__generator(this, function (_a) {
35
+ switch (_a.label) {
36
+ case 0:
37
+ if (!this.data) return [3 /*break*/, 2];
38
+ return [4 /*yield*/, this.adapter.write(this.data)];
39
+ case 1:
40
+ _a.sent();
41
+ _a.label = 2;
42
+ case 2: return [2 /*return*/];
43
+ }
44
+ });
45
+ });
46
+ };
47
+ Low.prototype.update = function (fn) {
48
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
49
+ return tslib_1.__generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ fn(this.data);
53
+ return [4 /*yield*/, this.write()];
54
+ case 1:
55
+ _a.sent();
56
+ return [2 /*return*/];
57
+ }
58
+ });
59
+ });
60
+ };
61
+ return Low;
62
+ }());
63
+ exports.Low = Low;
64
+ var LowSync = /** @class */ (function () {
65
+ function LowSync(adapter, defaultData) {
66
+ checkArgs(adapter, defaultData);
67
+ this.adapter = adapter;
68
+ this.data = defaultData;
69
+ }
70
+ LowSync.prototype.read = function () {
71
+ var data = this.adapter.read();
72
+ if (data)
73
+ this.data = data;
74
+ };
75
+ LowSync.prototype.write = function () {
76
+ if (this.data)
77
+ this.adapter.write(this.data);
78
+ };
79
+ LowSync.prototype.update = function (fn) {
80
+ fn(this.data);
81
+ this.write();
82
+ };
83
+ return LowSync;
84
+ }());
85
+ exports.LowSync = LowSync;
86
+ //# sourceMappingURL=Low.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Low.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;AAUA,SAAS,SAAS,CAAC,OAAgB,EAAE,WAAoB;IACvD,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACpE,IAAI,WAAW,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;AAC/E,CAAC;AAED;IAIE,aAAY,OAAmB,EAAE,WAAc;QAC7C,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,CAAC;IAEK,kBAAI,GAAV;;;;;4BACe,qBAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAA;;wBAAhC,IAAI,GAAG,SAAyB;wBACtC,IAAI,IAAI;4BAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;;;;;KAC3B;IAEK,mBAAK,GAAX;;;;;6BACM,IAAI,CAAC,IAAI,EAAT,wBAAS;wBAAE,qBAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAAnC,SAAmC,CAAA;;;;;;KACnD;IAEK,oBAAM,GAAZ,UAAa,EAAwB;;;;;wBACnC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBACb,qBAAM,IAAI,CAAC,KAAK,EAAE,EAAA;;wBAAlB,SAAkB,CAAA;;;;;KACnB;IACH,UAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,kBAAG;AAyBhB;IAIE,iBAAY,OAAuB,EAAE,WAAc;QACjD,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,CAAC;IAED,sBAAI,GAAJ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,uBAAK,GAAL;QACE,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,wBAAM,GAAN,UAAO,EAAwB;QAC7B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IACH,cAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,0BAAO"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var browser_1 = require("../presets/browser");
4
+ var defaultData = { messages: [] };
5
+ var db = (0, browser_1.LocalStoragePreset)('db', defaultData);
6
+ db.update(function (_a) {
7
+ var messages = _a.messages;
8
+ return messages.push('foo');
9
+ });
10
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,8CAAuD;AAMvD,IAAM,WAAW,GAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AAC1C,IAAM,EAAE,GAAG,IAAA,4BAAkB,EAAO,IAAI,EAAE,WAAW,CAAC,CAAA;AAEtD,EAAE,CAAC,MAAM,CAAC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAAO,OAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAApB,CAAoB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var node_1 = require("../presets/node");
4
+ var message = process.argv[2] || '';
5
+ var defaultData = { messages: [] };
6
+ var db = (0, node_1.JSONFileSyncPreset)('file.json', defaultData);
7
+ db.update(function (_a) {
8
+ var messages = _a.messages;
9
+ return messages.push(message);
10
+ });
11
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,wCAAoD;AAMpD,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAErC,IAAM,WAAW,GAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AAC1C,IAAM,EAAE,GAAG,IAAA,yBAAkB,EAAO,WAAW,EAAE,WAAW,CAAC,CAAA;AAE7D,EAAE,CAAC,MAAM,CAAC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAAO,OAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAAtB,CAAsB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ declare global {
2
+ namespace NodeJS {
3
+ interface ProcessEnv {
4
+ NODE_ENV: 'test' | 'dev' | 'prod';
5
+ }
6
+ }
7
+ }
8
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // With this adapter, calling `db.write()` will do nothing.
4
+ // One use case for this adapter can be for tests.
5
+ var index_1 = require("../index");
6
+ var node_1 = require("../node");
7
+ var defaultData = {};
8
+ var adapter = process.env.NODE_ENV === 'test'
9
+ ? new index_1.MemorySync()
10
+ : new node_1.JSONFileSync('db.json');
11
+ var db = new index_1.LowSync(adapter, defaultData);
12
+ db.read();
13
+ // Rest of your code...
14
+ //# sourceMappingURL=in-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,2DAA2D;AAC3D,kDAAkD;AAClD,kCAA2D;AAC3D,gCAAsC;AAYtC,IAAM,WAAW,GAAS,EAAE,CAAA;AAC5B,IAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;IAC7B,CAAC,CAAC,IAAI,kBAAU,EAAQ;IACxB,CAAC,CAAC,IAAI,mBAAY,CAAO,SAAS,CAAC,CAAA;AAEvC,IAAM,EAAE,GAAG,IAAI,eAAO,CAAO,OAAO,EAAE,WAAW,CAAC,CAAA;AAClD,EAAE,CAAC,IAAI,EAAE,CAAA;AACT,uBAAuB"}
File without changes
@@ -0,0 +1,36 @@
1
+ // // Note: if you're developing a local server and don't expect to get concurrent requests,
2
+ // // it can be easier to use `JSONFileSync` adapter.
3
+ // // But if you need to avoid blocking requests, you can do so by using `JSONFile` adapter.
4
+ // import express from 'express'
5
+ // import asyncHandler from 'express-async-handler'
6
+ // import { JSONFilePreset } from '../presets/node'
7
+ // const app = express()
8
+ // app.use(express.json())
9
+ // type Post = {
10
+ // id: string
11
+ // body: string
12
+ // }
13
+ // type Data = {
14
+ // posts: Post[]
15
+ // }
16
+ // const defaultData: Data = { posts: [] }
17
+ // const db = await JSONFilePreset<Data>('db.json', defaultData)
18
+ // // db.data can be destructured to avoid typing `db.data` everywhere
19
+ // const { posts } = db.data
20
+ // app.get('/posts/:id', (req, res) => {
21
+ // const post = posts.find((p) => p.id === req.params.id)
22
+ // res.send(post)
23
+ // })
24
+ // app.post(
25
+ // '/posts',
26
+ // asyncHandler(async (req, res) => {
27
+ // const post = req.body as Post
28
+ // post.id = String(posts.length + 1)
29
+ // await db.update(({ posts }) => posts.push(post))
30
+ // res.send(post)
31
+ // }),
32
+ // )
33
+ // app.listen(3000, () => {
34
+ // console.log('listening on port 3000')
35
+ // })
36
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,qDAAqD;AACrD,4FAA4F;AAC5F,gCAAgC;AAChC,mDAAmD;AAEnD,mDAAmD;AAEnD,wBAAwB;AACxB,0BAA0B;AAE1B,gBAAgB;AAChB,eAAe;AACf,iBAAiB;AACjB,IAAI;AAEJ,gBAAgB;AAChB,kBAAkB;AAClB,IAAI;AAEJ,0CAA0C;AAC1C,gEAAgE;AAEhE,sEAAsE;AACtE,4BAA4B;AAE5B,wCAAwC;AACxC,2DAA2D;AAC3D,mBAAmB;AACnB,KAAK;AAEL,YAAY;AACZ,cAAc;AACd,uCAAuC;AACvC,oCAAoC;AACpC,yCAAyC;AACzC,uDAAuD;AACvD,qBAAqB;AACrB,QAAQ;AACR,IAAI;AAEJ,2BAA2B;AAC3B,0CAA0C;AAC1C,KAAK"}
@@ -0,0 +1,2 @@
1
+ export * from './adapters/Memory';
2
+ export * from './core/Low';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapters/Memory"), exports);
5
+ tslib_1.__exportStar(require("./core/Low"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,qDAA0B"}
@@ -0,0 +1,4 @@
1
+ export * from './adapters/node/DataFile';
2
+ export * from './adapters/node/JSONFile';
3
+ export * from './adapters/node/TextFile';
4
+ export * from './presets/node';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./adapters/node/DataFile"), exports);
5
+ tslib_1.__exportStar(require("./adapters/node/JSONFile"), exports);
6
+ tslib_1.__exportStar(require("./adapters/node/TextFile"), exports);
7
+ tslib_1.__exportStar(require("./presets/node"), exports);
8
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,mEAAwC;AACxC,mEAAwC;AACxC,mEAAwC;AACxC,yDAA8B"}
@@ -0,0 +1,3 @@
1
+ import { LowSync } from '../index';
2
+ export declare function LocalStoragePreset<Data>(key: string, defaultData: Data): LowSync<Data>;
3
+ export declare function SessionStoragePreset<Data>(key: string, defaultData: Data): LowSync<Data>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStoragePreset = exports.LocalStoragePreset = void 0;
4
+ var LocalStorage_1 = require("../adapters/browser/LocalStorage");
5
+ var SessionStorage_1 = require("../adapters/browser/SessionStorage");
6
+ var index_1 = require("../index");
7
+ function LocalStoragePreset(key, defaultData) {
8
+ var adapter = new LocalStorage_1.LocalStorage(key);
9
+ var db = new index_1.LowSync(adapter, defaultData);
10
+ db.read();
11
+ return db;
12
+ }
13
+ exports.LocalStoragePreset = LocalStoragePreset;
14
+ function SessionStoragePreset(key, defaultData) {
15
+ var adapter = new SessionStorage_1.SessionStorage(key);
16
+ var db = new index_1.LowSync(adapter, defaultData);
17
+ db.read();
18
+ return db;
19
+ }
20
+ exports.SessionStoragePreset = SessionStoragePreset;
21
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,iEAA+D;AAC/D,qEAAmE;AACnE,kCAAkC;AAElC,SAAgB,kBAAkB,CAChC,GAAW,EACX,WAAiB;IAEjB,IAAM,OAAO,GAAG,IAAI,2BAAY,CAAO,GAAG,CAAC,CAAA;IAC3C,IAAM,EAAE,GAAG,IAAI,eAAO,CAAO,OAAO,EAAE,WAAW,CAAC,CAAA;IAClD,EAAE,CAAC,IAAI,EAAE,CAAA;IACT,OAAO,EAAE,CAAA;AACX,CAAC;AARD,gDAQC;AAED,SAAgB,oBAAoB,CAClC,GAAW,EACX,WAAiB;IAEjB,IAAM,OAAO,GAAG,IAAI,+BAAc,CAAO,GAAG,CAAC,CAAA;IAC7C,IAAM,EAAE,GAAG,IAAI,eAAO,CAAO,OAAO,EAAE,WAAW,CAAC,CAAA;IAClD,EAAE,CAAC,IAAI,EAAE,CAAA;IACT,OAAO,EAAE,CAAA;AACX,CAAC;AARD,oDAQC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { PathLike } from 'node:fs';
3
+ import { Low, LowSync } from '../core/Low';
4
+ export declare function JSONFilePreset<Data>(filename: PathLike, defaultData: Data): Promise<Low<Data>>;
5
+ export declare function JSONFileSyncPreset<Data>(filename: PathLike, defaultData: Data): LowSync<Data>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSONFileSyncPreset = exports.JSONFilePreset = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var Memory_1 = require("../adapters/Memory");
6
+ var JSONFile_1 = require("../adapters/node/JSONFile");
7
+ var Low_1 = require("../core/Low");
8
+ function JSONFilePreset(filename, defaultData) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
10
+ var adapter, db;
11
+ return tslib_1.__generator(this, function (_a) {
12
+ switch (_a.label) {
13
+ case 0:
14
+ adapter = process.env.NODE_ENV === 'test'
15
+ ? new Memory_1.Memory()
16
+ : new JSONFile_1.JSONFile(filename);
17
+ db = new Low_1.Low(adapter, defaultData);
18
+ return [4 /*yield*/, db.read()];
19
+ case 1:
20
+ _a.sent();
21
+ return [2 /*return*/, db];
22
+ }
23
+ });
24
+ });
25
+ }
26
+ exports.JSONFilePreset = JSONFilePreset;
27
+ function JSONFileSyncPreset(filename, defaultData) {
28
+ var adapter = process.env.NODE_ENV === 'test'
29
+ ? new Memory_1.MemorySync()
30
+ : new JSONFile_1.JSONFileSync(filename);
31
+ var db = new Low_1.LowSync(adapter, defaultData);
32
+ db.read();
33
+ return db;
34
+ }
35
+ exports.JSONFileSyncPreset = JSONFileSyncPreset;
36
+ //# sourceMappingURL=node.js.map