From e78120b06755f5be86ed61f2860411a54a023937 Mon Sep 17 00:00:00 2001 From: ztimson Date: Tue, 8 Jul 2025 01:46:06 -0400 Subject: [PATCH] Trying to do a better job of detecting persistent caching strategy --- package.json | 2 +- src/cache.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ec8ddfb..cae8ea3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/utils", - "version": "0.26.4", + "version": "0.26.5", "description": "Utility library", "author": "Zak Timson", "license": "MIT", diff --git a/src/cache.ts b/src/cache.ts index b901c9a..1313fff 100644 --- a/src/cache.ts +++ b/src/cache.ts @@ -39,7 +39,7 @@ export class Cache { if(typeof this.options.persistentStorage == 'string') this.options.persistentStorage = {storage: localStorage, key: this.options.persistentStorage}; - if(this.options.persistentStorage?.storage?.constructor.name == 'Database') { + if(this.options.persistentStorage?.storage?.database != undefined) { (async () => { const persists: any = this.options.persistentStorage; const table: Table = await persists.storage.createTable({name: persists.key, key: this.key}); @@ -47,7 +47,7 @@ export class Cache { Object.assign(this.store, rows.reduce((acc, row) => ({...acc, [this.getKey(row)]: row}), {})); done(); })(); - } else if(this.options.persistentStorage?.storage?.constructor.name == 'Storage') { + } else if((this.options.persistentStorage?.storage)?.getItem != undefined) { const stored = (this.options.persistentStorage.storage).getItem(this.options.persistentStorage.key); if(stored != null) try { Object.assign(this.store, JSON.parse(stored)); } catch { } done(); @@ -77,7 +77,7 @@ export class Cache { private save(key?: K) { const persists: {storage: any, key: string} = this.options.persistentStorage; if(!!persists?.storage) { - if(persists.storage?.constructor.name == 'Database') { + if(persists.storage?.database != undefined) { (persists.storage).createTable({name: persists.key, key: this.key}).then(table => { if(key) { table.set(this.get(key), key); @@ -86,7 +86,7 @@ export class Cache { this.all().forEach(row => table.add(row)); } }); - } else if(persists.storage?.constructor.name == 'Storage') { + } else if(persists.storage?.setItem != undefined) { persists.storage.setItem(persists.storage.key, JSONSanitize(this.all(true))); } }