This commit is contained in:
2026-06-26 20:42:38 -04:00
commit a332e85658
134 changed files with 17288 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
import { GameModel, PlayerModel, PoemModel } from "generated/prisma/models";
import { prisma } from "../../lib/prisma";
import { ObjName } from "./types";
export async function create<InputType, OutputType>(
objName: ObjName,
data: InputType,
) {
try {
let newObj;
switch (objName) {
case "game":
if (Array.isArray(data)) {
newObj = await prisma.game.createMany({
data: data as GameModel[],
});
} else {
newObj = await prisma.game.create({
data: data as GameModel,
include: {
players: true,
},
});
}
break;
case "player":
if (Array.isArray(data)) {
newObj = await prisma.player.createMany({
data: data as PlayerModel[],
});
} else {
newObj = await prisma.player.create({
data: data as PlayerModel,
});
}
break;
case "poem":
if (Array.isArray(data)) {
newObj = await prisma.poem.createMany({
data: (data as PoemModel[]).map((d) => ({
...d,
lines: d.lines!,
})),
});
} else {
newObj = await prisma.poem.create({
data: { ...(data as PoemModel), lines: (data as PoemModel).lines! },
});
}
break;
}
return newObj as OutputType;
} catch (e) {
console.error(e);
process.exit(1);
}
}