adr
Version:
轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records
43 lines • 3 kB
JavaScript
let fs = require('fs');
import Config from './Config';
// TODO handle parallel cache operation
function initCache() {
let cachePath = Config.getCachePath();
let cacheInitObj = {
images: []
};
if (!fs.existsSync(cachePath)) {
fs.writeFileSync(cachePath, JSON.stringify(cacheInitObj));
}
}
function getCache(key) {
let cachePath = Config.getCachePath();
let cacheObj = JSON.parse(fs.readFileSync(cachePath, 'utf8'));
if (key) {
return cacheObj[key];
}
return cacheObj;
}
function updateCache(key, value) {
let cachePath = Config.getCachePath();
let cacheObj = getCache();
cacheObj[key] = value;
fs.writeFileSync(cachePath, JSON.stringify(cacheObj));
}
let _cacheInternal = {
init: initCache,
get: getCache,
update: updateCache
};
let cache = new Proxy(_cacheInternal, {
get(target, key) {
if (key !== 'init') {
_cacheInternal.init();
}
return target[key] instanceof Function
? target[key].bind(target)
: target[key];
}
});
export default cache;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUV0QixPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFFN0IsdUNBQXVDO0FBRXZDLFNBQVMsU0FBUztJQUNoQixJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDckMsSUFBSSxZQUFZLEdBQUc7UUFDakIsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFBO0lBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDN0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0tBQzFEO0FBQ0gsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFFLEdBQVk7SUFDN0IsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3JDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUU3RCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQ3JCO0lBRUQsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFFLEdBQVcsRUFBRSxLQUFjO0lBQy9DLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyQyxJQUFJLFFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQTtJQUN6QixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtBQUN2RCxDQUFDO0FBRUQsSUFBSSxjQUFjLEdBQUc7SUFDbkIsSUFBSSxFQUFFLFNBQVM7SUFDZixHQUFHLEVBQUUsUUFBUTtJQUNiLE1BQU0sRUFBRSxXQUFXO0NBQ3BCLENBQUE7QUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDcEMsR0FBRyxDQUFFLE1BQTZCLEVBQUUsR0FBd0I7UUFDMUQsSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFO1lBQ2xCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtTQUN0QjtRQUVELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLFFBQVE7WUFDcEMsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxHQUFHLENBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDakIsQ0FBQztDQUNGLENBQUMsQ0FBQTtBQUVGLGVBQWUsS0FBSyxDQUFBIn0=