UNPKG

clumsy-graphics

Version:

a tool for rapidly developing animations where frames are described using svg elements à la react 🙃

28 lines (27 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeData = void 0; const Either_1 = require("fp-ts/Either"); const function_1 = require("fp-ts/function"); function decodeData(api) { const { targetCodec, inputData } = api; return new Promise((resolve, reject) => { const handleDecodeErrors = (decodeErrors) => { const simpleDecodeError = getSimpleDecodeError({ decodeErrors }); reject(simpleDecodeError); }; const decodeResult = targetCodec.decode(inputData); (0, function_1.pipe)(decodeResult, (0, Either_1.fold)(handleDecodeErrors, resolve)); }); } exports.decodeData = decodeData; const getSimpleDecodeError = (api) => { const { decodeErrors } = api; const validationErrors = decodeErrors.map((validationError) => getValidationErrorSpecifics({ validationError })); const validationErrorsJson = JSON.stringify(validationErrors, null, 2); return Error(validationErrorsJson); }; const getValidationErrorSpecifics = (api) => { const { validationError } = api; return validationError.context[validationError.context.length - 1]; };