@prismicio/types-internal
Version:
Prismic types for Custom Types and Prismic Data
32 lines (31 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const Either_1 = require("fp-ts/lib/Either");
const t = (0, tslib_1.__importStar)(require("io-ts"));
const IntFromString_1 = require("io-ts-types/lib/IntFromString");
const validators_1 = require("../../../validators");
const SideConstraint = new t.Type("SideConstraints", (u) => {
return !u || typeof u === "number";
}, (u, context) => {
return Either_1.either.chain(t
.union([
t.literal("auto"),
t.literal(""),
t.Int,
IntFromString_1.IntFromString,
validators_1.IntFromNumber,
validators_1.IntFromPixels,
t.null,
])
.validate(u, context), (constraint) => {
if (constraint === "auto" || constraint === "")
return t.success(null);
return t.success(constraint);
});
}, (res) => res);
const ImageConstraint = t.partial({
width: SideConstraint,
height: SideConstraint,
});
exports.default = ImageConstraint;