UNPKG

commitmnt

Version:

Copy your gitlab and bitbucket commits to a new, publishable github repo

68 lines 3.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cache = void 0; const crypto_1 = __importDefault(require("crypto")); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); /** * Very simple cache class that uses the filesystem */ class Cache { /** * @param baseDir the directory to create the .cache directory in * @constructor */ constructor(baseDir = './') { this.dir = path_1.default.resolve(baseDir, '.cache'); if (!fs_extra_1.default.existsSync(this.dir)) { fs_extra_1.default.mkdirSync(this.dir, { recursive: true }); } } /** * Gets a value from the cache * * @param key the cache key to lookup * @template R the type of the return value * @returns the value for `key` as json or null if key doesn't exist */ async get(key) { const file = this.getPath(key); if (!fs_extra_1.default.existsSync(file)) return; return fs_extra_1.default.readJson(this.getPath(key), { throws: false }); } /** * Sets a value to the cache * * @param key the cache key to set the value at * @param value the value to set * @template R the type of the value */ async set(key, val) { const file = this.getPath(key); return fs_extra_1.default.writeJson(file, val); } /** * Gets the path to a file for a given key * * @param key the cache key to get the path for * @returns the path */ getPath(key) { return path_1.default.join(this.dir, this.hash(key)); } /** * Hashes a given key * * @param key the cache key to hash * @returns the hashed key */ hash(key) { return crypto_1.default.createHash('md5').update(key).digest('hex'); } } exports.Cache = Cache; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2NhY2hlL2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixnREFBd0I7QUFFeEIsd0RBQTBCO0FBRTFCOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBR2hCOzs7T0FHRztJQUNILFlBQVksT0FBTyxHQUFHLElBQUk7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLGtCQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFJLEdBQVc7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUVqQyxPQUFPLGtCQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFXLEVBQUUsR0FBTTtRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLE9BQU8sa0JBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxJQUFJLENBQUMsR0FBVztRQUN0QixPQUFPLGdCQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBOURELHNCQThEQyJ9