UNPKG

@backtrace/sourcemap-tools

Version:
161 lines 5.12 kB
"use strict"; 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