UNPKG

@remotion/studio

Version:

APIs for interacting with the Remotion Studio

182 lines (181 loc) 7.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createZodValues = void 0; const createZodValues = (schema, zodRuntime, zodTypes) => { if (!schema) { throw new Error('Invalid zod schema'); } const def = schema._def; const typeName = def.typeName; switch (typeName) { case zodRuntime.ZodFirstPartyTypeKind.ZodString: return ''; case zodRuntime.ZodFirstPartyTypeKind.ZodNumber: { for (const check of def.checks) { if (check.kind === 'min') { return check.value; } if (check.kind === 'max' && check.value < 0) { return check.value; } } return 0; } case zodRuntime.ZodFirstPartyTypeKind.ZodBigInt: return BigInt(0); case zodRuntime.ZodFirstPartyTypeKind.ZodBoolean: return false; case zodRuntime.ZodFirstPartyTypeKind.ZodNaN: return NaN; case zodRuntime.ZodFirstPartyTypeKind.ZodDate: return new Date(); case zodRuntime.ZodFirstPartyTypeKind.ZodSymbol: return Symbol('remotion'); case zodRuntime.ZodFirstPartyTypeKind.ZodUndefined: return undefined; case zodRuntime.ZodFirstPartyTypeKind.ZodNull: return null; case zodRuntime.ZodFirstPartyTypeKind.ZodAny: throw new Error('Cannot create a value for type z.any()'); case zodRuntime.ZodFirstPartyTypeKind.ZodUnknown: throw new Error('Cannot create a value for type z.unknown()'); case zodRuntime.ZodFirstPartyTypeKind.ZodNever: throw new Error('Cannot create a value for type z.never()'); case zodRuntime.ZodFirstPartyTypeKind.ZodVoid: return undefined; case zodRuntime.ZodFirstPartyTypeKind.ZodObject: { const shape = def.shape(); const keys = Object.keys(shape); const returnValue = keys.reduce((existing, key) => { existing[key] = (0, exports.createZodValues)(shape[key], zodRuntime, zodTypes); return existing; }, {}); return returnValue; } case zodRuntime.ZodFirstPartyTypeKind.ZodArray: { return [ (0, exports.createZodValues)(def.type, zodRuntime, zodTypes), ]; } case zodRuntime.ZodFirstPartyTypeKind.ZodUnion: { const firstOptions = def.options[0]; return firstOptions ? (0, exports.createZodValues)(firstOptions, zodRuntime, zodTypes) : undefined; } case zodRuntime.ZodFirstPartyTypeKind.ZodDiscriminatedUnion: { const options = def.options[0]; return (0, exports.createZodValues)(options, zodRuntime, zodTypes); } case zodRuntime.ZodFirstPartyTypeKind.ZodLiteral: { return def.value; } case zodRuntime.ZodFirstPartyTypeKind.ZodEffects: { if (zodTypes && schema._def.description === zodTypes.ZodZypesInternals.REMOTION_COLOR_BRAND) { return '#ffffff'; } if (zodTypes && schema._def.description === zodTypes.ZodZypesInternals.REMOTION_TEXTAREA_BRAND) { return ''; } if (zodTypes && schema._def.description === zodTypes.ZodZypesInternals.REMOTION_MATRIX_BRAND) { return [ [1, 0, 0], [0, 1, 0], [0, 0, 1], ]; } return (0, exports.createZodValues)(def.schema, zodRuntime, zodTypes); } case zodRuntime.ZodFirstPartyTypeKind.ZodIntersection: { const { left, right } = def; const leftValue = (0, exports.createZodValues)(left, zodRuntime, zodTypes); if (typeof leftValue !== 'object') { throw new Error('Cannot create value for type z.intersection: Left side is not an object'); } const rightValue = (0, exports.createZodValues)(right, zodRuntime, zodTypes); if (typeof rightValue !== 'object') { throw new Error('Cannot create value for type z.intersection: Right side is not an object'); } return { ...leftValue, ...rightValue }; } case zodRuntime.ZodFirstPartyTypeKind.ZodTuple: { const items = def.items.map((item) => (0, exports.createZodValues)(item, zodRuntime, zodTypes)); return items; } case zodRuntime.ZodFirstPartyTypeKind.ZodRecord: { const values = (0, exports.createZodValues)(def.valueType, zodRuntime, zodTypes); return { key: values }; } case zodRuntime.ZodFirstPartyTypeKind.ZodMap: { const defType = def; const values = (0, exports.createZodValues)(defType.valueType, zodRuntime, zodTypes); const key = (0, exports.createZodValues)(defType.keyType, zodRuntime, zodTypes); return new Map([[key, values]]); } case zodRuntime.ZodFirstPartyTypeKind.ZodLazy: { const defType = def; const type = defType.getter(); return (0, exports.createZodValues)(type, zodRuntime, zodTypes); } case zodRuntime.ZodFirstPartyTypeKind.ZodSet: { const defType = def; const values = (0, exports.createZodValues)(defType.valueType, zodRuntime, zodTypes); return new Set([values]); } case zodRuntime.ZodFirstPartyTypeKind.ZodFunction: { throw new Error('Cannot create a value for type function'); } case zodRuntime.ZodFirstPartyTypeKind.ZodEnum: { const { values } = def; return values[0]; } case zodRuntime.ZodFirstPartyTypeKind.ZodNativeEnum: { return 0; } case zodRuntime.ZodFirstPartyTypeKind.ZodOptional: { const defType = def; const value = (0, exports.createZodValues)(defType.innerType, zodRuntime, zodTypes); return value; } case zodRuntime.ZodFirstPartyTypeKind.ZodNullable: { const defType = def; const value = (0, exports.createZodValues)(defType.innerType, zodRuntime, zodTypes); return value; } case zodRuntime.ZodFirstPartyTypeKind.ZodDefault: { const defType = def; return defType.defaultValue(); } case zodRuntime.ZodFirstPartyTypeKind.ZodCatch: { const defType = def; const value = (0, exports.createZodValues)(defType.innerType, zodRuntime, zodTypes); return value; } case zodRuntime.ZodFirstPartyTypeKind.ZodPromise: { const defType = def; const value = (0, exports.createZodValues)(defType.type, zodRuntime, zodTypes); return Promise.resolve(value); } case zodRuntime.ZodFirstPartyTypeKind.ZodBranded: { // eslint-disable-next-line @typescript-eslint/no-explicit-any const defType = def; const value = (0, exports.createZodValues)(defType.type, zodRuntime, zodTypes); return value; } case zodRuntime.ZodFirstPartyTypeKind.ZodPipeline: { // eslint-disable-next-line @typescript-eslint/no-explicit-any const defType = def; const value = (0, exports.createZodValues)(defType.out, zodRuntime, zodTypes); return value; } default: throw new Error('Not implemented: ' + typeName); } }; exports.createZodValues = createZodValues;