dnsdkConfig.model.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { getStorage, removeStorage, setStorage } from "../storage";
  2. export interface DNSDKConfig {
  3. dn_source_id: number;
  4. dn_source_secret: string;
  5. }
  6. const STORAGE_KEY = "dnsdkConfig"
  7. const DEFAULT_DNSDK_CONFIG: DNSDKConfig = {
  8. dn_source_id: 0,
  9. dn_source_secret: ""
  10. }
  11. class DNSDKConfigModel {
  12. private static instance: DNSDKConfigModel | null = null;
  13. private data: DNSDKConfig;
  14. private constructor() {
  15. this.data = getStorage<DNSDKConfig>(STORAGE_KEY, DEFAULT_DNSDK_CONFIG) ?? DEFAULT_DNSDK_CONFIG;
  16. }
  17. static getInstance(): DNSDKConfigModel {
  18. if (!DNSDKConfigModel.instance) {
  19. DNSDKConfigModel.instance = new DNSDKConfigModel();
  20. }
  21. return DNSDKConfigModel.instance;
  22. }
  23. get(): DNSDKConfig {
  24. return this.data;
  25. }
  26. save(dnsdkConfig: DNSDKConfig): boolean {
  27. this.data = dnsdkConfig;
  28. return setStorage(STORAGE_KEY, dnsdkConfig);
  29. }
  30. clear(): boolean {
  31. this.data = { ...DEFAULT_DNSDK_CONFIG };
  32. return removeStorage(STORAGE_KEY);
  33. }
  34. }
  35. export default DNSDKConfigModel;