UNPKG

typeas

Version:

Library for checking data values and type safety

22 lines (17 loc) 1.61 kB
import { CreateExpression } from './factories/expression.cjs'; import { BooleanExpression } from './expressions/boolean.cjs'; import { DateExpression } from './expressions/date.cjs'; import { EnumExpression } from './expressions/enum.cjs'; import { NumberExpression } from './expressions/number.cjs'; import { StringExpression } from './expressions/string.cjs'; type UnionBaseItemExpression = StringExpression | NumberExpression | BooleanExpression | DateExpression | EnumExpression | ObjectExpression; type UnionItemExpression = UnionBaseItemExpression | TupleExpression<UnionBaseItemExpression> | UnionExpression<UnionBaseItemExpression | TupleExpression<UnionBaseItemExpression>>; type UnionExpression<Item = UnionItemExpression> = readonly [CreateExpression<"union">, ...(readonly Item[])]; type RecordExpression = { [k: string]: StringExpression | NumberExpression | BooleanExpression | DateExpression | EnumExpression | TupleExpression | UnionExpression | ObjectExpression; }; type ObjectExpression = RecordExpression | readonly [CreateExpression<"object">, RecordExpression]; type TupleBaseItemExpression = StringExpression | NumberExpression | BooleanExpression | DateExpression | EnumExpression | ObjectExpression; type TupleItemExpression = TupleBaseItemExpression | UnionExpression<TupleBaseItemExpression> | TupleExpression<TupleBaseItemExpression | UnionExpression<TupleBaseItemExpression>>; type TupleExpression<Item = TupleItemExpression> = readonly [CreateExpression<"tuple">, ...(readonly Item[])]; export type { ObjectExpression as O, TupleExpression as T, UnionExpression as U };