@typed/io
Version:
Runtime IO type system
11 lines • 566 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.intersection = void 0;
const effects_1 = require("@typed/effects");
const Record_1 = require("./Record");
const refinement_1 = require("./refinement");
exports.intersection = (decoders) => refinement_1.refinement(Record_1.Record, function* (r) {
const decoded = yield* effects_1.combine(...decoders.map((d) => d.decode(r)));
return decoded.reduce((acc, x) => ({ ...acc, ...x }), {});
}, decoders.map((d) => d.expected).join(' & '));
//# sourceMappingURL=Intersection.js.map