{"id":13847335,"url":"https://github.com/echobind/prisma-factory","last_synced_at":"2025-08-20T18:33:49.141Z","repository":{"id":39364912,"uuid":"377335536","full_name":"echobind/prisma-factory","owner":"echobind","description":"Factories ❤️ Prisma","archived":false,"fork":false,"pushed_at":"2023-06-05T16:43:48.000Z","size":3211,"stargazers_count":69,"open_issues_count":14,"forks_count":9,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-12-09T06:03:15.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/echobind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-06-16T01:20:43.000Z","updated_at":"2024-11-04T15:18:15.000Z","dependencies_parsed_at":"2024-01-15T20:49:32.878Z","dependency_job_id":"3577505c-9b73-40c9-9163-a93eef68cb46","html_url":"https://github.com/echobind/prisma-factory","commit_stats":{"total_commits":39,"total_committers":4,"mean_commits":9.75,"dds":0.1282051282051282,"last_synced_commit":"bbc062e45aa97d6922b3b59cac9bf48306bb6d60"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Fprisma-factory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Fprisma-factory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Fprisma-factory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Fprisma-factory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/echobind","download_url":"https://codeload.github.com/echobind/prisma-factory/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229982103,"owners_count":18154512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T18:01:17.115Z","updated_at":"2024-12-19T14:08:05.178Z","avatar_url":"https://github.com/echobind.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# prisma-factory\n\nGenerate factory functions for your Prisma models.\n\n## Installation and Setup\n\nThis package can be installed in any project using [Prisma](https://www.prisma.io). To get started, install by running the following from the command line:\n\n```sh\n# Using yarn\nyarn add prisma-factory --dev\n\n# Using npm\nnpm install prisma-factory --save-dev\n\n# Using pnpm\npnpm add prisma-factory --dev\n```\n\nOnce installed, open your Prisma schema file to add the generator block for `prisma-factory`:\n\n```prisma\ndatasource db {\n  provider = \"postgresql\"\n  url      = env(\"DATABASE_URL\")\n}\n\ngenerator client {\n  provider = \"prisma-client-js\"\n}\n\n// Add this block to your schema\ngenerator factories {\n  provider = \"prisma-factory\"\n}\n```\n\nRun the `prisma generate` command to generate the factory files. You can import the generated files into your project from `prisma-factory/generated`.\n\n## Examples\n\n```ts\nimport { faker } from '@faker-js/faker';\nimport { createTeamMemberFactory } from 'prisma-factory/generated';\n\nexport const createTeamMember = () =\u003e {\n  const TeamMemberFactory = createTeamMemberFactory();\n\n  // This example uses faker to generate random data\n  return TeamMemberFactory.create({\n    name: faker.name.findName(),\n    createdAt: faker.date.past(),\n    updatedAt: new Date(),\n    role: faker.name.jobTitle(),\n    description: faker.lorem.sentence(),\n    image: faker.image.avatar(),\n    twitter: '#',\n    linkedin: '#',\n  });\n};\n```\n\n## Database Seeding\n\nTo use `prisma-factory` to seed your database, you can write a script to create data using the generated factory functions:\n\n```ts\n#!/usr/bin/env node\n\nimport { PrismaClient } from 'prisma/client';\nimport { faker } from '@faker-js/faker';\nimport { createTeamMemberFactory } from 'prisma-factory/generated';\n\nconst prisma = new PrismaClient();\n\nexport const createTeamMember = () =\u003e {\n  const TeamMemberFactory = createTeamMemberFactory();\n\n  // This example uses faker to generate random data\n  return TeamMemberFactory.create({\n    name: faker.name.findName(),\n    createdAt: faker.date.past(),\n    updatedAt: new Date(),\n    role: faker.name.jobTitle(),\n    description: faker.lorem.sentence(),\n    image: faker.image.avatar(),\n    twitter: '#',\n    linkedin: '#',\n  });\n};\n\nasync function main() {\n  try {\n    for (let i = 0; i \u003c 10; i++) {\n      await createTeamMember();\n    }\n  } catch (error) {\n    console.warn('Please define your seed data.');\n    console.error(error);\n  }\n}\n\nmain()\n  .catch((err) =\u003e {\n    console.error(err);\n    process.exit(1);\n  })\n  .finally(async () =\u003e {\n    await prisma.$disconnect();\n    process.exit(0);\n  });\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechobind%2Fprisma-factory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechobind%2Fprisma-factory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechobind%2Fprisma-factory/lists"}