@backtrace/sourcemap-tools
Version:
Backtrace-JavaScript sourcemap tools
161 lines • 5.12 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.readFile = readFile;
exports.writeFile = writeFile;
exports.statFile = statFile;
exports.createWriteStream = createWriteStream;
exports.pipeStream = pipeStream;
exports.writeStream = writeStream;
exports.parseJSON = parseJSON;
exports.pass = pass;
exports.failIfEmpty = failIfEmpty;
exports.map = map;
exports.flatMap = flatMap;
exports.mapAsync = mapAsync;
exports.filter = filter;
exports.filterAsync = filterAsync;
exports.log = log;
exports.inspect = inspect;
exports.not = not;
const fs_1 = __importDefault(require("fs"));
const Result_1 = require("../models/Result");
function readFile(file) {
return __awaiter(this, void 0, void 0, function* () {
try {
return (0, Result_1.Ok)(yield fs_1.default.promises.readFile(file, 'utf-8'));
}
catch (err) {
return (0, Result_1.Err)(`failed to read file: ${err}`);
}
});
}
function writeFile(path) {
return function writeFile(content) {
return __awaiter(this, void 0, void 0, function* () {
try {
yield fs_1.default.promises.writeFile(path, content);
return (0, Result_1.Ok)(content);
}
catch (err) {
return (0, Result_1.Err)(`failed to write file: ${err}`);
}
});
};
}
function statFile(path) {
return __awaiter(this, void 0, void 0, function* () {
try {
return (0, Result_1.Ok)(yield fs_1.default.promises.stat(path));
}
catch (err) {
return (0, Result_1.Err)(`failed to stat file: ${err}`);
}
});
}
function createWriteStream(path) {
try {
return (0, Result_1.Ok)(fs_1.default.createWriteStream(path));
}
catch (err) {
return (0, Result_1.Err)(`failed to create write stream to file: ${err}`);
}
}
function pipeStream(readable) {
return function pipeStream(writable) {
return readable.pipe(writable);
};
}
function writeStream(file) {
return __awaiter(this, void 0, void 0, function* () {
const [stream, path] = file;
try {
const output = fs_1.default.createWriteStream(path);
stream.pipe(output);
return new Promise((resolve) => {
output.on('error', (err) => {
resolve((0, Result_1.Err)(`failed to write file: ${err.message}`));
});
output.on('finish', () => resolve((0, Result_1.Ok)(file)));
});
}
catch (err) {
return (0, Result_1.Err)(`failed to write file: ${err}`);
}
});
}
function parseJSON(content) {
try {
return (0, Result_1.Ok)(JSON.parse(content));
}
catch (err) {
return (0, Result_1.Err)(`failed to parse content: ${err}`);
}
}
function pass(t) {
return t;
}
function failIfEmpty(error) {
return function failIfEmpty(t) {
return t.length ? (0, Result_1.Ok)(t) : (0, Result_1.Err)(error);
};
}
function map(fn) {
return function map(t) {
return t.map(fn);
};
}
function flatMap(fn) {
return function flatMap(t) {
return t.reduce((res, v) => {
res.push(...fn(v));
return res;
}, []);
};
}
function mapAsync(fn) {
return function map(t) {
return __awaiter(this, void 0, void 0, function* () {
return yield Promise.all(t.map(fn));
});
};
}
function filter(fn) {
return function filter(t) {
return t.filter(fn);
};
}
function filterAsync(fn) {
return function filterAsync(t) {
return __awaiter(this, void 0, void 0, function* () {
const results = yield Promise.all(t.map((v) => __awaiter(this, void 0, void 0, function* () { return [v, yield fn(v)]; })));
return results.filter((r) => r[1]).map((r) => r[0]);
});
};
}
function log(logger, level) {
return function log(message) {
return inspect((t) => logger[level](typeof message === 'function' ? message(t) : message));
};
}
function inspect(fn) {
return function inspect(t) {
fn(t);
return t;
};
}
function not(value) {
return !value;
}
//# sourceMappingURL=common.js.map
;