taon-storage 19.0.17 → 19.0.19
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/browser/fesm2022/taon-storage.mjs +3 -3
- package/browser/fesm2022/taon-storage.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/client/fesm2022/taon-storage.mjs +3 -3
- package/client/fesm2022/taon-storage.mjs.map +1 -1
- package/client/package.json +1 -1
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/utils.d.ts +0 -0
- package/lib/utils.js +5 -0
- package/lib/utils.js.map +1 -0
- package/package.json +10 -10
- package/scss/app.scss +3 -0
- package/scss/global.scss +44 -0
- package/scss/index.scss +2 -0
- package/scss/lib/index.scss +1 -0
- package/scss/lib/sample-log-cmp/sample-log-cmp.component.scss +3 -0
- package/tmp-environment.json +6 -6
- package/websql/fesm2022/taon-storage.mjs +3 -3
- package/websql/fesm2022/taon-storage.mjs.map +1 -1
- package/websql/package.json +1 -1
|
@@ -5,10 +5,10 @@ import { Helpers, _ } from 'tnp-core/browser';
|
|
|
5
5
|
import * as localForge from 'localforage';
|
|
6
6
|
|
|
7
7
|
class SampleLogCmpComponent {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.12", type: SampleLogCmpComponent, isStandalone: true, selector: "sample-log-cmp", ngImport: i0, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'sample-log-cmp', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], standalone: true, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"] }]
|
|
14
14
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../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":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/browser\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/browser';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../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":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/browser\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/browser';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/browser/package.json
CHANGED
|
@@ -5,10 +5,10 @@ import { Helpers, _ } from 'tnp-core/browser';
|
|
|
5
5
|
import * as localForge from 'localforage';
|
|
6
6
|
|
|
7
7
|
class SampleLogCmpComponent {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.12", type: SampleLogCmpComponent, isStandalone: true, selector: "sample-log-cmp", ngImport: i0, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'sample-log-cmp', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], standalone: true, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"] }]
|
|
14
14
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../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":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/browser\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/browser';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../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":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/browser\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/browser';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/client/package.json
CHANGED
|
@@ -4,6 +4,6 @@ exports.CURRENT_PACKAGE_VERSION = exports.PROJECT_NPM_NAME = exports.BUILD_FRAME
|
|
|
4
4
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
5
5
|
exports.BUILD_FRAMEWORK_CLI_NAME = 'tnp';
|
|
6
6
|
exports.PROJECT_NPM_NAME = 'taon-storage';
|
|
7
|
-
exports.CURRENT_PACKAGE_VERSION = '19.0.
|
|
7
|
+
exports.CURRENT_PACKAGE_VERSION = '19.0.19';
|
|
8
8
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
9
9
|
//# sourceMappingURL=build-info._auto-generated_.js.map
|
package/lib/utils.d.ts
ADDED
|
File without changes
|
package/lib/utils.js
ADDED
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["c:/Users/darek/projects/npm/taon-dev/taon-storage/src/lib/utils.ts"],"names":[],"mappings":";;AAAA,gDAAwC;AAAxC,SAAgB,kBAAkB,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taon-storage",
|
|
3
|
-
"version": "19.0.
|
|
3
|
+
"version": "19.0.19",
|
|
4
4
|
"scripts": {
|
|
5
|
+
"taon init": "taon init",
|
|
6
|
+
"taon start": "taon start",
|
|
5
7
|
"taon build:lib": "taon build:lib",
|
|
8
|
+
"taon build:watch:lib": "taon build:watch:lib",
|
|
6
9
|
"taon build:watch:app": "taon build:watch:app",
|
|
7
10
|
"taon build:watch:electron": "taon build:watch:electron",
|
|
8
|
-
"taon build:watch:lib": "taon build:watch:lib",
|
|
9
|
-
"taon clear": "taon clear",
|
|
10
11
|
"taon docs": "taon docs",
|
|
11
12
|
"taon docs:watch": "taon docs:watch",
|
|
12
|
-
"taon
|
|
13
|
-
"taon migration:create": "taon migration:create",
|
|
14
|
-
"taon migration:revert": "taon migration:revert",
|
|
15
|
-
"taon migration:run": "taon migration:run",
|
|
13
|
+
"taon clear": "taon clear",
|
|
16
14
|
"taon release": "taon release",
|
|
17
15
|
"taon release:auto": "taon release:auto",
|
|
18
16
|
"taon release:install:locally": "taon release:install:locally",
|
|
19
|
-
"taon
|
|
20
|
-
"taon
|
|
21
|
-
"taon
|
|
17
|
+
"taon migration:create": "taon migration:create",
|
|
18
|
+
"taon migration:run": "taon migration:run",
|
|
19
|
+
"taon migration:revert": "taon migration:revert",
|
|
20
|
+
"taon vscode:temp:show": "taon vscode:temp:show",
|
|
21
|
+
"taon vscode:temp:hide": "taon vscode:temp:hide"
|
|
22
22
|
},
|
|
23
23
|
"author": "Dariusz Filipiak",
|
|
24
24
|
"dependencies": {
|
package/scss/app.scss
ADDED
package/scss/global.scss
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
@use './vars.scss' as vars;
|
|
2
|
+
@use 'primeflex/primeflex.scss';
|
|
3
|
+
/* You can add global styles to this file, and also import other style files */
|
|
4
|
+
@import '~@angular/material/prebuilt-themes/indigo-pink.css';
|
|
5
|
+
|
|
6
|
+
// @import "primeng/resources/themes/lara-light-blue/theme.css"; // not needed anymore
|
|
7
|
+
// @import "primeng/resources/primeng.css"; // not needed anymore
|
|
8
|
+
@import 'primeicons/primeicons.css';
|
|
9
|
+
@import 'animate.css/animate.min.css';
|
|
10
|
+
|
|
11
|
+
@font-face {
|
|
12
|
+
font-family: 'Material Icons';
|
|
13
|
+
font-style: normal;
|
|
14
|
+
font-weight: 400;
|
|
15
|
+
src: url("#{ vars.$basename }assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2")
|
|
16
|
+
format('woff2');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.material-icons {
|
|
20
|
+
font-family: 'Material Icons';
|
|
21
|
+
font-weight: normal;
|
|
22
|
+
font-style: normal;
|
|
23
|
+
font-size: 24px;
|
|
24
|
+
line-height: 1;
|
|
25
|
+
letter-spacing: normal;
|
|
26
|
+
text-transform: none;
|
|
27
|
+
display: inline-block;
|
|
28
|
+
white-space: nowrap;
|
|
29
|
+
word-wrap: normal;
|
|
30
|
+
direction: ltr;
|
|
31
|
+
-webkit-font-feature-settings: 'liga';
|
|
32
|
+
-webkit-font-smoothing: antialiased;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.ng-scroll-content {
|
|
36
|
+
// TODO QUICK_FIX for modal mode
|
|
37
|
+
display: block !important;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// TODO QUICK FIX for weird chrome padding
|
|
41
|
+
body {
|
|
42
|
+
margin: 0px !important;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
}
|
package/scss/index.scss
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// EXPORT SCSS STYLES FOR THIS LIBRARY IN THIS FILE
|
package/tmp-environment.json
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"only": []
|
|
10
10
|
},
|
|
11
11
|
"ports": {
|
|
12
|
-
"ngNormalAppPort":
|
|
13
|
-
"ngWebsqlAppPort":
|
|
14
|
-
"nodeBeAppPort":
|
|
12
|
+
"ngNormalAppPort": 4259,
|
|
13
|
+
"ngWebsqlAppPort": 4260,
|
|
14
|
+
"nodeBeAppPort": 4127
|
|
15
15
|
},
|
|
16
16
|
"init": {},
|
|
17
17
|
"build": {
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"releaseType": "manual",
|
|
31
31
|
"targetArtifact": "npm-lib-and-cli-tool",
|
|
32
32
|
"envName": "__",
|
|
33
|
-
"resolvedNewVersion": "19.0.
|
|
33
|
+
"resolvedNewVersion": "19.0.19"
|
|
34
34
|
},
|
|
35
35
|
"copyToManager": {},
|
|
36
36
|
"buildInfo": {
|
|
37
|
-
"date": "2025-05-
|
|
38
|
-
"hash": "
|
|
37
|
+
"date": "2025-05-24T17:33:58.000Z",
|
|
38
|
+
"hash": "2294683de96dcb61fd3d2228a12b54e91904b36f"
|
|
39
39
|
},
|
|
40
40
|
"currentProjectName": "taon-storage",
|
|
41
41
|
"currentProjectType": "isomorphic-lib",
|
|
@@ -5,10 +5,10 @@ import { Helpers, _ } from 'tnp-core/websql';
|
|
|
5
5
|
import * as localForge from 'localforage';
|
|
6
6
|
|
|
7
7
|
class SampleLogCmpComponent {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.12", type: SampleLogCmpComponent, isStandalone: true, selector: "sample-log-cmp", ngImport: i0, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: SampleLogCmpComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'sample-log-cmp', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], standalone: true, template: "<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>", styles: [":host{display:block}\n"] }]
|
|
14
14
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/helpers.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/constants.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/storage.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/taon-storage.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/websql\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/websql';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taon-storage.mjs","sources":["../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/sample-log-cmp/sample-log-cmp.component.html","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/helpers.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/constants.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/storage.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/taon-storage.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sample-log-cmp',\n templateUrl: './sample-log-cmp.component.html',\n styleUrls: ['./sample-log-cmp.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n standalone: true,\n})\nexport class SampleLogCmpComponent {}","<p>\n sample log component works!\n <img\n src=\"assets/assets-for/taon-storage/assets/shared/logo.png\"\n alt=\"logo\" height=\"200\" />\n</p>","export const keyValue = (classFun, memberName) => {\n // console.log('classname',classFun.name)\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}","//#region imports\nimport { Helpers, _ } from \"tnp-core/websql\";\n//#region @browser\nimport * as localForge from 'localforage';\n//#endregion\n//#endregion\n\n//#region constants / store name\nexport const storeName = 'taon-storage_'\n //#region @browser\n + window?.location.port;\n//#endregion\n//#endregion\n\n//#region constants / environment\nlet environment = {} as any;\n/* */\n/* */\n/* */\n \n//#region @browser\n// @ts-ignore\nenvironment = window['ENV'];\n//#endregion\n//#endregion\n\n//#region constant / stor local storage\nconst websql = Helpers.isWebSQL ? 'websql' : '';\n//#region @browser\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//#endregion\n//#endregion\n\n//#region constant / stor idndexedb storage\n//#region @browser\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//#endregion\n//#endregion","//#region imports\nimport { _ } from 'tnp-core/websql';\nimport { keyDefaultValueAreadySet, keyValue } from './helpers';\nimport { Models } from './models';\nimport { FileStor } from './file-stor';\n//#region @browser\nimport { storIndexdDb, storLocalStorage } from './constants';\n//#endregion\n//#endregion\n\n//#region constants\nconst AWAITING_INTERVAL_TIME = 200;\n//#endregion\n\n//#region public api / uncahce\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 //#region @browser\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 //#endregion\n ])\n}\n//#endregion\n\nclass TaonStorage {\n\n //#region static\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 // console.log('AWAITING')\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 //#endregion\n\n //#region private fields\n private onlyInThisComponentClass?: Function;\n private defaultValue: any;\n private engine: Models.StorgeEngine;\n\n\n //#region private fields / file path\n/* */\n/* */\n \n //#endregion\n //#endregion\n\n //#region public getters\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 //#endregion\n\n //#region public methods\n\n //#region public methods / for\n //#region @browser\n public for(onlyInThisComponentClass?: Function): Omit<TaonStorage, 'for' | 'in'> {\n this.onlyInThisComponentClass = onlyInThisComponentClass;\n return this as Omit<TaonStorage, 'for' | 'in'>;\n }\n //#endregion\n //#endregion\n\n //#region public methods / with default value\n public withDefaultValue(defaultValue?: any): any {\n // log.i(`[\"${}\"]`)\n return this.action(defaultValue, this.getEngine(), this.engine)\n }\n //#endregion\n\n //#region public methods / with options\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 //#endregion\n\n //#endregion\n\n //#region private methods\n\n //#region private methods / get engine\n private getEngine() {\n switch (this.engine) {\n //#region @browser\n case 'localstorage':\n return storLocalStorage;\n case 'indexeddb':\n return storIndexdDb;\n //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n }\n //#endregion\n\n //#region private methods / end observer action\n private endObserverAction(observe: Models.PendingOperation) {\n // observe.subscribers.forEach(c => typeof c?.awaitId === 'function' && c());\n observe.isDone = true;\n }\n //#endregion\n\n //#region private methods / action\n private action = (\n defaultValue: any,\n storageEngine\n //#region @browser\n : Models.StorType\n //#endregion\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 //#region settin default value\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 // target[memberName] = valFromDb;\n currentValue = transformFrom ? transformFrom(valFromDb) : valFromDb;\n // log.info(`[\"${memberName}\"] set default value for `, valFromDb);\n resolve();\n this.endObserverAction(observe);\n })\n });\n //#endregion\n }\n\n if (defaultValue !== void 0) {\n //#region setting default value from db\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 // log.info(`[\"${memberName}\"] was set default value for ? `, val)\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 // log.i(`[\"${memberName}\"] defaultValue \"${memberName}\"`, currentValue)\n resolve()\n }\n });\n })).then(() => {\n this.endObserverAction(observe);\n });\n\n //#endregion\n } else {\n setItemDefaultValue();\n }\n\n Object.defineProperty(target, memberName, {\n set: (newValue: any) => {\n //#region setting new value on setter\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 //#endregion\n currentValue = newValue;\n },\n get: () => currentValue,\n });\n };\n };\n //#endregion\n\n //#endregion\n\n}\n\nexport const Stor = TaonStorage;","//#region @browser\nexport * from './sample-log-cmp/sample-log-cmp.component';\n//#endregion\nexport * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|