feat: add script to create dummy seed data
This commit is contained in:
parent
5c17f888d7
commit
b3188b5303
File diff suppressed because it is too large
Load Diff
68
package.json
68
package.json
|
@ -1,33 +1,39 @@
|
|||
{
|
||||
"name": "web3.news",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"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-scroll-area": "^1.0.5",
|
||||
"date-fns": "^2.30.0",
|
||||
"next": "14.0.2",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"swr": "^2.2.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"autoprefixer": "^10.0.1",
|
||||
"eslint": "^8",
|
||||
"eslint-config-next": "14.0.2",
|
||||
"postcss": "^8",
|
||||
"tailwindcss": "^3.3.0",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"typescript": "^5"
|
||||
}
|
||||
"name": "web3.news",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"prisma": {
|
||||
"seed": "ts-node-esm 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-scroll-area": "^1.0.5",
|
||||
"date-fns": "^2.30.0",
|
||||
"next": "14.0.2",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"swr": "^2.2.4"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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, 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();
|
||||
});
|
Loading…
Reference in New Issue