UNPKG

@usefui/svgjsx

Version:

Open Source Command Line Interfaces to generate JSX Icon Components from SVGs.

47 lines 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.all = exports.tap = exports.tryCatch = exports.chain = exports.map = exports.isFailure = exports.isSuccess = exports.failure = exports.success = void 0; const success = (value) => ({ kind: "success", value, }); exports.success = success; const failure = (error) => ({ kind: "failure", error, }); exports.failure = failure; const isSuccess = (result) => result.kind === "success"; exports.isSuccess = isSuccess; const isFailure = (result) => result.kind === "failure"; exports.isFailure = isFailure; const map = (fn) => (result) => (0, exports.isSuccess)(result) ? (0, exports.success)(fn(result.value)) : result; exports.map = map; const chain = (fn) => (result) => (0, exports.isSuccess)(result) ? fn(result.value) : result; exports.chain = chain; const tryCatch = (fn) => { try { return (0, exports.success)(fn()); } catch (error) { return (0, exports.failure)(error instanceof Error ? error : new Error(String(error))); } }; exports.tryCatch = tryCatch; const tap = (fn) => (result) => { if ((0, exports.isSuccess)(result)) fn(result.value); return result; }; exports.tap = tap; const all = (results) => { const values = []; for (const result of results) { if ((0, exports.isFailure)(result)) return result; values.push(result.value); } return (0, exports.success)(values); }; exports.all = all; //# sourceMappingURL=result.js.map