Seeding v=match initial

This commit is contained in:
Kalle (Sendou) 2021-12-28 08:40:00 +02:00
parent 7b27c74d4d
commit 72a82e7c12
5 changed files with 123 additions and 6 deletions

75
package-lock.json generated
View File

@ -55,6 +55,7 @@
"stylelint-config-standard": "^24.0.0",
"stylelint-order": "^5.0.0",
"ts-node": "^10.4.0",
"tsconfig-paths": "^3.12.0",
"tsm": "^2.2.1",
"typescript": "^4.5.4",
"uvu": "^0.5.2"
@ -665,6 +666,12 @@
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==",
"dev": true
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true
},
"node_modules/@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
@ -7581,6 +7588,15 @@
"node": ">=8"
}
},
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/strip-final-newline": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@ -8112,6 +8128,30 @@
"node": ">=0.3.1"
}
},
"node_modules/tsconfig-paths": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
"integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
"dev": true,
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
"minimist": "^1.2.0",
"strip-bom": "^3.0.0"
}
},
"node_modules/tsconfig-paths/node_modules/json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
},
"bin": {
"json5": "lib/cli.js"
}
},
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
@ -9653,6 +9693,12 @@
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==",
"dev": true
},
"@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true
},
"@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
@ -14684,6 +14730,12 @@
"ansi-regex": "^5.0.1"
}
},
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
"strip-final-newline": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@ -15079,6 +15131,29 @@
}
}
},
"tsconfig-paths": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
"integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
"dev": true,
"requires": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
"minimist": "^1.2.0",
"strip-bom": "^3.0.0"
},
"dependencies": {
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
}
}
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",

View File

@ -5,7 +5,7 @@
"scripts": {
"build": "remix build",
"dev:remix": "remix watch",
"dev:server": "cross-env NODE_ENV=development node --experimental-specifier-resolution=node --loader ts-node/esm server/index.ts",
"dev:server": "cross-env NODE_ENV=development node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register server/index.ts",
"dev": "concurrently \"npm run dev:remix\" \"npm run dev:server\"",
"postinstall": "remix setup node",
"gen": "npx prisma generate",
@ -13,7 +13,7 @@
"migration:create": "npx prisma migrate dev --create-only",
"migration:apply:dev": "npx prisma migrate dev",
"migration:apply:prod": "npx prisma migrate deploy",
"seed": "node --experimental-specifier-resolution=node --loader ts-node/esm prisma/seed",
"seed": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register prisma/seed",
"seed:reset": "npx prisma migrate reset --force --skip-generate",
"lint:styles": "stylelint \"app/styles/**/*.css\"",
"prettier:check": "prettier --check .",
@ -69,6 +69,7 @@
"stylelint-config-standard": "^24.0.0",
"stylelint-order": "^5.0.0",
"ts-node": "^10.4.0",
"tsconfig-paths": "^3.12.0",
"tsm": "^2.2.1",
"typescript": "^4.5.4",
"uvu": "^0.5.2"

View File

@ -2,14 +2,16 @@ import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
import { seed } from "./script";
const legalVariations = ["check-in", "match"];
const variation = process.argv[2]?.startsWith("-v=")
? process.argv[2].split("-v=")[1]
: undefined;
if (variation !== undefined && variation !== "check-in") {
if (variation !== undefined && !legalVariations.includes(variation)) {
throw Error("Unknown variation");
}
seed(variation)
seed(variation as any)
.then(() => {
console.log(
`🌱 All done with seeding${variation ? ` (variation: ${variation})` : ""}`

View File

@ -11,9 +11,12 @@ import {
import { readFile } from "fs/promises";
import path from "path";
import crypto from "crypto";
import { createTournamentRounds } from "../../app/services/tournament";
const prisma = new PrismaClient();
export async function seed(variation?: "check-in") {
const mapListDE = `{"losers":[[{"id":4647,"name":"Kelp Dome","mode":"SZ"},{"id":4658,"name":"Blackbelly Skatepark","mode":"TC"},{"id":4645,"name":"Manta Maria","mode":"CB"}],[{"id":4624,"name":"Inkblot Art Academy","mode":"RM"},{"id":4707,"name":"Ancho-V Games","mode":"SZ"},{"id":4618,"name":"Humpback Pump Track","mode":"TC"}],[{"id":4692,"name":"Camp Triggerfish","mode":"SZ"},{"id":4665,"name":"MakoMart","mode":"CB"},{"id":4634,"name":"Moray Towers","mode":"RM"}],[{"id":4609,"name":"Musselforge Fitness","mode":"RM"},{"id":4647,"name":"Kelp Dome","mode":"SZ"},{"id":4678,"name":"Arowana Mall","mode":"TC"}],[{"id":4705,"name":"New Albacore Hotel","mode":"CB"},{"id":4644,"name":"Manta Maria","mode":"RM"},{"id":4707,"name":"Ancho-V Games","mode":"SZ"}],[{"id":4657,"name":"Blackbelly Skatepark","mode":"SZ"},{"id":4690,"name":"Piranha Pit","mode":"CB"},{"id":4682,"name":"Goby Arena","mode":"SZ"},{"id":4678,"name":"Arowana Mall","mode":"TC"},{"id":4624,"name":"Inkblot Art Academy","mode":"RM"}]],"winners":[[{"id":4677,"name":"Arowana Mall","mode":"SZ"},{"id":4665,"name":"MakoMart","mode":"CB"},{"id":4618,"name":"Humpback Pump Track","mode":"TC"}],[{"id":4624,"name":"Inkblot Art Academy","mode":"RM"},{"id":4683,"name":"Goby Arena","mode":"TC"},{"id":4692,"name":"Camp Triggerfish","mode":"SZ"}],[{"id":4647,"name":"Kelp Dome","mode":"SZ"},{"id":4634,"name":"Moray Towers","mode":"RM"},{"id":4707,"name":"Ancho-V Games","mode":"SZ"},{"id":4610,"name":"Musselforge Fitness","mode":"CB"},{"id":4658,"name":"Blackbelly Skatepark","mode":"TC"}],[{"id":4644,"name":"Manta Maria","mode":"RM"},{"id":4677,"name":"Arowana Mall","mode":"SZ"},{"id":4690,"name":"Piranha Pit","mode":"CB"},{"id":4682,"name":"Goby Arena","mode":"SZ"},{"id":4618,"name":"Humpback Pump Track","mode":"TC"}],[{"id":4624,"name":"Inkblot Art Academy","mode":"RM"},{"id":4707,"name":"Ancho-V Games","mode":"SZ"},{"id":4610,"name":"Musselforge Fitness","mode":"CB"},{"id":4657,"name":"Blackbelly Skatepark","mode":"SZ"},{"id":4693,"name":"Camp Triggerfish","mode":"TC"},{"id":4664,"name":"MakoMart","mode":"RM"},{"id":4647,"name":"Kelp Dome","mode":"SZ"}],[{"id":4617,"name":"Humpback Pump Track","mode":"SZ"},{"id":4635,"name":"Moray Towers","mode":"CB"},{"id":4682,"name":"Goby Arena","mode":"SZ"},{"id":4644,"name":"Manta Maria","mode":"RM"},{"id":4678,"name":"Arowana Mall","mode":"TC"},{"id":4692,"name":"Camp Triggerfish","mode":"SZ"},{"id":4705,"name":"New Albacore Hotel","mode":"CB"}]]}`;
export async function seed(variation?: "check-in" | "match") {
try {
//
// make sure we won't override production database
@ -54,6 +57,37 @@ export async function seed(variation?: "check-in") {
await trustRelationship(nzapUserCreated.id, adminUserCreated.id);
await stages();
await tournamentAddMaps(tournament.id);
if (variation === "match") {
await tournamentRoundsCreate();
}
async function tournamentRoundsCreate() {
const stages = await prisma.stage.findMany({});
await createTournamentRounds({
userId: adminUserCreated.id,
organizationNameForUrl: "sendou",
tournamentNameForUrl: "in-the-zone-x",
bracketId: tournament.brackets[0].id,
mapList: {
winners: JSON.parse(mapListDE).winners.map((round: any) =>
round.map((stage: any) =>
stages.find(
(stageInDb) =>
stage.name === stageInDb.name && stage.mode === stageInDb.mode
)
)
),
losers: JSON.parse(mapListDE).losers.map((round: any) =>
round.map((stage: any) =>
stages.find(
(stageInDb) =>
stage.name === stageInDb.name && stage.mode === stageInDb.mode
)
)
),
},
});
}
} finally {
await prisma.$disconnect();
}
@ -141,13 +175,14 @@ export async function seed(variation?: "check-in") {
"Woomy Zoomy Boomy",
];
if (variation === "check-in") {
if (variation === "check-in" || variation === "match") {
const team = await prisma.tournamentTeam.create({
data: {
name: "Kraken Paradise",
tournamentId,
friendCode: "1234-1234-1234",
inviteCode: "033e3695-0421-4aa1-a5ef-6ee82297a398",
checkedInTime: variation === "match" ? new Date() : undefined,
},
});
@ -252,6 +287,9 @@ export async function seed(variation?: "check-in") {
},
},
},
include: {
brackets: true,
},
});
}

View File

@ -15,6 +15,7 @@
"paths": {
"~/*": ["./app/*"]
},
"baseUrl": ".",
// Remix takes care of building everything in `remix build`.
"noEmit": true