lugger
Version:
Lugger is an automation framework running on customizable Typescript DSL
412 lines • 15.4 kB
JavaScript
"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