epd
Version:
Enhanced peer dependency resolution for npm, yarn, and pnpm
35 lines • 1.05 kB
JavaScript
import { existsSync, mkdirSync } from 'fs';
import { readFile, writeFile } from 'fs/promises';
import { join } from 'path';
import { homedir } from 'os';
const CACHE_DIR = join(homedir(), '.epd', 'cache');
export class Cache {
static ensureCacheDir() {
if (!existsSync(CACHE_DIR)) {
mkdirSync(CACHE_DIR, { recursive: true });
}
}
static async get(key) {
try {
this.ensureCacheDir();
const data = await readFile(join(CACHE_DIR, `${key}.json`), 'utf-8');
const parsed = JSON.parse(data);
if (parsed.expires > Date.now()) {
return parsed.data;
}
}
catch (e) { }
return null;
}
static async set(key, data, ttl = 3600000) {
try {
this.ensureCacheDir();
await writeFile(join(CACHE_DIR, `${key}.json`), JSON.stringify({
data,
expires: Date.now() + ttl
}));
}
catch (e) { }
}
}
//# sourceMappingURL=cache.js.map