UNPKG

typia

Version:

Superfast runtime validators with only one line

22 lines (18 loc) 606 B
import ts from "typescript"; import { ExpressionFactory } from "../../factories/ExpressionFactory"; /** * @internal */ export const check_native = (type: string) => (input: ts.Expression) => { const instanceOf = ExpressionFactory.isInstanceOf(type)(input); return ATOMIC_LIKE.has(type) ? ts.factory.createLogicalOr( ts.factory.createStrictEquality( ts.factory.createStringLiteral(type.toLowerCase()), ts.factory.createTypeOfExpression(input), ), instanceOf, ) : instanceOf; }; const ATOMIC_LIKE = new Set(["Boolean", "Number", "String"]);