taon-storage 18.0.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.
- package/assets/shared/shared_folder_info.txt +7 -0
- package/browser/README.md +24 -0
- package/browser/esm2022/lib/constants.mjs +30 -0
- package/browser/esm2022/lib/file-stor.mjs +56 -0
- package/browser/esm2022/lib/helpers.mjs +10 -0
- package/browser/esm2022/lib/index.mjs +4 -0
- package/browser/esm2022/lib/models.mjs +4 -0
- package/browser/esm2022/lib/storage.mjs +187 -0
- package/browser/esm2022/public-api.mjs +2 -0
- package/browser/esm2022/taon-storage.mjs +5 -0
- package/browser/fesm2022/taon-storage.mjs +235 -0
- package/browser/fesm2022/taon-storage.mjs.map +1 -0
- package/browser/index.d.ts +6 -0
- package/browser/lib/constants.d.ts +4 -0
- package/browser/lib/file-stor.d.ts +10 -0
- package/browser/lib/helpers.d.ts +3 -0
- package/browser/lib/index.d.ts +2 -0
- package/browser/lib/models.d.ts +11 -0
- package/browser/lib/storage.d.ts +33 -0
- package/browser/package.json +25 -0
- package/browser/public-api.d.ts +2 -0
- package/client/README.md +24 -0
- package/client/esm2022/lib/constants.mjs +30 -0
- package/client/esm2022/lib/file-stor.mjs +56 -0
- package/client/esm2022/lib/helpers.mjs +10 -0
- package/client/esm2022/lib/index.mjs +4 -0
- package/client/esm2022/lib/models.mjs +4 -0
- package/client/esm2022/lib/storage.mjs +187 -0
- package/client/esm2022/public-api.mjs +2 -0
- package/client/esm2022/taon-storage.mjs +5 -0
- package/client/fesm2022/taon-storage.mjs +235 -0
- package/client/fesm2022/taon-storage.mjs.map +1 -0
- package/client/index.d.ts +6 -0
- package/client/lib/constants.d.ts +4 -0
- package/client/lib/file-stor.d.ts +10 -0
- package/client/lib/helpers.d.ts +3 -0
- package/client/lib/index.d.ts +2 -0
- package/client/lib/models.d.ts +11 -0
- package/client/lib/storage.d.ts +33 -0
- package/client/public-api.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +1 -0
- package/lib/build-info._auto-generated_.js +5 -0
- package/lib/build-info._auto-generated_.js.map +1 -0
- package/lib/constants.d.ts +3 -0
- package/lib/constants.js +48 -0
- package/lib/constants.js.map +1 -0
- package/lib/file-stor.d.ts +9 -0
- package/lib/file-stor.js +94 -0
- package/lib/file-stor.js.map +1 -0
- package/lib/helpers.d.ts +2 -0
- package/lib/helpers.js +15 -0
- package/lib/helpers.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/models.d.ts +10 -0
- package/lib/models.js +5 -0
- package/lib/models.js.map +1 -0
- package/lib/storage.d.ts +38 -0
- package/lib/storage.js +296 -0
- package/lib/storage.js.map +1 -0
- package/package.json +42 -0
- package/src.d.ts +6 -0
- package/taon.jsonc +30 -0
- package/tmp-environment.json +358 -0
- package/websql/README.md +24 -0
- package/websql/esm2022/lib/constants.mjs +30 -0
- package/websql/esm2022/lib/file-stor.mjs +56 -0
- package/websql/esm2022/lib/helpers.mjs +10 -0
- package/websql/esm2022/lib/index.mjs +4 -0
- package/websql/esm2022/lib/models.mjs +4 -0
- package/websql/esm2022/lib/storage.mjs +187 -0
- package/websql/esm2022/public-api.mjs +2 -0
- package/websql/esm2022/taon-storage.mjs +5 -0
- package/websql/fesm2022/taon-storage.mjs +235 -0
- package/websql/fesm2022/taon-storage.mjs.map +1 -0
- package/websql/index.d.ts +6 -0
- package/websql/lib/constants.d.ts +4 -0
- package/websql/lib/file-stor.d.ts +10 -0
- package/websql/lib/helpers.d.ts +3 -0
- package/websql/lib/index.d.ts +2 -0
- package/websql/lib/models.d.ts +11 -0
- package/websql/lib/storage.d.ts +33 -0
- package/websql/package.json +25 -0
- package/websql/public-api.d.ts +2 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { Helpers, _ } from 'tnp-core/browser';
|
|
2
|
+
import * as localForge from 'localforage';
|
|
3
|
+
|
|
4
|
+
const keyValue = (classFun, memberName) => {
|
|
5
|
+
const res = `taon.localstorage.class.${classFun.name}.prop.${memberName}`;
|
|
6
|
+
return res;
|
|
7
|
+
};
|
|
8
|
+
const keyDefaultValueAreadySet = (classFun, memberName) => {
|
|
9
|
+
const res = keyValue(classFun, memberName) + 'defaultvalueisset';
|
|
10
|
+
return res;
|
|
11
|
+
};
|
|
12
|
+
({}); // @--end-of-file-for-module=taon-storage lib/helpers.ts
|
|
13
|
+
|
|
14
|
+
const storeName = 'taon-storage_'
|
|
15
|
+
+ window?.location.port;
|
|
16
|
+
let environment = {};
|
|
17
|
+
/* */
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
environment = window['ENV'];
|
|
22
|
+
const websql = Helpers.isWebSQL ? 'websql' : '';
|
|
23
|
+
const storLocalStorage = localForge.createInstance({
|
|
24
|
+
driver: localForge.LOCALSTORAGE,
|
|
25
|
+
storeName: [
|
|
26
|
+
storeName,
|
|
27
|
+
'LOCALSTORAGE',
|
|
28
|
+
_.kebabCase(environment?.currentProjectGenericName) + websql,
|
|
29
|
+
].join('_'), // + _.kebabCase(window.location.origin),
|
|
30
|
+
}); // TODO UNCOMMENT any
|
|
31
|
+
const storIndexdDb = localForge.createInstance({
|
|
32
|
+
driver: localForge.INDEXEDDB,
|
|
33
|
+
storeName: [
|
|
34
|
+
storeName,
|
|
35
|
+
'INDEXEDDB',
|
|
36
|
+
_.kebabCase(environment?.currentProjectGenericName) + websql,
|
|
37
|
+
].join('_')
|
|
38
|
+
}); // TODO UNCOMMENT any
|
|
39
|
+
;
|
|
40
|
+
({}); // @--end-of-file-for-module=taon-storage lib/constants.ts
|
|
41
|
+
|
|
42
|
+
const AWAITING_INTERVAL_TIME = 200;
|
|
43
|
+
function uncache(onlyInThisComponentClass, propertyValueToDeleteFromCache) {
|
|
44
|
+
if (!onlyInThisComponentClass) { // @ts-ignore
|
|
45
|
+
onlyInThisComponentClass = { name: '__GLOBAL_NAMESPACE__' };
|
|
46
|
+
}
|
|
47
|
+
return Promise.all([
|
|
48
|
+
storLocalStorage.removeItem(keyValue(onlyInThisComponentClass, propertyValueToDeleteFromCache)),
|
|
49
|
+
storLocalStorage.removeItem(keyDefaultValueAreadySet(onlyInThisComponentClass, propertyValueToDeleteFromCache)),
|
|
50
|
+
storIndexdDb.removeItem(keyValue(onlyInThisComponentClass, propertyValueToDeleteFromCache)),
|
|
51
|
+
storIndexdDb.removeItem(keyDefaultValueAreadySet(onlyInThisComponentClass, propertyValueToDeleteFromCache)),
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
class TaonStorage {
|
|
55
|
+
constructor() {
|
|
56
|
+
this.action = (defaultValue, storageEngine, engine, transformFrom, transformTo) => {
|
|
57
|
+
if (!this.onlyInThisComponentClass) { // @ts-ignore
|
|
58
|
+
this.onlyInThisComponentClass = { name: '__GLOBAL_NAMESPACE__' };
|
|
59
|
+
}
|
|
60
|
+
return (target, memberName) => {
|
|
61
|
+
let currentValue = target[memberName];
|
|
62
|
+
const setItemDefaultValue = async () => {
|
|
63
|
+
const observe = {
|
|
64
|
+
engine,
|
|
65
|
+
id: 'setting default value'
|
|
66
|
+
};
|
|
67
|
+
TaonStorage.pendingOperatins.push(observe);
|
|
68
|
+
await new Promise((resolve, reject) => {
|
|
69
|
+
storageEngine.getItem(keyValue(this.onlyInThisComponentClass, memberName), (err, valFromDb) => {
|
|
70
|
+
currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;
|
|
71
|
+
resolve();
|
|
72
|
+
this.endObserverAction(observe);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
if (defaultValue !== void 0) {
|
|
77
|
+
const observe = {
|
|
78
|
+
engine,
|
|
79
|
+
id: 'setting not rivial default value'
|
|
80
|
+
};
|
|
81
|
+
TaonStorage.pendingOperatins.push(observe);
|
|
82
|
+
(new Promise((resolve, reject) => {
|
|
83
|
+
storageEngine.getItem(keyDefaultValueAreadySet(this.onlyInThisComponentClass, memberName), async (err, val) => {
|
|
84
|
+
if (val) {
|
|
85
|
+
await setItemDefaultValue();
|
|
86
|
+
resolve();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
await new Promise((res, rej) => {
|
|
90
|
+
storageEngine.setItem(keyDefaultValueAreadySet(this.onlyInThisComponentClass, memberName), true, (err, v) => {
|
|
91
|
+
res();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
await new Promise((res, rej) => {
|
|
95
|
+
storageEngine.setItem(keyValue(this.onlyInThisComponentClass, memberName), transformTo ? transformTo(defaultValue) : defaultValue, (err, val) => {
|
|
96
|
+
res();
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
currentValue = defaultValue;
|
|
100
|
+
resolve();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
})).then(() => {
|
|
104
|
+
this.endObserverAction(observe);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
setItemDefaultValue();
|
|
109
|
+
}
|
|
110
|
+
Object.defineProperty(target, memberName, {
|
|
111
|
+
set: (newValue) => {
|
|
112
|
+
const observe = {
|
|
113
|
+
engine,
|
|
114
|
+
id: 'setting in SET not rivial default value'
|
|
115
|
+
};
|
|
116
|
+
TaonStorage.pendingOperatins.push(observe);
|
|
117
|
+
(new Promise((resolve, reject) => {
|
|
118
|
+
storageEngine.setItem(keyValue(this.onlyInThisComponentClass, memberName), transformTo ? transformTo(newValue) : newValue, (err, savedValue) => {
|
|
119
|
+
resolve();
|
|
120
|
+
});
|
|
121
|
+
})).then(() => {
|
|
122
|
+
this.endObserverAction(observe);
|
|
123
|
+
});
|
|
124
|
+
currentValue = newValue;
|
|
125
|
+
},
|
|
126
|
+
get: () => currentValue,
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
static { this.pendingOperatins = []; }
|
|
132
|
+
static { this.id = 0; }
|
|
133
|
+
/**
|
|
134
|
+
* TODO This is fine for now, but could be something smarter here
|
|
135
|
+
*/
|
|
136
|
+
static async awaitPendingOperatios(id = TaonStorage.id++) {
|
|
137
|
+
if (id > Number.MAX_SAFE_INTEGER - 2) {
|
|
138
|
+
TaonStorage.id = 0;
|
|
139
|
+
id = TaonStorage.id++;
|
|
140
|
+
}
|
|
141
|
+
const pending = this.pendingOperatins;
|
|
142
|
+
const toDeleteIndex = [];
|
|
143
|
+
for (let index = 0; index < pending.length; index++) {
|
|
144
|
+
const op = pending[index];
|
|
145
|
+
if (!op.isDone) {
|
|
146
|
+
await new Promise(async (resovle, reject) => {
|
|
147
|
+
setTimeout(async () => {
|
|
148
|
+
await this.awaitPendingOperatios(id);
|
|
149
|
+
resovle();
|
|
150
|
+
}, AWAITING_INTERVAL_TIME);
|
|
151
|
+
});
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
toDeleteIndex.push(index);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
for (let index = 0; index < toDeleteIndex.length; index++) {
|
|
159
|
+
const toDelete = toDeleteIndex[index];
|
|
160
|
+
pending.splice(toDelete, 1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
static get property() {
|
|
164
|
+
return new TaonStorage();
|
|
165
|
+
}
|
|
166
|
+
/* */
|
|
167
|
+
/* */
|
|
168
|
+
get in() {
|
|
169
|
+
const that = this;
|
|
170
|
+
return {
|
|
171
|
+
get indexedb() {
|
|
172
|
+
that.engine = 'indexeddb';
|
|
173
|
+
return that;
|
|
174
|
+
},
|
|
175
|
+
get localstorage() {
|
|
176
|
+
that.engine = 'localstorage';
|
|
177
|
+
return that;
|
|
178
|
+
},
|
|
179
|
+
/* */
|
|
180
|
+
/* */
|
|
181
|
+
/* */
|
|
182
|
+
/* */
|
|
183
|
+
/* */
|
|
184
|
+
/* */
|
|
185
|
+
/* */
|
|
186
|
+
/* */
|
|
187
|
+
/* */
|
|
188
|
+
/* */
|
|
189
|
+
/* */
|
|
190
|
+
/* */
|
|
191
|
+
/* */
|
|
192
|
+
/* */
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
for(onlyInThisComponentClass) {
|
|
196
|
+
this.onlyInThisComponentClass = onlyInThisComponentClass;
|
|
197
|
+
return this;
|
|
198
|
+
}
|
|
199
|
+
withDefaultValue(defaultValue) {
|
|
200
|
+
return this.action(defaultValue, this.getEngine(), this.engine);
|
|
201
|
+
}
|
|
202
|
+
withOptions(options) {
|
|
203
|
+
const { defaultValue, transformFrom, transformTo } = (options || {});
|
|
204
|
+
return this.action(defaultValue ? defaultValue : this.defaultValue, this.getEngine(), this.engine, transformFrom, transformTo);
|
|
205
|
+
}
|
|
206
|
+
getEngine() {
|
|
207
|
+
switch (this.engine) {
|
|
208
|
+
case 'localstorage':
|
|
209
|
+
return storLocalStorage;
|
|
210
|
+
case 'indexeddb':
|
|
211
|
+
return storIndexdDb;
|
|
212
|
+
/* */
|
|
213
|
+
/* */
|
|
214
|
+
/* */
|
|
215
|
+
/* */
|
|
216
|
+
/* */
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
endObserverAction(observe) {
|
|
220
|
+
observe.isDone = true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const Stor = TaonStorage;
|
|
224
|
+
;
|
|
225
|
+
({}); // @--end-of-file-for-module=taon-storage lib/storage.ts
|
|
226
|
+
|
|
227
|
+
;
|
|
228
|
+
({}); // @--end-of-file-for-module=taon-storage lib/index.ts
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Generated bundle index. Do not edit.
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
export { Stor, uncache };
|
|
235
|
+
//# sourceMappingURL=taon-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/helpers.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/constants.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/storage.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/taon-storage.ts"],"sourcesContent":["\n\n\nexport const keyValue = (classFun, memberName) => {\n\n const res = `taon.localstorage.class.${classFun.name}.prop.${memberName}`\n return res;\n}\n\nexport const keyDefaultValueAreadySet = (classFun, memberName) => {\n const res = keyValue(classFun, memberName) + 'defaultvalueisset';\n return res;\n}\n\n\n\n ;({}); // @--end-of-file-for-module=taon-storage lib/helpers.ts","\n\n\nimport { Helpers, _ } from \"tnp-core/browser\";\n\nimport * as localForge from 'localforage';\n\n\n\n\nexport const storeName = 'taon-storage_'\n\n + window?.location.port;\n\n\n\n\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n\n// @ts-ignore\nenvironment = window['ENV'];\n\n\n\n\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n\nexport const storLocalStorage = localForge.createInstance({\n driver: localForge.LOCALSTORAGE,\n storeName: [\n storeName,\n 'LOCALSTORAGE',\n _.kebabCase(environment?.currentProjectGenericName) + websql,\n ].join('_')\n , // + _.kebabCase(window.location.origin),\n}) as any; // TODO UNCOMMENT any\n\n\n\n\n\nexport const storIndexdDb = localForge.createInstance({\n driver: localForge.INDEXEDDB,\n storeName: [\n storeName,\n 'INDEXEDDB',\n _.kebabCase(environment?.currentProjectGenericName) + websql,\n ].join('_')\n}) as any; // TODO UNCOMMENT any\n\n\n\n ;({}); // @--end-of-file-for-module=taon-storage lib/constants.ts","\n\n\nimport { _ } from 'tnp-core/browser';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n\nimport { storIndexdDb, storLocalStorage } from './constants';\n\n\n\n\nconst AWAITING_INTERVAL_TIME = 200;\n\n\n\nexport function uncache<CLASS_FUNCTION = any>(onlyInThisComponentClass: CLASS_FUNCTION, propertyValueToDeleteFromCache: keyof CLASS_FUNCTION) {\n if (!onlyInThisComponentClass) { // @ts-ignore\n onlyInThisComponentClass = { name: '__GLOBAL_NAMESPACE__' };\n }\n return Promise.all([\n\n storLocalStorage.removeItem(keyValue(onlyInThisComponentClass, propertyValueToDeleteFromCache)),\n storLocalStorage.removeItem(keyDefaultValueAreadySet(onlyInThisComponentClass, propertyValueToDeleteFromCache)),\n storIndexdDb.removeItem(keyValue(onlyInThisComponentClass, propertyValueToDeleteFromCache)),\n storIndexdDb.removeItem(keyDefaultValueAreadySet(onlyInThisComponentClass, propertyValueToDeleteFromCache)),\n\n ])\n}\n\n\nclass TaonStorage {\n\n\n private static pendingOperatins: Models.PendingOperation[] = [];\n private static id = 0;\n\n /**\n * TODO This is fine for now, but could be something smarter here\n */\n public static async awaitPendingOperatios(id = TaonStorage.id++): Promise<void> {\n\n if (id > Number.MAX_SAFE_INTEGER - 2) {\n TaonStorage.id = 0;\n id = TaonStorage.id++;\n }\n const pending = this.pendingOperatins as Models.PendingOperation[];\n const toDeleteIndex = [];\n for (let index = 0; index < pending.length; index++) {\n const op = pending[index] as Models.PendingOperation;\n\n if (!op.isDone) {\n await new Promise<void>(async (resovle, reject) => {\n setTimeout(async () => {\n await this.awaitPendingOperatios(id);\n resovle();\n }, AWAITING_INTERVAL_TIME)\n })\n return;\n } else {\n toDeleteIndex.push(index);\n }\n }\n for (let index = 0; index < toDeleteIndex.length; index++) {\n const toDelete = toDeleteIndex[index];\n pending.splice(toDelete, 1);\n }\n }\n\n static get property() {\n return new TaonStorage();\n }\n\n\n\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n\n/* */\n/* */\n \n\n\n\n\n public get in() {\n const that = this;\n return {\n get indexedb() {\n that.engine = 'indexeddb';\n return that as Omit<TaonStorage, 'in'>;\n },\n get localstorage() {\n that.engine = 'localstorage';\n return that as Omit<TaonStorage, 'in'>;\n },\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n\n\n\n\n\n\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n\n\n\n\n public withDefaultValue(defaultValue?: any): any {\n\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n\n\n\n withOptions(options: {\n /**\n * default value\n */\n defaultValue?: any;\n transformFrom?: (valueFromDb: any) => any,\n transformTo?: (valueThatGetToDB: any) => any,\n }) {\n const { defaultValue, transformFrom, transformTo } = (options || {}) as any;\n return this.action(\n defaultValue ? defaultValue : this.defaultValue,\n this.getEngine(),\n this.engine,\n transformFrom,\n transformTo,\n );\n }\n\n\n\n\n\n\n\n private getEngine() {\n switch (this.engine) {\n\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n\n\n\n private endObserverAction(observe: Models.PendingOperation) {\n\n observe.isDone = true;\n }\n\n\n\n private action = (\n defaultValue: any,\n storageEngine\n\n : Models.StorType\n\n ,\n engine: Models.StorgeEngine,\n transformFrom?,\n transformTo?,\n ) => {\n if (!this.onlyInThisComponentClass) { // @ts-ignore\n this.onlyInThisComponentClass = { name: '__GLOBAL_NAMESPACE__' };\n }\n\n return (target: any, memberName: string) => {\n let currentValue: any = target[memberName];\n\n const setItemDefaultValue = async () => {\n\n const observe = {\n engine,\n id: 'setting default value'\n } as Models.PendingOperation;\n TaonStorage.pendingOperatins.push(observe);\n\n await new Promise<void>((resolve, reject) => {\n storageEngine.getItem(keyValue(this.onlyInThisComponentClass, memberName), (err, valFromDb) => {\n\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n\n resolve();\n this.endObserverAction(observe);\n })\n });\n\n }\n\n if (defaultValue !== void 0) {\n\n const observe = {\n engine,\n id: 'setting not rivial default value'\n } as Models.PendingOperation;\n TaonStorage.pendingOperatins.push(observe);\n\n (new Promise<void>((resolve, reject) => {\n storageEngine.getItem(keyDefaultValueAreadySet(this.onlyInThisComponentClass, memberName), async (err, val) => {\n\n if (val) {\n await setItemDefaultValue();\n resolve()\n } else {\n await new Promise<void>((res, rej) => {\n storageEngine.setItem(keyDefaultValueAreadySet(this.onlyInThisComponentClass, memberName), true, (err, v) => {\n res();\n })\n });\n\n await new Promise<void>((res, rej) => {\n storageEngine.setItem(keyValue(this.onlyInThisComponentClass, memberName),\n transformTo ? transformTo(defaultValue) : defaultValue, (err, val) => {\n res();\n })\n });\n\n currentValue = defaultValue;\n\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n\n const observe = {\n engine,\n id: 'setting in SET not rivial default value'\n } as Models.PendingOperation;\n TaonStorage.pendingOperatins.push(observe);\n\n (new Promise<void>((resolve, reject) => {\n storageEngine.setItem(\n keyValue(this.onlyInThisComponentClass, memberName),\n transformTo ? transformTo(newValue) : newValue,\n (err, savedValue) => {\n resolve();\n }\n );\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n\n\n\n\n}\n\nexport const Stor = TaonStorage;\n\n ;({}); // @--end-of-file-for-module=taon-storage lib/storage.ts","\n\nexport * from './storage';\n\n ;({}); // @--end-of-file-for-module=taon-storage lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { Models } from "./models";
|
|
3
|
+
export declare class FileStor implements Models.StorType {
|
|
4
|
+
private filePath;
|
|
5
|
+
private useJSON;
|
|
6
|
+
constructor(filePath: string, useJSON?: boolean);
|
|
7
|
+
setItem<T>(key: string, value: T, callback?: (err: any, value: T) => void): Promise<T>;
|
|
8
|
+
getItem<T>(key: string, callback?: (err: any, value: T) => void): Promise<T>;
|
|
9
|
+
removeItem(key: string, callback?: (err: any) => void): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import type { storIndexdDb } from "./constants";
|
|
3
|
+
export declare namespace Models {
|
|
4
|
+
type StorType = Partial<(typeof storIndexdDb)>;
|
|
5
|
+
interface PendingOperation {
|
|
6
|
+
engine: StorgeEngine;
|
|
7
|
+
id: string;
|
|
8
|
+
isDone: boolean;
|
|
9
|
+
}
|
|
10
|
+
type StorgeEngine = 'localstorage' | 'indexeddb';
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
export declare function uncache<CLASS_FUNCTION = any>(onlyInThisComponentClass: CLASS_FUNCTION, propertyValueToDeleteFromCache: keyof CLASS_FUNCTION): Promise<[any, any, any, any]>;
|
|
3
|
+
declare class TaonStorage {
|
|
4
|
+
private static pendingOperatins;
|
|
5
|
+
private static id;
|
|
6
|
+
/**
|
|
7
|
+
* TODO This is fine for now, but could be something smarter here
|
|
8
|
+
*/
|
|
9
|
+
static awaitPendingOperatios(id?: number): Promise<void>;
|
|
10
|
+
static get property(): TaonStorage;
|
|
11
|
+
private onlyInThisComponentClass?;
|
|
12
|
+
private defaultValue;
|
|
13
|
+
private engine;
|
|
14
|
+
get in(): {
|
|
15
|
+
readonly indexedb: Omit<TaonStorage, "in">;
|
|
16
|
+
readonly localstorage: Omit<TaonStorage, "in">;
|
|
17
|
+
};
|
|
18
|
+
for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'>;
|
|
19
|
+
withDefaultValue(defaultValue?: any): any;
|
|
20
|
+
withOptions(options: {
|
|
21
|
+
/**
|
|
22
|
+
* default value
|
|
23
|
+
*/
|
|
24
|
+
defaultValue?: any;
|
|
25
|
+
transformFrom?: (valueFromDb: any) => any;
|
|
26
|
+
transformTo?: (valueThatGetToDB: any) => any;
|
|
27
|
+
}): (target: any, memberName: string) => void;
|
|
28
|
+
private getEngine;
|
|
29
|
+
private endObserverAction;
|
|
30
|
+
private action;
|
|
31
|
+
}
|
|
32
|
+
export declare const Stor: typeof TaonStorage;
|
|
33
|
+
export {};
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib';
|
package/index.js
ADDED
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,gDAAsB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BUILD_FRAMEWORK_CLI_NAME = "tnp";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-info._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AACa,QAAA,wBAAwB,GAAG,KAAK,CAAC"}
|
package/lib/constants.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeName = void 0;
|
|
4
|
+
//#region imports
|
|
5
|
+
var tnp_core_1 = require("tnp-core");
|
|
6
|
+
/* */
|
|
7
|
+
/* */
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region constants / store name
|
|
10
|
+
exports.storeName = 'taon-storage_';
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region constants / environment
|
|
15
|
+
var environment = {};
|
|
16
|
+
//#region @backend
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
environment = global['ENV'];
|
|
19
|
+
//#endregion
|
|
20
|
+
/* */
|
|
21
|
+
/* */
|
|
22
|
+
/* */
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region constant / stor local storage
|
|
25
|
+
var websql = tnp_core_1.Helpers.isWebSQL ? 'websql' : '';
|
|
26
|
+
/* */
|
|
27
|
+
/* */
|
|
28
|
+
/* */
|
|
29
|
+
/* */
|
|
30
|
+
/* */
|
|
31
|
+
/* */
|
|
32
|
+
/* */
|
|
33
|
+
/* */
|
|
34
|
+
/* */
|
|
35
|
+
/* */
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region constant / stor idndexedb storage
|
|
38
|
+
/* */
|
|
39
|
+
/* */
|
|
40
|
+
/* */
|
|
41
|
+
/* */
|
|
42
|
+
/* */
|
|
43
|
+
/* */
|
|
44
|
+
/* */
|
|
45
|
+
/* */
|
|
46
|
+
/* */
|
|
47
|
+
//#endregion
|
|
48
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,qCAAsC;AACtC,KAAK;AACL,KAAK;AAEL,YAAY;AAEZ,gCAAgC;AACnB,QAAA,SAAS,GAAG,eAAe,CAAA;AACxC,KAAK;AACL,KAAK;AAEL,YAAY;AAEZ,iCAAiC;AACjC,IAAI,WAAW,GAAG,EAAS,CAAC;AAC5B,kBAAkB;AAClB,aAAa;AACb,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAY;AACZ,KAAK;AACL,KAAK;AACL,KAAK;AAEL,YAAY;AAEZ,uCAAuC;AACvC,IAAM,MAAM,GAAG,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AAEL,YAAY;AAEZ,2CAA2C;AAC3C,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AAEL,YAAY"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Models } from "./models";
|
|
2
|
+
export declare class FileStor implements Models.StorType {
|
|
3
|
+
private filePath;
|
|
4
|
+
private useJSON;
|
|
5
|
+
constructor(filePath: string, useJSON?: boolean);
|
|
6
|
+
setItem<T>(key: string, value: T, callback?: (err: any, value: T) => void): Promise<T>;
|
|
7
|
+
getItem<T>(key: string, callback?: (err: any, value: T) => void): Promise<T>;
|
|
8
|
+
removeItem(key: string, callback?: (err: any) => void): Promise<void>;
|
|
9
|
+
}
|
package/lib/file-stor.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileStor = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var tnp_core_1 = require("tnp-core");
|
|
6
|
+
var FileStor = /** @class */ (function () {
|
|
7
|
+
function FileStor(filePath, useJSON) {
|
|
8
|
+
if (useJSON === void 0) { useJSON = false; }
|
|
9
|
+
this.filePath = filePath;
|
|
10
|
+
this.useJSON = useJSON;
|
|
11
|
+
}
|
|
12
|
+
FileStor.prototype.setItem = function (key, value, callback) {
|
|
13
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
14
|
+
var promise;
|
|
15
|
+
var _this = this;
|
|
16
|
+
return tslib_1.__generator(this, function (_a) {
|
|
17
|
+
switch (_a.label) {
|
|
18
|
+
case 0:
|
|
19
|
+
promise = new Promise(function (resolve, reject) {
|
|
20
|
+
if (_this.useJSON) {
|
|
21
|
+
tnp_core_1.Helpers.writeJson(_this.filePath, value);
|
|
22
|
+
callback(void 0, value);
|
|
23
|
+
resolve();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
tnp_core_1.Helpers.writeFile(_this.filePath, value);
|
|
27
|
+
callback(void 0, value);
|
|
28
|
+
resolve();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
// pendingOperatins.push(promise);
|
|
32
|
+
return [4 /*yield*/, promise];
|
|
33
|
+
case 1:
|
|
34
|
+
// pendingOperatins.push(promise);
|
|
35
|
+
_a.sent();
|
|
36
|
+
return [2 /*return*/, void 0];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
FileStor.prototype.getItem = function (key, callback) {
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var promise;
|
|
44
|
+
var _this = this;
|
|
45
|
+
return tslib_1.__generator(this, function (_a) {
|
|
46
|
+
switch (_a.label) {
|
|
47
|
+
case 0:
|
|
48
|
+
promise = new Promise(function (resolve, reject) {
|
|
49
|
+
if (_this.useJSON) {
|
|
50
|
+
var result = tnp_core_1.Helpers.readJson(_this.filePath);
|
|
51
|
+
callback(void 0, result);
|
|
52
|
+
resolve(result);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
var result = tnp_core_1.Helpers.readFile(_this.filePath);
|
|
56
|
+
callback(void 0, result);
|
|
57
|
+
resolve(result);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return [4 /*yield*/, promise];
|
|
61
|
+
case 1:
|
|
62
|
+
// pendingOperatins.push(promise);
|
|
63
|
+
return [2 /*return*/, _a.sent()];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
FileStor.prototype.removeItem = function (key, callback) {
|
|
69
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
70
|
+
var promise;
|
|
71
|
+
var _this = this;
|
|
72
|
+
return tslib_1.__generator(this, function (_a) {
|
|
73
|
+
switch (_a.label) {
|
|
74
|
+
case 0:
|
|
75
|
+
promise = new Promise(function (resolve, reject) {
|
|
76
|
+
tnp_core_1.Helpers.remove(_this.filePath, true);
|
|
77
|
+
callback(void 0);
|
|
78
|
+
resolve();
|
|
79
|
+
});
|
|
80
|
+
// pendingOperatins.push(promise);
|
|
81
|
+
return [4 /*yield*/, promise];
|
|
82
|
+
case 1:
|
|
83
|
+
// pendingOperatins.push(promise);
|
|
84
|
+
_a.sent();
|
|
85
|
+
return [2 /*return*/, void 0];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
return FileStor;
|
|
91
|
+
}());
|
|
92
|
+
exports.FileStor = FileStor;
|
|
93
|
+
//#endregion
|
|
94
|
+
//# sourceMappingURL=file-stor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-stor.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;AAAA,qCAAmC;AAInC;IAKE,kBACU,QAAgB,EAChB,OAAe;QAAf,wBAAA,EAAA,eAAe;QADf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAQ;IACrB,CAAC;IAEC,0BAAO,GAAb,UAAiB,GAAW,EAAE,KAAQ,EAAE,QAAuC;;;;;;;wBAEvE,OAAO,GAAG,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;4BAChD,IAAI,KAAI,CAAC,OAAO,EAAE,CAAC;gCACjB,kBAAO,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAY,CAAC,CAAC;gCAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gCACxB,OAAO,EAAE,CAAC;4BACZ,CAAC;iCAAM,CAAC;gCACN,kBAAO,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAY,CAAC,CAAC;gCAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gCACxB,OAAO,EAAE,CAAC;4BACZ,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,kCAAkC;wBAClC,qBAAM,OAAO,EAAA;;wBADb,kCAAkC;wBAClC,SAAa,CAAC;wBACd,sBAAO,KAAK,CAAC,EAAC;;;;KAEf;IACK,0BAAO,GAAb,UAAiB,GAAW,EAAE,QAAuC;;;;;;;wBAE7D,OAAO,GAAG,IAAI,OAAO,CAAI,UAAC,OAAO,EAAE,MAAM;4BAC7C,IAAI,KAAI,CAAC,OAAO,EAAE,CAAC;gCACjB,IAAM,MAAM,GAAG,kBAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;gCAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;gCACzB,OAAO,CAAC,MAAM,CAAC,CAAA;4BACjB,CAAC;iCAAM,CAAC;gCACN,IAAM,MAAM,GAAG,kBAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;gCAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAa,CAAC,CAAC;gCAChC,OAAO,CAAC,MAAa,CAAC,CAAA;4BACxB,CAAC;wBACH,CAAC,CAAC,CAAC;wBAEI,qBAAM,OAAO,EAAA;;oBADpB,kCAAkC;oBAClC,sBAAO,SAAa,EAAC;;;;KAEtB;IACK,6BAAU,GAAhB,UAAiB,GAAW,EAAE,QAA6B;;;;;;;wBAEnD,OAAO,GAAG,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;4BAChD,kBAAO,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;4BACpC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;4BACjB,OAAO,EAAE,CAAC;wBACZ,CAAC,CAAC,CAAC;wBACH,kCAAkC;wBAClC,qBAAM,OAAO,EAAA;;wBADb,kCAAkC;wBAClC,SAAa,CAAC;wBACd,sBAAO,KAAK,CAAC,EAAC;;;;KAEf;IACH,eAAC;AAAD,CAAC,AAzDD,IAyDC;AAzDY,4BAAQ;AA0DrB,YAAY"}
|
package/lib/helpers.d.ts
ADDED
package/lib/helpers.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.keyDefaultValueAreadySet = exports.keyValue = void 0;
|
|
4
|
+
var keyValue = function (classFun, memberName) {
|
|
5
|
+
// console.log('classname',classFun.name)
|
|
6
|
+
var res = "taon.localstorage.class.".concat(classFun.name, ".prop.").concat(memberName);
|
|
7
|
+
return res;
|
|
8
|
+
};
|
|
9
|
+
exports.keyValue = keyValue;
|
|
10
|
+
var keyDefaultValueAreadySet = function (classFun, memberName) {
|
|
11
|
+
var res = (0, exports.keyValue)(classFun, memberName) + 'defaultvalueisset';
|
|
12
|
+
return res;
|
|
13
|
+
};
|
|
14
|
+
exports.keyDefaultValueAreadySet = keyDefaultValueAreadySet;
|
|
15
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AACO,IAAM,QAAQ,GAAG,UAAC,QAAQ,EAAE,UAAU;IAC3C,yCAAyC;IACzC,IAAM,GAAG,GAAG,kCAA2B,QAAQ,CAAC,IAAI,mBAAS,UAAU,CAAE,CAAA;IACzE,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB;AAEM,IAAM,wBAAwB,GAAG,UAAC,QAAQ,EAAE,UAAU;IAC3D,IAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AAHY,QAAA,wBAAwB,4BAGpC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './storage';
|
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,oDAA0B"}
|
package/lib/models.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { storIndexdDb } from "./constants";
|
|
2
|
+
export declare namespace Models {
|
|
3
|
+
type StorType = Partial<(typeof storIndexdDb)>;
|
|
4
|
+
interface PendingOperation {
|
|
5
|
+
engine: StorgeEngine;
|
|
6
|
+
id: string;
|
|
7
|
+
isDone: boolean;
|
|
8
|
+
}
|
|
9
|
+
type StorgeEngine = 'localstorage' | 'indexeddb' | 'file' | 'json';
|
|
10
|
+
}
|
package/lib/models.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";AAAA,KAAK;AACL,KAAK"}
|
package/lib/storage.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare function uncache<CLASS_FUNCTION = any>(onlyInThisComponentClass: CLASS_FUNCTION, propertyValueToDeleteFromCache: keyof CLASS_FUNCTION): Promise<[any, any, any, any]>;
|
|
2
|
+
declare class TaonStorage {
|
|
3
|
+
private static pendingOperatins;
|
|
4
|
+
private static id;
|
|
5
|
+
/**
|
|
6
|
+
* TODO This is fine for now, but could be something smarter here
|
|
7
|
+
*/
|
|
8
|
+
static awaitPendingOperatios(id?: number): Promise<void>;
|
|
9
|
+
static get property(): TaonStorage;
|
|
10
|
+
private onlyInThisComponentClass?;
|
|
11
|
+
private defaultValue;
|
|
12
|
+
private engine;
|
|
13
|
+
private filePath;
|
|
14
|
+
get in(): {
|
|
15
|
+
readonly indexedb: Omit<TaonStorage, "in">;
|
|
16
|
+
readonly localstorage: Omit<TaonStorage, "in">;
|
|
17
|
+
/**
|
|
18
|
+
* may be relative or absolute
|
|
19
|
+
*/
|
|
20
|
+
file(filePath: string): Omit<TaonStorage, "in" | "for">;
|
|
21
|
+
jsonFile(filePath: string): Omit<TaonStorage, "in" | "for">;
|
|
22
|
+
};
|
|
23
|
+
for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'>;
|
|
24
|
+
withDefaultValue(defaultValue?: any): any;
|
|
25
|
+
withOptions(options: {
|
|
26
|
+
/**
|
|
27
|
+
* default value
|
|
28
|
+
*/
|
|
29
|
+
defaultValue?: any;
|
|
30
|
+
transformFrom?: (valueFromDb: any) => any;
|
|
31
|
+
transformTo?: (valueThatGetToDB: any) => any;
|
|
32
|
+
}): (target: any, memberName: string) => void;
|
|
33
|
+
private getEngine;
|
|
34
|
+
private endObserverAction;
|
|
35
|
+
private action;
|
|
36
|
+
}
|
|
37
|
+
export declare const Stor: typeof TaonStorage;
|
|
38
|
+
export {};
|