UNPKG

eslint-plugin-zod

Version:
44 lines (43 loc) 1.3 kB
"use strict"; const create = (context) => { return { CallExpression(node) { var _a; if (((_a = node.callee.object) === null || _a === void 0 ? void 0 : _a.name) !== 'z') { return; } if (node.callee.property.name !== 'union') { return; } const members = node.arguments[0].elements; const allMembersAreLiterals = members.every((member) => { return member.type === 'CallExpression' && member.callee.object.name === 'z' && member.callee.property.name === 'literal'; }); if (!allMembersAreLiterals) { return; } context.report({ message: 'Use z.enum().', node, }); }, }; }; module.exports = { create, meta: { docs: { description: 'Prefers `z.enum` over a union of literals.', url: 'https://github.com/gajus/eslint-plugin-zod#eslint-plugin-zod-rules-prefer-enum', }, fixable: 'code', schema: [ { additionalProperties: false, properties: {}, type: 'object', }, ], type: 'problem', }, };