Astro build funktioniert
This commit is contained in:
36
prisma/prisma-enum-generator.ts
Normal file
36
prisma/prisma-enum-generator.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { generatorHandler } from "@prisma/generator-helper";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
const header = `// This file was generated by a custom prisma generator, do not edit manually.\n`;
|
||||
|
||||
generatorHandler({
|
||||
onManifest() {
|
||||
return {
|
||||
defaultOutput: "./enums/index.ts",
|
||||
prettyName: "Prisma Enum Generator",
|
||||
};
|
||||
},
|
||||
async onGenerate(options) {
|
||||
const enums = options.dmmf.datamodel.enums;
|
||||
|
||||
const output = enums.map((e) => {
|
||||
let enumString = `export enum ${e.name} {\n`;
|
||||
e.values.forEach(({ name: value }) => {
|
||||
enumString += ` ${value} = "${value}",\n`;
|
||||
});
|
||||
enumString += `};\n\n`;
|
||||
|
||||
return enumString;
|
||||
});
|
||||
|
||||
const outputFile = options.generator.output;
|
||||
if (!outputFile || !outputFile.value) {
|
||||
throw new Error("No output file specified");
|
||||
}
|
||||
|
||||
const outputPath = path.resolve(outputFile.value);
|
||||
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
||||
fs.writeFileSync(outputPath, header + output.join("\n"), "utf-8");
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user