diff options
Diffstat (limited to 'packages/webapi/src/lib/Storage.ts')
-rw-r--r-- | packages/webapi/src/lib/Storage.ts | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/packages/webapi/src/lib/Storage.ts b/packages/webapi/src/lib/Storage.ts deleted file mode 100644 index 7f9426552..000000000 --- a/packages/webapi/src/lib/Storage.ts +++ /dev/null @@ -1,67 +0,0 @@ -import * as _ from './utils' - -export class Storage { - clear(): void { - _.internalsOf<StorageInternals>(this, 'Storage', 'clear').storage.clear() - } - - getItem(key: string): string | null { - return getStringOrNull( - _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.get( - String(key) - ) - ) - } - - key(index: number): string | null { - return getStringOrNull( - [ - ..._.internalsOf<StorageInternals>( - this, - 'Storage', - 'key' - ).storage.keys(), - ][Number(index) || 0] - ) - } - - removeItem(key: string): void { - _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.delete( - String(key) - ) - } - - setItem(key: string, value: any): void { - _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.set( - String(key), - String(value) - ) - } - - get length() { - return _.internalsOf<StorageInternals>(this, 'Storage', 'size').storage.size - } -} - -const getStringOrNull = (value: string | void) => - typeof value === 'string' ? value : null - -export const initStorage = (target: Target, exclude: Set<string>) => { - if (exclude.has('Storage') || exclude.has('localStorage')) return - - target.localStorage = Object.create(Storage.prototype) - - const storageInternals = new Map<string, string>() - - _.INTERNALS.set(target.localStorage, { - storage: storageInternals, - } as StorageInternals) -} - -interface StorageInternals { - storage: Map<string, string> -} - -interface Target { - localStorage: Storage -} |