UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

100 lines 3.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setGlobalChangedTime = exports.setDeploymentTime = exports.setInstructStateInDeploy = exports.setDeploymentState = exports.setInstructState = exports.getGlobalChangedTime = exports.getInstructStateInDeploy = exports.getDeploymentState = exports.getInstructState = exports.clearStorage = exports.getStorageSetter = exports.getStorageGetter = exports.getStorageController = void 0; const localforage_1 = __importDefault(require("localforage")); const nasl_utils_1 = require("@lcap/nasl-utils"); const types_1 = require("./types"); const stateStorageKey = '__instruct_state'; const deploymentStateKey = '__deployment_state'; const globalChangedTime = '__global_changed_time'; const stateInDeployStorageKey = '__instruct_state_deploy'; let storage; let initFail = false; function getStorage() { if (!storage) { if (!window.appData.id) { console.error('发布状态数据表初始化失败,之后发布将会全是全量发布'); initFail = true; return; } storage = localforage_1.default.createInstance({ name: 'deployment', storeName: window.appData.id, }); } return storage; } function getStorageController(key, defaultVal) { return { getter: getStorageGetter(key, defaultVal), setter: getStorageSetter(key), }; } exports.getStorageController = getStorageController; function getStorageGetter(key, defaultVal) { return function setStorage() { if (!nasl_utils_1.isBrowser || initFail) { return Promise.resolve(defaultVal); } return getStorage().getItem(key).then((data) => { return data ?? defaultVal; }); }; } exports.getStorageGetter = getStorageGetter; function getStorageSetter(key) { return async function setStorage(val) { if (!nasl_utils_1.isBrowser || initFail) { return Promise.resolve(val); } return getStorage().setItem(key, val); }; } exports.getStorageSetter = getStorageSetter; /** 清空数据 */ function clearStorage() { if (nasl_utils_1.isBrowser) { getStorage().clear(); } } exports.clearStorage = clearStorage; /** * 获取修改状态 */ exports.getInstructState = getStorageGetter(stateStorageKey, types_1.InstructState.Initial); /** * 获取发布状态状态 */ exports.getDeploymentState = getStorageGetter(deploymentStateKey, types_1.DeploymentState.NotDeployment); /** * 获取发布时的修改状态 */ exports.getInstructStateInDeploy = getStorageGetter(stateInDeployStorageKey); /** * 获取后端变更时间 */ exports.getGlobalChangedTime = getStorageGetter(globalChangedTime); /** * 获取修改状态 */ exports.setInstructState = getStorageSetter(stateStorageKey); /** * 获取发布状态状态 */ exports.setDeploymentState = getStorageSetter(deploymentStateKey); /** * 获取发布时的修改状态 */ exports.setInstructStateInDeploy = getStorageSetter(stateInDeployStorageKey); /** * 设置发布时间 */ exports.setDeploymentTime = getStorageSetter(deploymentStateKey); /** * 设置后端变更时间 */ exports.setGlobalChangedTime = getStorageSetter(globalChangedTime); //# sourceMappingURL=storage.js.map