@slippy-lint/slippy
Version:
A simple but powerful linter for Solidity
7 lines (6 loc) • 446 B
TypeScript
import type { ZodType } from "zod";
type UnwrapZodType<F> = F extends ZodType<infer T> ? T : never;
type Predicate = (x: unknown) => boolean;
type UnwrapConditionalUnionType<T extends ReadonlyArray<[Predicate, ZodType<any>]>> = ZodType<UnwrapZodType<T[number][1]>>;
export declare const conditionalUnionType: <T extends ReadonlyArray<[Predicate, ZodType<any>]>>(cases: [...T], noMatchMessage: string) => UnwrapConditionalUnionType<T>;
export {};