diff --git a/package.json b/package.json index ea3f255..cf4a3e9 100644 --- a/package.json +++ b/package.json @@ -1,48 +1,49 @@ { - "name": "web3.news", - "version": "0.1.0", - "private": true, - "prisma": { - "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts" - }, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@heroicons/react": "^2.0.18", - "@prisma/client": "^5.6.0", - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-popover": "^1.0.7", - "@radix-ui/react-scroll-area": "^1.0.5", - "@radix-ui/react-select": "^2.0.0", - "@radix-ui/react-slot": "^1.0.2", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", - "cmdk": "^0.2.0", - "date-fns": "^2.30.0", - "next": "14.0.2", - "react": "^18", - "react-dom": "^18", - "swr": "^2.2.4", - "tailwind-merge": "^2.0.0" - }, - "devDependencies": { - "@faker-js/faker": "^8.3.1", - "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", - "autoprefixer": "^10.0.1", - "eslint": "^8", - "eslint-config-next": "14.0.2", - "postcss": "^8", - "prisma": "^5.6.0", - "tailwindcss": "^3.3.0", - "tailwindcss-animate": "^1.0.7", - "ts-node": "^10.9.1", - "typescript": "^5" - } + "name": "web3.news", + "version": "0.1.0", + "private": true, + "prisma": { + "seed": "ts-node-esm prisma/seed.mts" + }, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "bridge": "ts-node-esm bridge.mts" + }, + "dependencies": { + "@heroicons/react": "^2.0.18", + "@prisma/client": "^5.6.0", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-slot": "^1.0.2", + "class-variance-authority": "^0.7.0", + "clsx": "^2.0.0", + "cmdk": "^0.2.0", + "date-fns": "^2.30.0", + "next": "14.0.2", + "react": "^18", + "react-dom": "^18", + "swr": "^2.2.4", + "tailwind-merge": "^2.0.0" + }, + "devDependencies": { + "@faker-js/faker": "^8.3.1", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "eslint": "^8", + "eslint-config-next": "14.0.2", + "postcss": "^8", + "prisma": "^5.6.0", + "tailwindcss": "^3.3.0", + "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.1", + "typescript": "^5" + } } diff --git a/prisma/seed.mts b/prisma/seed.mts new file mode 100644 index 0000000..033ff18 --- /dev/null +++ b/prisma/seed.mts @@ -0,0 +1,35 @@ +import {PrismaClient} from "@prisma/client"; +import {faker} from "@faker-js/faker"; + +const prisma = new PrismaClient(); + +async function main() { + const numberOfArticles = 100; // Specify the number of articles to generate + const articles = []; + + for (let i = 0; i < numberOfArticles; i++) { + const title = faker.lorem.sentence(); + const slug = faker.helpers.slugify(title).toLowerCase(); + const url = faker.internet.url(); + const siteKey = faker.string.alphanumeric(10); + + articles.push({title, slug, cid: "", url, siteKey}); + } + + for (const article of articles) { + await prisma.article.create({ + data: article, + }); + } + + console.log(`${articles.length} articles created.`); +} + +main() + .catch((e) => { + console.error(e); + process.exit(1); + }) + .finally(async () => { + await prisma.$disconnect(); + }); diff --git a/prisma/seed.ts b/prisma/seed.ts deleted file mode 100644 index 2888274..0000000 --- a/prisma/seed.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrismaClient } from "@prisma/client"; -import { faker } from "@faker-js/faker"; - -const prisma = new PrismaClient(); - -async function main() { - const numberOfArticles = 100; // Specify the number of articles to generate - const articles = []; - - for (let i = 0; i < numberOfArticles; i++) { - const title = faker.lorem.sentence(); - const slug = faker.helpers.slugify(title).toLowerCase(); - const url = faker.internet.url(); - const siteKey = faker.string.alphanumeric(10); - - articles.push({ title, slug, url, siteKey }); - } - - for (const article of articles) { - await prisma.article.create({ - data: article, - }); - } - - console.log(`${articles.length} articles created.`); -} - -main() - .catch((e) => { - console.error(e); - process.exit(1); - }) - .finally(async () => { - await prisma.$disconnect(); - });