this._def.values is not iterable on enum arrays
When I define a nested object with a enum array this error is thrown
[ { "error": { "json": { "message": "this._def.values is not iterable", "code": -32603, "data": { "code": "INTERNAL_SERVER_ERROR", "httpStatus": 500, "stack": "TypeError: this._def.values is not iterable\n at get Values (file:///Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/[email protected]/node_modules/zod/v3/types.js:3071:37)\n at parseField (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:153:40)\n at parseArray (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:344:21)\n at parseField (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:173:12)\n at parseField (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:185:12)\n at parseObject (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:90:17)\n at parseField (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:123:12)\n at parseField (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:185:12)\n at parseObject (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:90:17)\n at zodSchema (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@zodyac/zod-mongoose/src/index.ts:43:22)\n at getUserModel (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/utils/validation/mongooseModels.ts:14:54)\n at eval (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/trpc/routes/propertiesRouter.ts:15:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async resolveMiddleware (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected]/node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:571:22)\n at async callRecursive (/Users/alex/Useful/upworkProjects/kraken-ai/kraken-vite/node_modules/.pnpm/@[email protected][email protected]/node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:633:20)", "path": "properties.setPropertyFavorite" } } } } ]
Here is the object in question:
`export const PropertyType = ['apartment', 'house', 'hotel', 'office'] as const
// export const UserPreferences = // export type UserPreferencesType = z.infer<typeof UserPreferences>;
export const UserSchema = z.object({ _id: z.string(), preferences: z.object({
propertyType: z.array(z.enum(PropertyType)).optional(), // Property type from PropertySchema
budget: z.object({
min: z.number().optional(),
max: z.number().optional(),
}).optional(), // Budget range
location: LocationSchema.optional(), // Location using Google Maps data
numberOfRooms: z.array(z.number()).optional(), // Number of rooms
facilities: z.array(z.enum(Facilities)).optional(), // Facilities/amenities from property features
}).optional(),
favoriteProperties: z.array(z.string()).optional(),
name: z.string(),
email: z.string(),
emailVerified: z.boolean(),
image: z.string(),
createdAt: zDate,
updatedAt: zDate,
}) `