@jinxedbuffer/cfkit
Version: 
cfkit is a CLI tool for competitive programming leveraging Codeforces API.
29 lines (24 loc) • 780 B
JavaScript
import fs from 'fs';
import path from 'path';
const PROJECT_DIR = path.join(import.meta.dirname, '..');
export const CACHE_DIR = path.join(PROJECT_DIR, 'cache');
export const CACHE_TIMEOUT_MINUTES = 60;
export const setCache = function (key, value) {
    if (!fs.existsSync(CACHE_DIR)) {
        fs.mkdirSync(CACHE_DIR, {recursive: true});
    }
    const CACHE_FILE = path.join(CACHE_DIR, key + '.json');
    const cachedData = {
        timestamp: Date.now(),
        data: value,
    };
    fs.writeFileSync(CACHE_FILE, JSON.stringify(cachedData));
}
export const getCache = function (key) {
    const CACHE_FILE = path.join(CACHE_DIR, key + '.json');
    try {
        return JSON.parse(fs.readFileSync(CACHE_FILE, 'utf8'));
    } catch (_) {
        return null;
    }
}