typia
Version:
Superfast runtime validators with only one line
38 lines (37 loc) • 2.47 kB
TypeScript
import ts from "typescript";
import { Metadata } from "../../schemas/metadata/Metadata";
import { MetadataArray } from "../../schemas/metadata/MetadataArray";
import { MetadataObject } from "../../schemas/metadata/MetadataObject";
import { MetadataTuple } from "../../schemas/metadata/MetadataTuple";
import { FeatureProgrammer } from "../FeatureProgrammer";
import { check_union_array_like } from "../internal/check_union_array_like";
export declare namespace UnionExplorer {
interface Decoder<T> {
(input: ts.Expression, target: T, explore: FeatureProgrammer.IExplore): ts.Expression;
}
type ObjectCombiner = Decoder<MetadataObject[]>;
const object: (config: FeatureProgrammer.IConfig, level?: number) => (input: ts.Expression, targets: MetadataObject[], explore: FeatureProgrammer.IExplore) => ts.Expression;
const tuple: (props: check_union_array_like.IProps<MetadataTuple, MetadataTuple>) => (parameters: ts.ParameterDeclaration[]) => (input: ts.Expression, origins: MetadataTuple[], explore: FeatureProgrammer.IExplore) => ts.ArrowFunction;
namespace tuple {
type IProps = check_union_array_like.IProps<MetadataTuple, MetadataTuple>;
}
const array: (props: array.IProps) => (parameters: ts.ParameterDeclaration[]) => (input: ts.Expression, origins: MetadataArray[], explore: FeatureProgrammer.IExplore) => ts.ArrowFunction;
namespace array {
type IProps = check_union_array_like.IProps<MetadataArray, Metadata>;
}
const array_or_tuple: (props: array_or_tuple.IProps) => (parameters: ts.ParameterDeclaration[]) => (input: ts.Expression, origins: (MetadataArray | MetadataTuple)[], explore: FeatureProgrammer.IExplore) => ts.ArrowFunction;
namespace array_or_tuple {
type IProps = check_union_array_like.IProps<MetadataArray | MetadataTuple, Metadata>;
}
const set: (props: set.IProps) => (parameters: ts.ParameterDeclaration[]) => (input: ts.Expression, origins: Metadata[], explore: FeatureProgrammer.IExplore) => ts.ArrowFunction;
namespace set {
type IProps = check_union_array_like.IProps<MetadataArray, Metadata>;
}
const map: (props: map.IProps) => (parameters: ts.ParameterDeclaration[]) => (input: ts.Expression, origins: Metadata.Entry[], explore: FeatureProgrammer.IExplore) => ts.ArrowFunction;
namespace map {
type IProps = check_union_array_like.IProps<MetadataArray, [
Metadata,
Metadata
]>;
}
}