import { getStorage, removeStorage, setStorage } from "../storage"; export interface DNSDKConfig { dn_source_id: number; dn_source_secret: string; } const STORAGE_KEY = "dnsdkConfig" const DEFAULT_DNSDK_CONFIG: DNSDKConfig = { dn_source_id: 0, dn_source_secret: "" } class DNSDKConfigModel { private static instance: DNSDKConfigModel | null = null; private data: DNSDKConfig; private constructor() { this.data = getStorage(STORAGE_KEY, DEFAULT_DNSDK_CONFIG) ?? DEFAULT_DNSDK_CONFIG; } static getInstance(): DNSDKConfigModel { if (!DNSDKConfigModel.instance) { DNSDKConfigModel.instance = new DNSDKConfigModel(); } return DNSDKConfigModel.instance; } get(): DNSDKConfig { return this.data; } save(dnsdkConfig: DNSDKConfig): boolean { this.data = dnsdkConfig; return setStorage(STORAGE_KEY, dnsdkConfig); } clear(): boolean { this.data = { ...DEFAULT_DNSDK_CONFIG }; return removeStorage(STORAGE_KEY); } } export default DNSDKConfigModel;