UNPKG

rxdb

Version:

A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/

102 lines (100 loc) 3.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clearFolder = clearFolder; exports.deleteFolder = deleteFolder; exports.documentFolder = documentFolder; exports.ensureFolderExists = ensureFolderExists; exports.getMeta = getMeta; exports.metaFileLocation = metaFileLocation; exports.prepareFolders = prepareFolders; exports.setMeta = setMeta; exports.writeJsonToFile = writeJsonToFile; exports.writeToFile = writeToFile; var fs = _interopRequireWildcard(require("node:fs")); var path = _interopRequireWildcard(require("node:path")); var _index = require("../../plugins/utils/index.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /** * ensure that the given folder exists */ function ensureFolderExists(folderPath) { if (!fs.existsSync(folderPath)) { fs.mkdirSync(folderPath, { recursive: true }); } } /** * deletes and recreates the folder */ function clearFolder(folderPath) { deleteFolder(folderPath); ensureFolderExists(folderPath); } function deleteFolder(folderPath) { // only remove if exists to not raise warning if (fs.existsSync(folderPath)) { fs.rmdirSync(folderPath, { recursive: true }); } } function prepareFolders(database, options) { ensureFolderExists(options.directory); var metaLoc = metaFileLocation(options); if (!fs.existsSync(metaLoc)) { var currentTime = (0, _index.now)(); var metaData = { createdAt: currentTime, updatedAt: currentTime, collectionStates: {} }; fs.writeFileSync(metaLoc, JSON.stringify(metaData), 'utf-8'); } Object.keys(database.collections).forEach(collectionName => { ensureFolderExists(path.join(options.directory, collectionName)); }); } async function writeToFile(location, data) { if (typeof data !== 'string') { data = await (0, _index.blobToString)(data); } return new Promise(function (res, rej) { fs.writeFile(location, data, 'utf-8', err => { if (err) { rej(err); } else { res(); } }); }); } function writeJsonToFile(location, data) { return writeToFile(location, JSON.stringify(data)); } function metaFileLocation(options) { return path.join(options.directory, 'backup_meta.json'); } function getMeta(options) { var loc = metaFileLocation(options); return new Promise((res, rej) => { fs.readFile(loc, 'utf-8', (err, data) => { if (err) { rej(err); } else { var metaContent = JSON.parse(data); res(metaContent); } }); }); } function setMeta(options, meta) { var loc = metaFileLocation(options); return writeJsonToFile(loc, meta); } function documentFolder(options, docId) { return path.join(options.directory, docId); } //# sourceMappingURL=file-util.js.map