leetcode-cli
Version:
A cli tool to enjoy leetcode!
55 lines (43 loc) • 1.12 kB
JavaScript
var fs = require('fs');
var path = require('path');
var h = require('./helper');
var cache = {};
cache.init = function() {
h.mkdir(h.getCacheDir());
};
cache.get = function(k) {
var fullpath = h.getCacheFile(k);
if (!fs.existsSync(fullpath)) return null;
var v = JSON.parse(fs.readFileSync(fullpath));
return v;
};
cache.set = function(k, v) {
h.mkdir(h.getCacheDir());
var fullpath = h.getCacheFile(k);
fs.writeFileSync(fullpath, JSON.stringify(v));
return true;
};
cache.del = function(k) {
var fullpath = h.getCacheFile(k);
if (!fs.existsSync(fullpath)) return false;
fs.unlinkSync(fullpath);
return true;
};
cache.list = function() {
var dir = h.getCacheDir();
if (!fs.existsSync(dir)) return [];
return fs.readdirSync(dir)
.filter(function(filename) {
return path.extname(filename) === '.json';
})
.map(function(filename) {
var k = path.basename(filename, '.json');
var stat = fs.statSync(h.getCacheFile(k));
return {
name: k,
size: stat.size,
mtime: stat.mtime
};
});
};
module.exports = cache;