prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
37 lines • 1.63 kB
JavaScript
;
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