UNPKG

@prismicio/types-internal

Version:
22 lines (21 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EmptyArrayOrElse = exports.EmptyObjectOrElse = exports.NullOrElse = exports.DefaultOrElse = void 0; const tslib_1 = require("tslib"); const Either_1 = require("fp-ts/lib/Either"); const t = (0, tslib_1.__importStar)(require("io-ts")); const BasicTypes_1 = require("./BasicTypes"); const DefaultOrElse = (inputValidator) => { return (codec) => new t.Type(`DefaultOrElse<${inputValidator.name}, ${codec.name}>`, (u) => null === u || codec.is(u), (u, c) => { if ((0, Either_1.isRight)(inputValidator.validate(u, c))) return t.success(null); return codec.validate(u, c); }, (chunk) => (chunk ? codec.encode(chunk) : undefined)); }; exports.DefaultOrElse = DefaultOrElse; const NullOrElse = (codec) => (0, exports.DefaultOrElse)(t.null)(codec); exports.NullOrElse = NullOrElse; const EmptyObjectOrElse = (codec) => (0, exports.DefaultOrElse)(BasicTypes_1.EmptyObject)(codec); exports.EmptyObjectOrElse = EmptyObjectOrElse; const EmptyArrayOrElse = (codec) => (0, exports.DefaultOrElse)(BasicTypes_1.EmptyArray)(codec); exports.EmptyArrayOrElse = EmptyArrayOrElse;