guardz
Version:
A simple and lightweight TypeScript type guard library for runtime type validation.
30 lines (29 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.attachTypeGuardMeta = exports.isArrayTypeGuard = exports.isNestedObjectTypeGuard = exports.getTypeGuardWrapperKind = exports.getTypeGuardInnerGuard = exports.getTypeGuardItemGuard = exports.getTypeGuardSchema = void 0;
const getTypeGuardSchema = (typeGuardFn) => typeGuardFn.schema;
exports.getTypeGuardSchema = getTypeGuardSchema;
const getTypeGuardItemGuard = (typeGuardFn) => typeGuardFn.itemGuard;
exports.getTypeGuardItemGuard = getTypeGuardItemGuard;
const getTypeGuardInnerGuard = (typeGuardFn) => typeGuardFn.innerGuard;
exports.getTypeGuardInnerGuard = getTypeGuardInnerGuard;
const getTypeGuardWrapperKind = (typeGuardFn) => typeGuardFn.wrapperKind;
exports.getTypeGuardWrapperKind = getTypeGuardWrapperKind;
const isNestedObjectTypeGuard = (typeGuardFn) => {
if ((0, exports.getTypeGuardSchema)(typeGuardFn)) {
return true;
}
const fnName = typeGuardFn.name;
return fnName === 'isTypeGuard' || fnName === 'isSchemaGuard';
};
exports.isNestedObjectTypeGuard = isNestedObjectTypeGuard;
const isArrayTypeGuard = (typeGuardFn) => {
if ((0, exports.getTypeGuardItemGuard)(typeGuardFn)) {
return true;
}
const fnName = typeGuardFn.name;
return fnName === 'isArray' || fnName === 'isArrayGuard';
};
exports.isArrayTypeGuard = isArrayTypeGuard;
const attachTypeGuardMeta = (typeGuardFn, meta) => Object.assign(typeGuardFn, meta);
exports.attachTypeGuardMeta = attachTypeGuardMeta;