import { PrismaClient } from "@prisma/client"; import bcrypt from "bcryptjs"; import { importSource } from "~/lib/importer.server"; import { saveSource } from "~/models/source.server"; const prisma = new PrismaClient(); async function seed() { const email = "testuser@foobar.com"; // cleanup the existing database await prisma.user.delete({ where: { email } }).catch(() => { // no worries if it doesn't exist yet }); const hashedPassword = await bcrypt.hash("testuser", 10); await prisma.user.create({ data: { email, password: { create: { hash: hashedPassword } } } }); const source = { name: "Take Home Challenge", connectionUrl: "https://s3-us-west-1.amazonaws.com/cdn-web.tunein.com/stations.json", type: "json" }; await prisma.contentSource .delete({ where: { connectionUrl: source.connectionUrl } }) .catch(() => { // no worries if it doesn't exist yet }); const s = await saveSource(source); await importSource(s); console.log(`Database has been seeded. 🌱`); } seed() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });