Type Utils
    Preparing search index...

    Type Alias FluentSchema<T, TRules, TCalledRules, TUsedCustomRules>

    FluentSchema: TypeGuard<T> & {
        [K in Exclude<keyof TRules, TCalledRules[number]>]: Fn<
            Parameters<TRules[K]>,
            FluentSchema<T, TRules, [...TCalledRules, K], TUsedCustomRules>,
        >
    } & {
        use<Args extends any[], RuleName extends string>(
            rule: Custom<Args, RuleName, T>,
        ): FluentSchema<
            T,
            TRules,
            TCalledRules,
            [...TUsedCustomRules[], Custom<Args, RuleName, T>],
        >;
        use<
            TCustomRules extends
                [Custom<any[], string, T>, ...Custom<any[], string, T>[]],
        >(
            ...rules: TCustomRules,
        ): FluentSchema<
            T,
            TRules,
            TCalledRules,
            [...TUsedCustomRules[], ...TCustomRules[]],
        >;
        validator(
            throwOnError?: true,
        ): (...args: [arg: unknown]) => T & { "[tags]": { [K in Tag]: Metadata } } & {
            validate: ThrowableFn<ValidationErrors, [arg: unknown], T>;
        };
        validator(
            throwOnError: boolean,
        ): (...args: [arg: unknown]) => ValidateReturn & {
            validate: Fn<[arg: unknown], ValidateReturn<T>>;
        };
    } & {
        optional(): TypeGuard<T | undefined> & {
            [K in string | number | symbol]: Fn<
                Parameters<TRules[K]>,
                FluentOptionalSchema<T, TRules, [...TCalledRules[], K], TUsedCustomRules>,
            >
        } & {
            use<Args extends any[], RuleName extends string>(
                rule: Custom<Args, RuleName, T>,
            ): FluentOptionalSchema<
                T,
                TRules,
                TCalledRules,
                [...TUsedCustomRules[], Custom<Args, RuleName, T>],
            >;
            use<
                TCustomRules extends
                    [Custom<any[], string, T>, ...Custom<any[], string, T>[]],
            >(
                ...rules: TCustomRules,
            ): FluentOptionalSchema<
                T,
                TRules,
                TCalledRules,
                [...TUsedCustomRules[], ...TCustomRules[]],
            >;
            validator(
                throwOnError?: true,
            ): (...args: [arg: unknown]) => T | undefined & {
                "[tags]": { [K in Tag]: Metadata };
            } & {
                validate: ThrowableFn<ValidationErrors, [arg: unknown], undefined | T>;
            };
            validator(
                throwOnError: false,
            ): (...args: [arg: unknown]) => ValidateReturn & {
                validate: ThrowableFn<ValidationErrors, [arg: unknown], undefined | T>;
            };
            validator(
                throwOnError: boolean,
            ): (...args: [arg: unknown]) => ValidateReturn & {
                validate: Fn<[arg: unknown], ValidateReturn<undefined | T>>;
            };
        } & { toStandardSchema(): StandardSchemaV1<T | undefined, T | undefined> };
        toStandardSchema(): StandardSchemaV1<T, T>;
    }

    Type Parameters

    • T
    • TRules extends { [x: string]: (...args: any[]) => any } = {}
    • TCalledRules extends [...(keyof TRules)[]] = []
    • TUsedCustomRules extends [...Custom<any[], string, T>[]] = []