UNPKG

guardz

Version:

A simple and lightweight TypeScript type guard library for runtime type validation.

30 lines (29 loc) 1.52 kB
"use strict"; 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;