UNPKG

@sidekick-coder/db

Version:

Cli Tool to manipulate data from diferent sources

111 lines (105 loc) 3.51 kB
'use strict'; var path = require('path'); var fs = require('fs'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var fs__default = /*#__PURE__*/_interopDefault(fs); // src/core/drive/index.ts var drive = { exists: async (path) => { try { await fs__default.default.promises.stat(path); return true; } catch (error) { return false; } }, existsSync: (path) => { try { fs__default.default.statSync(path); return true; } catch (error) { return false; } }, list: async (path, options) => { if (!await drive.exists(path)) { return []; } const all = await fs__default.default.promises.readdir(path, { withFileTypes: true }); if (options == null ? void 0 : options.onlyFiles) { return all.filter((item) => item.isFile()).map((item) => item.name); } if (options == null ? void 0 : options.onlyDirs) { return all.filter((item) => item.isDirectory()).map((item) => item.name); } return all.map((item) => item.name); }, listSync: (path, options) => { if (!drive.existsSync(path)) { return []; } const all = fs__default.default.readdirSync(path, { withFileTypes: true }); if (options == null ? void 0 : options.onlyFiles) { return all.filter((item) => item.isFile()).map((item) => item.name); } if (options == null ? void 0 : options.onlyDirs) { return all.filter((item) => item.isDirectory()).map((item) => item.name); } return all.map((item) => item.name); }, read: async (path) => { if (!await drive.exists(path)) { throw new Error(`entry not found ${path}`); } const stat = await fs__default.default.promises.stat(path); if (!stat.isFile()) { throw new Error(`entry not file ${path}`); } return fs__default.default.promises.readFile(path, "utf-8"); }, readSync: (path) => { if (!drive.existsSync(path)) { throw new Error(`entry not found ${path}`); } const stat = fs__default.default.statSync(path); if (!stat.isFile()) { throw new Error(`entry not file ${path}`); } return fs__default.default.readFileSync(path, "utf-8"); }, write: async (path$1, content, options) => { if (options == null ? void 0 : options.recursive) { await drive.mkdir(path.dirname(path$1), { recursive: true }); } return fs__default.default.promises.writeFile(path$1, content, "utf-8"); }, writeSync: (path$1, content, options) => { if (options == null ? void 0 : options.recursive) { const parent = path.dirname(path$1); drive.mkdirSync(parent, { recursive: true }); } return fs__default.default.writeFileSync(path$1, content, "utf-8"); }, mkdir: async (path$1, options) => { if (await drive.exists(path$1)) return; if (options == null ? void 0 : options.recursive) { await drive.mkdir(path.dirname(path$1)); } return fs__default.default.promises.mkdir(path$1); }, mkdirSync: (path$1, options) => { if (drive.existsSync(path$1)) return; if (options == null ? void 0 : options.recursive) { const parent = path.dirname(path$1); drive.mkdirSync(parent, { recursive: true }); } return fs__default.default.mkdirSync(path$1); }, destroy: (path) => { return fs__default.default.promises.rm(path, { recursive: true }); }, destroySync: (path) => { return fs__default.default.rmSync(path, { recursive: true }); } }; exports.drive = drive;