import { inject, Injectable } from "@angular/core"; import { SdLocalStorageProvider } from "./sd-local-storage.provider"; @Injectable({ providedIn: "root" }) export class SdSystemConfigProvider { private readonly _sdLocalStorage = inject>(SdLocalStorageProvider); fn?: { set(key: K, data: T[K]): Promise | void; get(key: keyof T & string): PromiseLike; }; async setAsync(key: K, data: T[K]) { if (this.fn) { await this.fn.set(key, data); } else { this._sdLocalStorage.set(key, data); } } async getAsync(key: keyof T & string) { if (this.fn) { return this.fn.get(key); } else { return this._sdLocalStorage.get(key); } } }