swc/crates/swc_bundler/tests/.cache/untrusted/e10c91dfbe886ed5e5f5685c479a5a74ed6b3a67.ts
2021-11-09 20:42:49 +09:00

27 lines
735 B
TypeScript

// Loaded from https://raw.githubusercontent.com/colinhacks/zod/654680afc2ede388e71e09104eac5a0088fe3207/deno/lib/types/nativeEnum.ts
import { ZodTypes } from "../ZodTypes.ts";
import { ZodType, ZodTypeDef } from "./base.ts";
export interface ZodNativeEnumDef<T extends EnumLike = EnumLike>
extends ZodTypeDef {
t: ZodTypes.nativeEnum;
values: T;
}
type EnumLike = { [k: string]: string | number; [nu: number]: string };
export class ZodNativeEnum<T extends EnumLike> extends ZodType<
T[keyof T],
ZodNativeEnumDef<T>
> {
toJSON = () => this._def;
static create = <T extends EnumLike>(values: T): ZodNativeEnum<T> => {
return new ZodNativeEnum({
t: ZodTypes.nativeEnum,
values: values,
});
};
}