UNPKG

ts-cast

Version:
66 lines (65 loc) 3.14 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCaster = exports.casterApi = exports.is = void 0; var restrict_1 = require("./restrict"); var optional_1 = require("./optional"); var required_1 = require("./required"); var map_1 = require("./map"); var default_1 = require("./default"); var nullable_1 = require("./nullable"); var either_1 = require("./either"); var validate_1 = require("./validate"); var memo0_1 = require("../helpers/memo0"); var to_be_1 = require("./to-be"); var is_1 = require("./is"); Object.defineProperty(exports, "is", { enumerable: true, get: function () { return is_1.is; } }); var casterApi = function (casterFn) { return Object.defineProperties(casterFn, __assign(__assign({}, Object.getOwnPropertyDescriptors(casterFn)), { optional: { enumerable: true, get: (0, memo0_1.memo)(function () { return (0, exports.casterApi)((0, optional_1.default)(casterFn)); }), }, nullable: { enumerable: true, get: (0, memo0_1.memo)(function () { return (0, exports.casterApi)((0, nullable_1.nullable)(casterFn)); }), }, restrict: { enumerable: true, value: function () { var rules = []; for (var _i = 0; _i < arguments.length; _i++) { rules[_i] = arguments[_i]; } return (0, exports.casterApi)((0, restrict_1.restrict)(casterFn, rules)); }, }, map: { enumerable: true, value: function (transform) { return (0, exports.casterApi)((0, map_1.default)(casterFn, transform)); }, }, default: { enumerable: true, value: function (def) { return (0, exports.casterApi)((0, default_1.default)(casterFn, def)); }, }, either: { enumerable: true, value: function (leftFactory, rightFactory) { return (0, either_1.default)(casterFn, leftFactory, rightFactory); }, }, validation: { enumerable: true, value: function (invalidFactory, validFactory) { return (0, validate_1.validation)(casterFn, invalidFactory, validFactory); }, }, validate: { enumerable: true, get: (0, memo0_1.memo)(function () { return (0, validate_1.validate)(casterFn); }), }, toBe: { enumerable: true, value: function (predicate, typeName) { return (0, exports.casterApi)((0, to_be_1.toBe)(casterFn, predicate, typeName)); }, } })); }; exports.casterApi = casterApi; var createCaster = function (typeName, typeGuard, transform) { return (0, exports.casterApi)((0, required_1.default)(typeName, typeGuard, transform)); }; exports.createCaster = createCaster;