ng-http-caching
Version:
Cache for HTTP requests in Angular application.
1 lines • 6.12 kB
Source Map (JSON)
{"version":3,"file":"ng-http-caching-ng-simple-state.mjs","sources":["../../../projects/ng-http-caching/ng-simple-state/src/lib/ng-http-caching-ng-simple-state-adapter.ts","../../../projects/ng-http-caching/ng-simple-state/src/ng-http-caching-ng-simple-state.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport {\n NgHttpCachingEntry,\n NgHttpCachingStorageInterface,\n NgHttpCachingNgSimpleStateSentinel,\n NG_HTTP_CACHING_NG_SIMPLE_STATE_CONFIG,\n type NgHttpCachingNgSimpleState,\n type NgHttpCachingNgSimpleStateAdapterConfig\n} from 'ng-http-caching';\nimport { NgSimpleStateBaseSignalStore, type NgSimpleStateStoreConfig } from 'ng-simple-state';\n\n/**\n * Storage adapter for ng-http-caching backed by ng-simple-state.\n *\n * This allows a single source of truth for HTTP cache entries.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class NgHttpCachingNgSimpleStateAdapter extends NgSimpleStateBaseSignalStore<NgHttpCachingNgSimpleState>\n implements NgHttpCachingStorageInterface {\n\n protected override storeConfig(): NgSimpleStateStoreConfig {\n const userConfig = inject(NG_HTTP_CACHING_NG_SIMPLE_STATE_CONFIG, { optional: true });\n return {\n storeName: userConfig?.storeName ?? 'NgHttpCaching',\n ...userConfig,\n };\n }\n\n protected override initialState(): NgHttpCachingNgSimpleState<unknown, unknown> {\n return { entries: {} };\n }\n\n get size(): number {\n return Object.keys(this.getCurrentState().entries).length;\n }\n\n clear(): void {\n this.restartState();\n }\n\n delete(key: string): boolean {\n if (!key) {\n return false;\n }\n const current = this.getCurrentState();\n if (!Object.prototype.hasOwnProperty.call(current.entries, key)) {\n return false;\n }\n const nextEntries = { ...current.entries };\n delete nextEntries[key];\n const next = {\n ...current,\n entries: nextEntries\n };\n this.replaceState(next, `ngHttpCaching:delete`);\n return true;\n }\n\n forEach<K = unknown, T = unknown>(callbackfn: (value: NgHttpCachingEntry<K, T>, key: string) => void): void {\n const entries = this.getCurrentState().entries;\n Object.keys(entries).forEach((key) => {\n callbackfn(entries[key] as NgHttpCachingEntry<K, T>, key);\n });\n }\n\n get<K = unknown, T = unknown>(key: string): Readonly<NgHttpCachingEntry<K, T>> | undefined {\n if (!key) {\n return undefined;\n }\n return this.getCurrentState().entries[key] as Readonly<NgHttpCachingEntry<K, T>> | undefined;\n }\n\n has(key: string): boolean {\n if (!key) {\n return false;\n }\n return Object.prototype.hasOwnProperty.call(this.getCurrentState().entries, key);\n }\n\n set<K = unknown, T = unknown>(key: string, value: NgHttpCachingEntry<K, T>): void {\n if (!key) {\n return;\n }\n const current = this.getCurrentState();\n const next = {\n ...current,\n entries: {\n ...current.entries,\n [key]: value\n }\n };\n this.replaceState(next, `ngHttpCaching:set`);\n }\n}\n\n/**\n * Factory helper to enable the ng-simple-state adapter for ng-http-caching.\n */\nexport function withNgHttpCachingNgSimpleState(config?: NgHttpCachingNgSimpleStateAdapterConfig): NgHttpCachingNgSimpleStateSentinel {\n return new NgHttpCachingNgSimpleStateSentinel(NgHttpCachingNgSimpleStateAdapter as any, config);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}