swc/bundler/tests/.cache/untrusted/a6811da9903942259f8eadbc01c42688ba04b8f0.ts
강동윤 bbaf619f63
fix(bundler): Fix bugs (#1437)
swc_bundler:
 - [x] Fix wrapped esms. (denoland/deno#9307)
 - [x] Make test secure.
2021-03-02 17:33:03 +09:00

42 lines
1.2 KiB
TypeScript

// Loaded from https://raw.githubusercontent.com/colinhacks/zod/654680afc2ede388e71e09104eac5a0088fe3207/deno/lib/types/record.ts
import { ZodTypes } from "../ZodTypes.ts";
import { ZodType, ZodTypeDef, ZodTypeAny } from "./base.ts";
// import { ZodUndefined } from './undefined';
// import { ZodNull } from './null';
// import { ZodUnion } from './union';
export interface ZodRecordDef<Value extends ZodTypeAny = ZodTypeAny>
extends ZodTypeDef {
t: ZodTypes.record;
valueType: Value;
}
export class ZodRecord<Value extends ZodTypeAny = ZodTypeAny> extends ZodType<
Record<string, Value["_output"]>, // { [k in keyof T]: T[k]['_type'] },
ZodRecordDef<Value>,
Record<string, Value["_input"]>
> {
readonly _value!: Value;
toJSON = () => ({
t: this._def.t,
valueType: this._def.valueType.toJSON(),
});
// opt optional: () => ZodUnion<[this, ZodUndefined]> = () => ZodUnion.create([this, ZodUndefined.create()]);
// null nullable: () => ZodUnion<[this, ZodNull]> = () => ZodUnion.create([this, ZodNull.create()]);
static create = <Value extends ZodTypeAny = ZodTypeAny>(
valueType: Value
): ZodRecord<Value> => {
return new ZodRecord({
t: ZodTypes.record,
valueType,
});
};
}