@lcap/nasl
Version:
NetEase Application Specific Language
100 lines • 3.44 kB
JavaScript
;
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