ts-cast
Version:
Runtime typechecking
20 lines (19 loc) • 814 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ref = void 0;
var engine_1 = require("../engine");
var throw_type_error_1 = require("../engine/throw-type-error");
var ref = function (casterRef, typeName) {
if (typeName === void 0) { typeName = '<type-reference>'; }
var caster = function (value, context, reportError) {
caster = casterRef();
return caster(value, context, reportError);
};
var referredCaster = function (value, context, reportError) {
if (reportError === void 0) { reportError = throw_type_error_1.throwTypeError; }
return caster(value, context, reportError);
};
Object.defineProperty(referredCaster, 'name', { value: typeName });
return (0, engine_1.casterApi)(referredCaster);
};
exports.ref = ref;