UNPKG

lugger

Version:

Lugger is an automation framework running on customizable Typescript DSL

412 lines 15.4 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.file__ = exports.file = exports.YAML = void 0; const ts_dsl_1 = require("ts-dsl"); const fs = __importStar(require("fs")); const YAML = __importStar(require("yaml")); exports.YAML = YAML; const prependFile = __importStar(require("prepend-file")); const ts_basis_1 = require("ts-basis"); class fileModel { static exists(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:exists', __filename); return null; } static read(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:read', __filename); return null; } static readJSON(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:readJSON', __filename); return null; } static readYAML(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:readYAML', __filename); return null; } static writeJSON(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:writeJSON', __filename); return null; } static writeYAML(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:writeYAML', __filename); return null; } static write(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:write', __filename); return null; } static append(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:append', __filename); return null; } static prepend(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:prepend', __filename); return null; } static truncate(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:truncate', __filename); return null; } static delete(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:delete', __filename); return null; } static unlink(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:unlink', __filename); return null; } static stat(command) { (0, ts_dsl_1.dslIfaceGuard)('lugger:file:stat', __filename); return null; } } exports.file = fileModel; function fileModel__(cce, ...args) { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { return resolve(Object.assign({ isFileTarget: true, 'on a >> this': (cce, opName, self, a, b, c) => { const content = Buffer.isBuffer(a) ? a : typeof a === 'string' ? Buffer.from(a, self.encoding) : null; return (0, ts_basis_1.promise)(async (resolve2, reject2) => { fs.appendFile(self.file, content, { encoding }, e => { if (e) { return reject2(e); } return resolve2(void 0); }); }); }, 'on this << b': (cce, opName, self, a, b, c) => { const content = Buffer.isBuffer(b) ? b : typeof b === 'string' ? Buffer.from(b, self.encoding) : null; return (0, ts_basis_1.promise)(async (resolve2, reject2) => { fs.appendFile(self.file, content, { encoding }, e => { if (e) { return reject2(e); } return resolve2(void 0); }); }); }, 'on a > this': (cce, opName, self, a, b, c) => { const content = Buffer.isBuffer(a) ? a : typeof a === 'string' ? Buffer.from(a, self.encoding) : null; return (0, ts_basis_1.promise)(async (resolve2, reject2) => { fs.writeFile(self.file, content, { encoding }, e => { if (e) { return reject2(e); } return resolve2(void 0); }); }); }, 'on this < b': (cce, opName, self, a, b, c) => { const content = Buffer.isBuffer(b) ? b : typeof b === 'string' ? Buffer.from(b, self.encoding) : null; return (0, ts_basis_1.promise)(async (resolve2, reject2) => { fs.writeFile(self.file, content, { encoding }, e => { if (e) { return reject2(e); } return resolve2(void 0); }); }); }, }, fileOp)); } catch (e) { reject(e); } }); } fileModel__.exists = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.exists', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.access(fileOp.file, fs.constants.F_OK, e => { return resolve(e ? false : true); }); } catch (e) { reject(e); } }); }; fileModel__.read = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.read', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { if (encoding === 'buffer') { fs.readFile(fileOp.file, (e, data) => { if (e) { return reject(e); } return resolve(data); }); } else { fs.readFile(fileOp.file, encoding, (e, data) => { if (e) { return reject(e); } return resolve(data); }); } } catch (e) { reject(e); } }); }; fileModel__.readJSON = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.readJSON', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.readFile(fileOp.file, encoding, (e, data) => { if (e) { return reject(e); } try { return resolve(JSON.parse(data)); } catch (e2) { return reject(e2); } }); } catch (e) { reject(e); } }); }; fileModel__.readYAML = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.readYAML', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.readFile(fileOp.file, encoding, (e, data) => { if (e) { return reject(e); } try { return resolve(YAML.parse(data)); } catch (e2) { return reject(e2); } }); } catch (e) { reject(e); } }); }; fileModel__.write = (cce, ...args) => { const { fileOp, encoding, content, error } = getWriteArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.write', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.writeFile(fileOp.file, content, { encoding }, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.writeJSON = (cce, ...args) => { const { fileOp, encoding, content, error } = getWriteArg(cce, args, 'json'); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.writeJSON', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.writeFile(fileOp.file, content, { encoding }, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.writeYAML = (cce, ...args) => { const { fileOp, encoding, content, error } = getWriteArg(cce, args, 'yaml'); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.writeYAML', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.writeFile(fileOp.file, content, { encoding }, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.append = (cce, ...args) => { const { fileOp, encoding, content, error } = getWriteArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.append', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.appendFile(fileOp.file, content, { encoding }, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.prepend = (cce, ...args) => { const { fileOp, encoding, content, error } = getWriteArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.prepend', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { await prependFile.default(fileOp.file, content); } catch (e) { reject(e); } }); }; fileModel__.truncate = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.prepend', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.truncate(fileOp.file, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.delete = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.delete', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.unlink(fileOp.file, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.unlink = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.unlink', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.unlink(fileOp.file, e => { if (e) { return reject(e); } return resolve(void 0); }); } catch (e) { reject(e); } }); }; fileModel__.stat = (cce, ...args) => { const { fileOp, encoding, error } = getReadArg(cce, args); return (0, ts_dsl_1.getRuntime)().scopedExec(cce, 'lugger:fs:file.stat', { data: { fileOp } }, async (resolve, reject, scopeContext) => { if (error) { return reject(error); } try { fs.stat(fileOp.file, (e, data) => { if (e) { return reject(e); } return resolve(data); }); } catch (e) { reject(e); } }); }; exports.file__ = fileModel__; function getReadArg(cce, args) { let error; const arg0 = args[0]; let fileOp = arg0; if (typeof arg0 === 'string') { fileOp = cce.fromTaggedTemplate ? { file: arg0 } : { file: arg0 }; } if (!fileOp.file) { error = new Error(`cannot operate on file without file location`); } let encoding = args[1]; if (!encoding) { encoding = 'utf8'; fileOp.encoding = encoding; } return { fileOp, encoding, error }; } function getWriteArg(cce, args, contentType = 'default') { let error; const arg0 = args[0]; let arg1 = args[1]; let fileOp = arg0; if (typeof arg0 === 'string') { fileOp = cce.fromTaggedTemplate ? { file: arg0 } : { file: arg0 }; } let encoding = args[2]; if (!encoding) { encoding = 'utf8'; fileOp.encoding = encoding; } let content = null; try { if ((fileOp === null || fileOp === void 0 ? void 0 : fileOp.dedent) && typeof arg1 === 'string') { arg1 = (0, ts_dsl_1.dedent)(arg1); } if (contentType === 'default') { content = Buffer.isBuffer(arg1) ? arg1 : typeof arg1 === 'string' ? Buffer.from(arg1, encoding) : null; } else if (contentType === 'json') { content = Buffer.from(JSON.stringify(arg1, null, 4), encoding); } else if (contentType === 'yaml') { content = Buffer.from(YAML.stringify(arg1), encoding); } } catch (e) { error = e; } if (!fileOp.file) { error = new Error(`cannot operate on file without file location`); } return { fileOp, encoding, content, error }; } //# sourceMappingURL=fs.js.map