UNPKG

prisma-zod-generator

Version:

Prisma 2+ generator to emit Zod schemas from your Prisma schema

37 lines 1.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeEnumImportPath = computeEnumImportPath; exports.generateEnumSchemaImportLines = generateEnumSchemaImportLines; /** * Enum import path utilities * Centralizes relative path computation for generated enum schema imports. */ const path_1 = __importDefault(require("path")); /** * Compute a relative import path (optionally with extension) from a variant schema directory * (e.g., schemas/variants/pure) to the enums directory (schemas/enums). */ function computeEnumImportPath(fromVariantDirAbs, enumsDirAbs, enumName, ext = '') { const rel = path_1.default.relative(fromVariantDirAbs, enumsDirAbs).replace(/\\/g, '/'); const base = rel.startsWith('.') ? rel : `./${rel}`; return path_1.default.posix.join(base, `${enumName}.schema${ext}`); } /** * Generate import lines for enum schemas based on depth from variants/<variant>/ to enums. * depthFromVariantDir = 2 corresponds to ../../schemas/enums/<Enum>.schema */ function generateEnumSchemaImportLines(enumNames, depthFromVariantDir = 2, ext = '') { if (!enumNames.length) return ''; const upSegments = Array(depthFromVariantDir).fill('..').join('/'); return enumNames .map((e) => { const p = path_1.default.posix.join(upSegments, 'schemas', 'enums', `${e}.schema${ext}`); return `import { ${e}Schema } from '${p}';`; }) .join('\n'); } //# sourceMappingURL=enum-import.js.map