taon-storage 21.0.35 → 21.0.37
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/VERIFIED-BUILD-DATA.jsonc +3 -3
- package/browser/package.json +1 -1
- package/browser-prod/fesm2022/taon-storage-browser-prod.mjs.map +1 -1
- package/browser-prod/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/package.json +1 -1
- package/lib-esm/app.d.ts +2 -0
- package/lib-esm/app.electron.d.ts +2 -0
- package/lib-esm/app.electron.js +83 -0
- package/lib-esm/app.electron.js.map +1 -0
- package/lib-esm/app.hosts.d.ts +95 -0
- package/lib-esm/app.hosts.js +157 -0
- package/lib-esm/app.hosts.js.map +1 -0
- package/lib-esm/app.js +121 -0
- package/lib-esm/app.js.map +1 -0
- package/lib-esm/app.vscode.d.ts +9 -0
- package/lib-esm/app.vscode.js +31 -0
- package/lib-esm/app.vscode.js.map +1 -0
- package/lib-esm/index.d.ts +1 -0
- package/lib-esm/index.js +2 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
- package/lib-esm/lib/build-info._auto-generated_.js +27 -0
- package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
- package/lib-esm/lib/env/env.angular-node-app.d.ts +66 -0
- package/lib-esm/lib/env/env.angular-node-app.js +135 -0
- package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
- package/lib-esm/lib/env/env.docs-webapp.d.ts +66 -0
- package/lib-esm/lib/env/env.docs-webapp.js +135 -0
- package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
- package/lib-esm/lib/env/env.electron-app.d.ts +66 -0
- package/lib-esm/lib/env/env.electron-app.js +135 -0
- package/lib-esm/lib/env/env.electron-app.js.map +1 -0
- package/lib-esm/lib/env/env.mobile-app.d.ts +66 -0
- package/lib-esm/lib/env/env.mobile-app.js +135 -0
- package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +66 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +135 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-esm/lib/env/env.vscode-plugin.d.ts +66 -0
- package/lib-esm/lib/env/env.vscode-plugin.js +135 -0
- package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
- package/lib-esm/lib/env/index.d.ts +6 -0
- package/lib-esm/lib/env/index.js +7 -0
- package/lib-esm/lib/env/index.js.map +1 -0
- package/lib-esm/lib/index._auto-generated_.d.ts +0 -0
- package/lib-esm/lib/index._auto-generated_.js +6 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -0
- package/lib-esm/lib/index.d.ts +1 -0
- package/lib-esm/lib/index.js +4 -0
- package/lib-esm/lib/index.js.map +1 -0
- package/lib-esm/lib/migrations/index.d.ts +1 -0
- package/lib-esm/lib/migrations/index.js +3 -0
- package/lib-esm/lib/migrations/index.js.map +1 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/lib-esm/lib/taon-stor.d.ts +51 -0
- package/lib-esm/lib/taon-stor.js +313 -0
- package/lib-esm/lib/taon-stor.js.map +1 -0
- package/lib-esm/lib/taon-stor.test.d.ts +1 -0
- package/lib-esm/lib/taon-stor.test.js +43 -0
- package/lib-esm/lib/taon-stor.test.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/taon-stor.js.map +1 -1
- package/lib-prod/taon-stor.test.js.map +1 -1
- package/package.json +1 -1
- package/src.js +4 -20
- package/websql/package.json +1 -1
- package/websql-prod/fesm2022/taon-storage-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitHash": "
|
|
3
|
-
"commitName": "release: v21.0.
|
|
4
|
-
"commitDate": "
|
|
2
|
+
"commitHash": "d01076f58ec87ec7949e21dadfb92dde22e98770",
|
|
3
|
+
"commitName": "release: v21.0.36",
|
|
4
|
+
"commitDate": "12-04-2026 12:40:45"
|
|
5
5
|
}
|
package/browser/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taon-storage-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/taon-storage-browser-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * 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-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/taon-storage-browser-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,6 @@ exports.CURRENT_PACKAGE_TAON_VERSION = 'v21';
|
|
|
25
25
|
/**
|
|
26
26
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
27
27
|
*/
|
|
28
|
-
exports.CURRENT_PACKAGE_VERSION = '21.0.
|
|
28
|
+
exports.CURRENT_PACKAGE_VERSION = '21.0.37';
|
|
29
29
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
30
30
|
//# sourceMappingURL=build-info._auto-generated_.js.map
|
package/lib/package.json
CHANGED
package/lib-esm/app.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { CLIENT_DEV_NORMAL_APP_PORT, CLIENT_DEV_WEBSQL_APP_PORT } from './app.hosts';
|
|
2
|
+
import { path,
|
|
3
|
+
//#region @backend
|
|
4
|
+
fse
|
|
5
|
+
//#endregion
|
|
6
|
+
} from 'tnp-core/lib';
|
|
7
|
+
//#region @backend
|
|
8
|
+
import { app, BrowserWindow, screen } from 'electron';
|
|
9
|
+
let win = null;
|
|
10
|
+
const args = process.argv.slice(1);
|
|
11
|
+
const serve = args.some(val => val === '--serve');
|
|
12
|
+
const websql = args.some(val => val === '--websql');
|
|
13
|
+
function createWindow() {
|
|
14
|
+
const size = screen.getPrimaryDisplay().workAreaSize;
|
|
15
|
+
// Create the browser window.
|
|
16
|
+
win = new BrowserWindow({
|
|
17
|
+
x: 0,
|
|
18
|
+
y: 0,
|
|
19
|
+
autoHideMenuBar: true,
|
|
20
|
+
width: size.width / 2,
|
|
21
|
+
height: size.height / 2,
|
|
22
|
+
webPreferences: {
|
|
23
|
+
nodeIntegration: true,
|
|
24
|
+
allowRunningInsecureContent: (serve),
|
|
25
|
+
contextIsolation: false,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (serve) {
|
|
29
|
+
const debug = require('electron-debug');
|
|
30
|
+
debug();
|
|
31
|
+
require('electron-reloader')(module);
|
|
32
|
+
win.loadURL('http://localhost:' + (websql ? CLIENT_DEV_WEBSQL_APP_PORT : CLIENT_DEV_NORMAL_APP_PORT));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// Path when running electron executable
|
|
36
|
+
let pathIndex = './index.html';
|
|
37
|
+
if (fse.existsSync(path.join(__dirname, '../dist/index.html'))) {
|
|
38
|
+
// Path when running electron in local folder
|
|
39
|
+
pathIndex = '../dist/index.html';
|
|
40
|
+
}
|
|
41
|
+
const url = new URL(path.join('file:', __dirname, pathIndex));
|
|
42
|
+
win.loadURL(url.href);
|
|
43
|
+
}
|
|
44
|
+
// Emitted when the window is closed.
|
|
45
|
+
win.on('closed', () => {
|
|
46
|
+
// Dereference the window object, usually you would store window
|
|
47
|
+
// in an array if your app supports multi windows, this is the time
|
|
48
|
+
// when you should delete the corresponding element.
|
|
49
|
+
win = null;
|
|
50
|
+
});
|
|
51
|
+
return win;
|
|
52
|
+
}
|
|
53
|
+
async function startElectron() {
|
|
54
|
+
try {
|
|
55
|
+
// This method will be called when Electron has finished
|
|
56
|
+
// initialization and is ready to create browser windows.
|
|
57
|
+
// Some APIs can only be used after this event occurs.
|
|
58
|
+
// Added 400 ms to fix the black background issue while using transparent window. More detais at https://github.com/electron/electron/issues/15947
|
|
59
|
+
app.on('ready', () => setTimeout(createWindow, 400));
|
|
60
|
+
// Quit when all windows are closed.
|
|
61
|
+
app.on('window-all-closed', () => {
|
|
62
|
+
// On OS X it is common for applications and their menu bar
|
|
63
|
+
// to stay active until the user quits explicitly with Cmd + Q
|
|
64
|
+
if (process.platform !== 'darwin') {
|
|
65
|
+
app.quit();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
app.on('activate', () => {
|
|
69
|
+
// On OS X it's common to re-create a window in the app when the
|
|
70
|
+
// dock icon is clicked and there are no other windows open.
|
|
71
|
+
if (win === null) {
|
|
72
|
+
createWindow();
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
// Catch Error
|
|
78
|
+
// throw e;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export default startElectron;
|
|
82
|
+
//#endregion
|
|
83
|
+
//# sourceMappingURL=app.electron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.electron.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Your context backend port
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare const HOST_BACKEND_PORT_1: any;
|
|
6
|
+
/**
|
|
7
|
+
* Angular website url with normal/nodejs backend
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const FRONTEND_NORMAL_APP_PORT_1: any;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT instead
|
|
13
|
+
*/
|
|
14
|
+
export declare const CLIENT_DEV_NORMAL_APP_PORT_1: any;
|
|
15
|
+
/**
|
|
16
|
+
* Angular website url with websql backend
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
export declare const FRONTEND_WEBSQL_APP_PORT_1: any;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT instead
|
|
22
|
+
*/
|
|
23
|
+
export declare const CLIENT_DEV_WEBSQL_APP_PORT_1: any;
|
|
24
|
+
/**
|
|
25
|
+
* Electron/angular website url for electron app purpose (ipc backend)
|
|
26
|
+
*/
|
|
27
|
+
export declare const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4287;
|
|
28
|
+
/**
|
|
29
|
+
* Backend url - use as "host" inside your context
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
export declare const HOST_URL_1: string;
|
|
33
|
+
/**
|
|
34
|
+
* Frontend host url - use as "frontendHost" inside your context
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
export declare const FRONTEND_HOST_URL_1: string;
|
|
38
|
+
/**
|
|
39
|
+
* Frontend electron host url - use in app.electron.ts with win.loadURL(FRONTEND_HOST_URL_ELECTRON);
|
|
40
|
+
*/
|
|
41
|
+
export declare const FRONTEND_HOST_URL_ELECTRON_1: string;
|
|
42
|
+
/**
|
|
43
|
+
* Your context backend port
|
|
44
|
+
* @deprecated use HOST_BACKEND_PORT_n instead
|
|
45
|
+
*/
|
|
46
|
+
export declare const HOST_BACKEND_PORT: any;
|
|
47
|
+
/**
|
|
48
|
+
* Angular website url with normal/nodejs backend
|
|
49
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT_n instead
|
|
50
|
+
*/
|
|
51
|
+
export declare const FRONTEND_NORMAL_APP_PORT: any;
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT instead
|
|
54
|
+
*/
|
|
55
|
+
export declare const CLIENT_DEV_NORMAL_APP_PORT: any;
|
|
56
|
+
/**
|
|
57
|
+
* Angular website url with websql backend
|
|
58
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT_n instead
|
|
59
|
+
*/
|
|
60
|
+
export declare const FRONTEND_WEBSQL_APP_PORT: any;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT instead
|
|
63
|
+
*/
|
|
64
|
+
export declare const CLIENT_DEV_WEBSQL_APP_PORT: any;
|
|
65
|
+
/**
|
|
66
|
+
* Electron/angular website url for electron app purpose (ipc backend)
|
|
67
|
+
*/
|
|
68
|
+
export declare const FRONTEND_NORMAL_ELECTRON_PORT = 4287;
|
|
69
|
+
/**
|
|
70
|
+
* Backend url - use as "host" inside your context
|
|
71
|
+
* @deprecated use HOST_URL_n instead
|
|
72
|
+
*/
|
|
73
|
+
export declare const HOST_URL: string;
|
|
74
|
+
/**
|
|
75
|
+
* Frontend host url - use as "frontendHost" inside your context
|
|
76
|
+
* @deprecated use FRONTEND_HOST_URL_n instead
|
|
77
|
+
*/
|
|
78
|
+
export declare const FRONTEND_HOST_URL: string;
|
|
79
|
+
/**
|
|
80
|
+
* Frontend electron host url - use in app.electron.ts with win.loadURL(FRONTEND_HOST_URL_ELECTRON);
|
|
81
|
+
*/
|
|
82
|
+
export declare const FRONTEND_HOST_URL_ELECTRON: string;
|
|
83
|
+
export declare const HOST_CONFIG: {
|
|
84
|
+
/** Relative file path for context */
|
|
85
|
+
/** Name of context (var, let, const variable) inside *.ts file. */
|
|
86
|
+
MainContext: {
|
|
87
|
+
activeContext: string;
|
|
88
|
+
contextName: string;
|
|
89
|
+
hostPortNumber: number;
|
|
90
|
+
host: string;
|
|
91
|
+
frontendHostPortNumber: number;
|
|
92
|
+
frontendHost: string;
|
|
93
|
+
appId: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
2
|
+
import { APP_ID, BUILD_BASE_HREF } from './lib/build-info._auto-generated_';
|
|
3
|
+
let isWebSQLMode = false;
|
|
4
|
+
//#region @backend
|
|
5
|
+
isWebSQLMode = false;
|
|
6
|
+
//#endregion
|
|
7
|
+
/* */
|
|
8
|
+
/* */
|
|
9
|
+
const nodeENV = (() => {
|
|
10
|
+
let env;
|
|
11
|
+
//#region @backend
|
|
12
|
+
env = process.env || {};
|
|
13
|
+
//#endregion
|
|
14
|
+
return env || {};
|
|
15
|
+
})();
|
|
16
|
+
const windowENV = (() => {
|
|
17
|
+
let env;
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
return env || {};
|
|
21
|
+
})();
|
|
22
|
+
const argsENV = (() => {
|
|
23
|
+
let env;
|
|
24
|
+
//#region @backend
|
|
25
|
+
env = require('minimist')(process.argv);
|
|
26
|
+
//#endregion
|
|
27
|
+
return env || {};
|
|
28
|
+
})();
|
|
29
|
+
const transformURL = (url) => {
|
|
30
|
+
if (!url) {
|
|
31
|
+
return url;
|
|
32
|
+
}
|
|
33
|
+
//#region @backend
|
|
34
|
+
if (url.startsWith('http://') || url.startsWith('https://')) {
|
|
35
|
+
return url;
|
|
36
|
+
}
|
|
37
|
+
return 'http://' + url; // by default backend is http
|
|
38
|
+
//#endregion
|
|
39
|
+
/* */
|
|
40
|
+
/* */
|
|
41
|
+
/* */
|
|
42
|
+
/* */
|
|
43
|
+
/* */
|
|
44
|
+
};
|
|
45
|
+
const ACTIVE_CONTEXT = nodeENV['ACTIVE_CONTEXT'] || argsENV['ACTIVE_CONTEXT'] || windowENV['ACTIVE_CONTEXT'] || null;
|
|
46
|
+
/**
|
|
47
|
+
* Your context backend port
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
export const HOST_BACKEND_PORT_1 = (nodeENV['HOST_BACKEND_PORT_1']) || (windowENV['HOST_BACKEND_PORT_1']) || (argsENV['HOST_BACKEND_PORT_1']) || 4127;
|
|
51
|
+
/**
|
|
52
|
+
* Angular website url with normal/nodejs backend
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
export const FRONTEND_NORMAL_APP_PORT_1 = (nodeENV['FRONTEND_NORMAL_APP_PORT_1']) || (windowENV['FRONTEND_NORMAL_APP_PORT_1']) || (argsENV['FRONTEND_NORMAL_APP_PORT_1']) || 4285;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT instead
|
|
58
|
+
*/
|
|
59
|
+
export const CLIENT_DEV_NORMAL_APP_PORT_1 = FRONTEND_NORMAL_APP_PORT_1;
|
|
60
|
+
/**
|
|
61
|
+
* Angular website url with websql backend
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
export const FRONTEND_WEBSQL_APP_PORT_1 = (nodeENV['FRONTEND_WEBSQL_APP_PORT_1']) || (windowENV['FRONTEND_WEBSQL_APP_PORT_1']) || (argsENV['FRONTEND_WEBSQL_APP_PORT_1']) || 4284;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT instead
|
|
67
|
+
*/
|
|
68
|
+
export const CLIENT_DEV_WEBSQL_APP_PORT_1 = FRONTEND_WEBSQL_APP_PORT_1;
|
|
69
|
+
/**
|
|
70
|
+
* Electron/angular website url for electron app purpose (ipc backend)
|
|
71
|
+
*/
|
|
72
|
+
export const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4287;
|
|
73
|
+
// electron websql not supported yet
|
|
74
|
+
// export const FRONTEND_WEBSQL_ELECTRON_PORT_1 = undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Backend url - use as "host" inside your context
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
79
|
+
export const HOST_URL_1 = transformURL(nodeENV['HOST_URL_1']) || transformURL(windowENV['HOST_URL_1']) || transformURL(argsENV['HOST_URL_1']) || ('http://localhost:' + HOST_BACKEND_PORT_1);
|
|
80
|
+
/**
|
|
81
|
+
* Frontend host url - use as "frontendHost" inside your context
|
|
82
|
+
*
|
|
83
|
+
*/
|
|
84
|
+
export const FRONTEND_HOST_URL_1 = transformURL(nodeENV['FRONTEND_HOST_URL_1']) || transformURL(windowENV['FRONTEND_HOST_URL_1']) || transformURL(argsENV['FRONTEND_HOST_URL_1']) || ('http://localhost:' +
|
|
85
|
+
(isWebSQLMode ? FRONTEND_WEBSQL_APP_PORT_1 : FRONTEND_NORMAL_APP_PORT_1));
|
|
86
|
+
/**
|
|
87
|
+
* Frontend electron host url - use in app.electron.ts with win.loadURL(FRONTEND_HOST_URL_ELECTRON);
|
|
88
|
+
*/
|
|
89
|
+
export const FRONTEND_HOST_URL_ELECTRON_1 = 'http://localhost:' + FRONTEND_NORMAL_ELECTRON_PORT_1;
|
|
90
|
+
// electron websql not supported yet
|
|
91
|
+
// export const FRONTEND_HOST_URL_ELECTRON_1 =
|
|
92
|
+
// 'http://localhost:' +
|
|
93
|
+
// (isWebSQLMode ? FRONTEND_WEBSQL_ELECTRON_PORT_1 : FRONTEND_NORMAL_ELECTRON_PORT_1);
|
|
94
|
+
/**
|
|
95
|
+
* Your context backend port
|
|
96
|
+
* @deprecated use HOST_BACKEND_PORT_n instead
|
|
97
|
+
*/
|
|
98
|
+
export const HOST_BACKEND_PORT = (nodeENV['HOST_BACKEND_PORT']) || (windowENV['HOST_BACKEND_PORT']) || (argsENV['HOST_BACKEND_PORT']) || HOST_BACKEND_PORT_1;
|
|
99
|
+
/**
|
|
100
|
+
* Angular website url with normal/nodejs backend
|
|
101
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT_n instead
|
|
102
|
+
*/
|
|
103
|
+
export const FRONTEND_NORMAL_APP_PORT = (nodeENV['FRONTEND_NORMAL_APP_PORT']) || (windowENV['FRONTEND_NORMAL_APP_PORT']) || (argsENV['FRONTEND_NORMAL_APP_PORT']) || FRONTEND_NORMAL_APP_PORT_1;
|
|
104
|
+
/**
|
|
105
|
+
* @deprecated use FRONTEND_NORMAL_APP_PORT instead
|
|
106
|
+
*/
|
|
107
|
+
export const CLIENT_DEV_NORMAL_APP_PORT = FRONTEND_NORMAL_APP_PORT;
|
|
108
|
+
/**
|
|
109
|
+
* Angular website url with websql backend
|
|
110
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT_n instead
|
|
111
|
+
*/
|
|
112
|
+
export const FRONTEND_WEBSQL_APP_PORT = (nodeENV['FRONTEND_WEBSQL_APP_PORT']) || (windowENV['FRONTEND_WEBSQL_APP_PORT']) || (argsENV['FRONTEND_WEBSQL_APP_PORT']) || FRONTEND_WEBSQL_APP_PORT_1;
|
|
113
|
+
/**
|
|
114
|
+
* @deprecated use FRONTEND_WEBSQL_APP_PORT instead
|
|
115
|
+
*/
|
|
116
|
+
export const CLIENT_DEV_WEBSQL_APP_PORT = FRONTEND_WEBSQL_APP_PORT;
|
|
117
|
+
/**
|
|
118
|
+
* Electron/angular website url for electron app purpose (ipc backend)
|
|
119
|
+
*/
|
|
120
|
+
export const FRONTEND_NORMAL_ELECTRON_PORT = FRONTEND_NORMAL_ELECTRON_PORT_1;
|
|
121
|
+
// electron websql not supported yet
|
|
122
|
+
// export const FRONTEND_WEBSQL_ELECTRON_PORT = FRONTEND_WEBSQL_ELECTRON_PORT_1;
|
|
123
|
+
/**
|
|
124
|
+
* Backend url - use as "host" inside your context
|
|
125
|
+
* @deprecated use HOST_URL_n instead
|
|
126
|
+
*/
|
|
127
|
+
export const HOST_URL = transformURL(nodeENV['HOST_URL']) || transformURL(windowENV['HOST_URL']) || transformURL(argsENV['HOST_URL']) || ('http://localhost:' + HOST_BACKEND_PORT);
|
|
128
|
+
/**
|
|
129
|
+
* Frontend host url - use as "frontendHost" inside your context
|
|
130
|
+
* @deprecated use FRONTEND_HOST_URL_n instead
|
|
131
|
+
*/
|
|
132
|
+
export const FRONTEND_HOST_URL = transformURL(nodeENV['FRONTEND_HOST_URL']) || transformURL(windowENV['FRONTEND_HOST_URL']) || transformURL(argsENV['FRONTEND_HOST_URL']) || ('http://localhost:' +
|
|
133
|
+
(isWebSQLMode ? FRONTEND_WEBSQL_APP_PORT : FRONTEND_NORMAL_APP_PORT));
|
|
134
|
+
/**
|
|
135
|
+
* Frontend electron host url - use in app.electron.ts with win.loadURL(FRONTEND_HOST_URL_ELECTRON);
|
|
136
|
+
*/
|
|
137
|
+
export const FRONTEND_HOST_URL_ELECTRON = 'http://localhost:' + FRONTEND_NORMAL_ELECTRON_PORT;
|
|
138
|
+
// electron websql not supported yet
|
|
139
|
+
// export const FRONTEND_HOST_URL_ELECTRON =
|
|
140
|
+
// 'http://localhost:' +
|
|
141
|
+
// (isWebSQLMode ? FRONTEND_WEBSQL_ELECTRON_PORT : FRONTEND_NORMAL_ELECTRON_PORT);
|
|
142
|
+
export const HOST_CONFIG = {
|
|
143
|
+
/** Relative file path for context */
|
|
144
|
+
//'app.ts'
|
|
145
|
+
/** Name of context (var, let, const variable) inside *.ts file. */
|
|
146
|
+
'MainContext': {
|
|
147
|
+
activeContext: ACTIVE_CONTEXT,
|
|
148
|
+
contextName: 'MainContext',
|
|
149
|
+
hostPortNumber: Number(HOST_BACKEND_PORT_1),
|
|
150
|
+
host: HOST_URL_1 + BUILD_BASE_HREF,
|
|
151
|
+
frontendHostPortNumber: Number(FRONTEND_NORMAL_APP_PORT_1),
|
|
152
|
+
frontendHost: FRONTEND_HOST_URL_1 + BUILD_BASE_HREF,
|
|
153
|
+
appId: APP_ID,
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
157
|
+
//# sourceMappingURL=app.hosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.hosts.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
package/lib-esm/app.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
//#region imports
|
|
3
|
+
import { Taon, TaonBaseContext } from 'taon/lib';
|
|
4
|
+
import { HOST_BACKEND_PORT } from './app.hosts';
|
|
5
|
+
/* */
|
|
6
|
+
/* */
|
|
7
|
+
/* */
|
|
8
|
+
/* */
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
//#endregion
|
|
12
|
+
console.log('hello world');
|
|
13
|
+
console.log('Your server will start on port ' + HOST_BACKEND_PORT);
|
|
14
|
+
const host = 'http://localhost:' + HOST_BACKEND_PORT;
|
|
15
|
+
//#region taon-storage component
|
|
16
|
+
/* */
|
|
17
|
+
/* */
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
/* */
|
|
21
|
+
/* */
|
|
22
|
+
/* */
|
|
23
|
+
/* */
|
|
24
|
+
/* */
|
|
25
|
+
/* */
|
|
26
|
+
/* */
|
|
27
|
+
/* */
|
|
28
|
+
/* */
|
|
29
|
+
/* */
|
|
30
|
+
/* */
|
|
31
|
+
/* */
|
|
32
|
+
/* */
|
|
33
|
+
/* */
|
|
34
|
+
/* */
|
|
35
|
+
/* */
|
|
36
|
+
/* */
|
|
37
|
+
/* */
|
|
38
|
+
/* */
|
|
39
|
+
/* */
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region taon-storage api service
|
|
42
|
+
/* */
|
|
43
|
+
/* */
|
|
44
|
+
/* */
|
|
45
|
+
/* */
|
|
46
|
+
/* */
|
|
47
|
+
/* */
|
|
48
|
+
/* */
|
|
49
|
+
/* */
|
|
50
|
+
/* */
|
|
51
|
+
/* */
|
|
52
|
+
/* */
|
|
53
|
+
/* */
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region taon-storage module
|
|
56
|
+
/* */
|
|
57
|
+
/* */
|
|
58
|
+
/* */
|
|
59
|
+
/* */
|
|
60
|
+
/* */
|
|
61
|
+
/* */
|
|
62
|
+
/* */
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region taon-storage entity
|
|
65
|
+
let User = class User extends Taon.Base.AbstractEntity {
|
|
66
|
+
//#region @websql
|
|
67
|
+
//#endregion
|
|
68
|
+
name;
|
|
69
|
+
};
|
|
70
|
+
__decorate([
|
|
71
|
+
Taon.Orm.Column.String()
|
|
72
|
+
//#endregion
|
|
73
|
+
,
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], User.prototype, "name", void 0);
|
|
76
|
+
User = __decorate([
|
|
77
|
+
Taon.Entity({ className: 'User' })
|
|
78
|
+
], User);
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region taon-storage controller
|
|
81
|
+
let UserController = class UserController extends Taon.Base.CrudController {
|
|
82
|
+
entityClassResolveFn = () => User;
|
|
83
|
+
//#region @websql
|
|
84
|
+
async initExampleDbData() {
|
|
85
|
+
const superAdmin = new User();
|
|
86
|
+
superAdmin.name = 'super-admin';
|
|
87
|
+
await this.db.save(superAdmin);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
UserController = __decorate([
|
|
91
|
+
Taon.Controller({ className: 'UserController' })
|
|
92
|
+
], UserController);
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region taon-storage context
|
|
95
|
+
var MainContext = Taon.createContext(() => ({
|
|
96
|
+
host,
|
|
97
|
+
contextName: 'MainContext',
|
|
98
|
+
contexts: { TaonBaseContext },
|
|
99
|
+
controllers: {
|
|
100
|
+
UserController,
|
|
101
|
+
// PUT FIREDEV CONTORLLERS HERE
|
|
102
|
+
},
|
|
103
|
+
entities: {
|
|
104
|
+
User,
|
|
105
|
+
// PUT FIREDEV ENTITIES HERE
|
|
106
|
+
},
|
|
107
|
+
database: true,
|
|
108
|
+
// disabledRealtime: true,
|
|
109
|
+
}));
|
|
110
|
+
//#endregion
|
|
111
|
+
async function start() {
|
|
112
|
+
await MainContext.initialize();
|
|
113
|
+
if (Taon.isBrowser) {
|
|
114
|
+
const users = (await MainContext.getClassInstance(UserController).getAll().received).body?.json;
|
|
115
|
+
console.log({
|
|
116
|
+
'users from backend': users,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export default start;
|
|
121
|
+
//# sourceMappingURL=app.js.map
|