UNPKG

heapstash

Version:

HeapStash is a library that allows for easy caching in Node.js, with many advanced features such as TTL, maximum items in memory cache, external cache support, and more.

103 lines 3.76 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; const path = __importStar(require("path")); const fs = __importStar(require("fs")); const index_1 = __importDefault(require("./index")); module.exports = (settings) => { const filesystem = new index_1.default(); filesystem.tasks.get = (id) => { return new Promise((resolve, reject) => { fs.readFile(path.join(settings.path, id), "utf8", (err, data) => { if (data) { try { data = JSON.parse(data); resolve(data); } catch (e) { reject(e); } } else { reject(); } }); }); }; filesystem.tasks.put = async (id, data) => { function set(id) { return fs.promises.writeFile(path.join(settings.path, id), JSON.stringify(data)); } await Promise.all((Array.isArray(id) ? id : [id]).map(set)); }; filesystem.tasks.remove = (id) => { return new Promise((resolve, reject) => { fs.unlink(path.join(settings.path, id), (err) => { /* istanbul ignore next */ if (err) { reject(); } else { resolve(); } }); }); }; filesystem.tasks.clear = () => { return new Promise((resolve, reject) => { fs.readdir(path.join(settings.path), async (err, files) => { /* istanbul ignore next */ if (err) { reject(); } function deleteFilePromise(file) { return new Promise((resolve, reject) => { fs.unlink(path.join(settings.path, file), (err) => { /* istanbul ignore next */ if (err) { reject(); } else { resolve(); } }); }); } try { await Promise.all(files.map((file) => deleteFilePromise(file))); resolve(); } catch (e) { /* istanbul ignore next */ reject(); } }); }); }; return filesystem; }; //# sourceMappingURL=FileSystem.js.map