{"_id":"@bazuka5801/prisma-zod-generator","_rev":"1-e4553fac78d734b28db50a3fcd36d5c1","name":"@bazuka5801/prisma-zod-generator","dist-tags":{"latest":"0.8.14"},"versions":{"0.8.13":{"name":"@bazuka5801/prisma-zod-generator","version":"0.8.13","description":"Prisma 2+ generator to emit Zod schemas from your Prisma schema","repository":{"type":"git","url":"git+https://github.com/omar-dulaimi/prisma-zod-generator.git"},"bin":{"prisma-zod-generator":"lib/generator.js"},"scripts":{"gen-example":"tsc && npx prisma generate","check-uncommitted":"git diff-index --quiet HEAD --","package:publish":"npm update && npm run check-uncommitted && ./package.sh && cd package && npm publish"},"author":{"name":"Omar Dulaimi","url":"https://github.com/omar-dulaimi"},"keywords":["prisma","prisma-client","prisma-schema","zod","prisma-generator","prisma-zod-generator"],"license":"MIT","dependencies":{"@prisma/client":"^4.8.0","@prisma/generator-helper":"^4.8.0","@prisma/internals":"^4.8.0","prettier":"^2.8.1","tslib":"^2.4.1","zod":"^3.20.2"},"devDependencies":{"@types/node":"^18.11.18","@types/prettier":"^2.7.2","prisma":"^4.8.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"bugs":{"url":"https://github.com/omar-dulaimi/prisma-zod-generator/issues"},"homepage":"https://github.com/omar-dulaimi/prisma-zod-generator#readme","private":false,"gitHead":"a2616ee41c5faee4ef94cf3a221a951240333a40","_id":"@bazuka5801/prisma-zod-generator@0.8.13","_nodeVersion":"18.14.2","_npmVersion":"9.5.0","dist":{"integrity":"sha512-CGiExJgH/USgua27vMXlVJwxgjFDaiX0WiLbV2aLcrinwVqUM6Rr9nsHxwh861okNTVrn2xeYUXDP8iOGHQG9Q==","shasum":"141b4fd4cb3630637b08a985e3e98284e4f45081","tarball":"https://registry.npmjs.org/@bazuka5801/prisma-zod-generator/-/prisma-zod-generator-0.8.13.tgz","fileCount":35,"unpackedSize":136554,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCPiAc35DXE2yckJHGAiJsMQGXB84biiYOzPDjrGw9eAiEAplORMfWzWHZgmXD7Kc0m6WDnlD1dszrI4hNv2TTWD1c="}]},"_npmUser":{"name":"bazuka5801","email":"bazuka5801@mail.ru"},"directories":{},"maintainers":[{"name":"bazuka5801","email":"bazuka5801@mail.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prisma-zod-generator_0.8.13_1710629678903_0.5919297882621413"},"_hasShrinkwrap":false},"0.8.14":{"name":"@bazuka5801/prisma-zod-generator","version":"0.8.14","description":"Prisma 2+ generator to emit Zod schemas from your Prisma schema","repository":{"type":"git","url":"git+https://github.com/omar-dulaimi/prisma-zod-generator.git"},"bin":{"prisma-zod-generator":"lib/generator.js"},"scripts":{"gen-example":"tsc && npx prisma generate","check-uncommitted":"git diff-index --quiet HEAD --","package:publish":"npm update && npm run check-uncommitted && ./package.sh && cd package && npm publish"},"author":{"name":"Omar Dulaimi","url":"https://github.com/omar-dulaimi"},"keywords":["prisma","prisma-client","prisma-schema","zod","prisma-generator","prisma-zod-generator"],"license":"MIT","dependencies":{"@prisma/client":"^4.8.0","@prisma/generator-helper":"^4.8.0","@prisma/internals":"^4.8.0","prettier":"^2.8.1","tslib":"^2.4.1","zod":"^3.20.2"},"devDependencies":{"@types/node":"^18.11.18","@types/prettier":"^2.7.2","prisma":"^4.8.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"bugs":{"url":"https://github.com/omar-dulaimi/prisma-zod-generator/issues"},"homepage":"https://github.com/omar-dulaimi/prisma-zod-generator#readme","private":false,"gitHead":"a2616ee41c5faee4ef94cf3a221a951240333a40","_id":"@bazuka5801/prisma-zod-generator@0.8.14","_nodeVersion":"18.14.2","_npmVersion":"9.5.0","dist":{"integrity":"sha512-poDyA3JZl4J2dDUJpwoGcREYD1Zl6mjgqbXWXD75AaJIFep8QaktRzfbJmSo31GsFIiituezUQZMIVLuD4vxGA==","shasum":"f8287a5fb57bc7696c9b4a53bac736388982ac96","tarball":"https://registry.npmjs.org/@bazuka5801/prisma-zod-generator/-/prisma-zod-generator-0.8.14.tgz","fileCount":92,"unpackedSize":261092,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE57/UqGerEr98Nhss1St0UVKthFapM8IDVTFtiCML6ZAiEA2NI9O090i87+iSiz2CpqVlmdXma/QRtBLC+4Q+Cd8bk="}]},"_npmUser":{"name":"bazuka5801","email":"bazuka5801@mail.ru"},"directories":{},"maintainers":[{"name":"bazuka5801","email":"bazuka5801@mail.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/prisma-zod-generator_0.8.14_1710629837998_0.9724747684549249"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-16T22:54:38.791Z","0.8.13":"2024-03-16T22:54:39.040Z","modified":"2024-03-16T22:57:18.549Z","0.8.14":"2024-03-16T22:57:18.137Z"},"maintainers":[{"name":"bazuka5801","email":"bazuka5801@mail.ru"}],"description":"Prisma 2+ generator to emit Zod schemas from your Prisma schema","homepage":"https://github.com/omar-dulaimi/prisma-zod-generator#readme","keywords":["prisma","prisma-client","prisma-schema","zod","prisma-generator","prisma-zod-generator"],"repository":{"type":"git","url":"git+https://github.com/omar-dulaimi/prisma-zod-generator.git"},"author":{"name":"Omar Dulaimi","url":"https://github.com/omar-dulaimi"},"bugs":{"url":"https://github.com/omar-dulaimi/prisma-zod-generator/issues"},"license":"MIT","readme":"# Prisma Zod Generator\n\n[![npm version](https://badge.fury.io/js/prisma-zod-generator.svg)](https://badge.fury.io/js/prisma-zod-generator)\n[![npm](https://img.shields.io/npm/dt/prisma-zod-generator.svg)](https://www.npmjs.com/package/prisma-zod-generator)\n[![HitCount](https://hits.dwyl.com/omar-dulaimi/prisma-zod-generator.svg?style=flat)](http://hits.dwyl.com/omar-dulaimi/prisma-zod-generator)\n[![npm](https://img.shields.io/npm/l/prisma-zod-generator.svg)](LICENSE)\n\nAutomatically generate [Zod](https://github.com/colinhacks/zod) schemas from your [Prisma](https://github.com/prisma/prisma) Schema, and use them to validate your API endpoints or any other use you have. Updates every time `npx prisma generate` runs.\n\n<p align=\"center\">\n  <a href=\"https://www.buymeacoffee.com/omardulaimi\">\n    <img src=\"https://cdn.buymeacoffee.com/buttons/default-black.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\">\n  </a>\n</p>\n\n## Table of Contents\n\n- [Supported Prisma Versions](#supported-prisma-versions)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Customizations](#customizations)\n- [Additional Options](#additional-options)\n\n# Supported Prisma Versions\n\n### Prisma 4\n\n- 0.3.0 and higher\n\n### Prisma 2/3\n\n- 0.2.0 and lower\n\n# Installation\n\nUsing npm:\n\n```bash\n npm install prisma-zod-generator\n```\n\nUsing yarn:\n\n```bash\n yarn add prisma-zod-generator\n```\n\n# Usage\n\n1- Star this repo 😉\n\n2- Add the generator to your Prisma schema\n\n```prisma\ngenerator zod {\n  provider = \"prisma-zod-generator\"\n}\n```\n\n3- Enable strict mode in `tsconfig` as it is required by Zod, and considered a Typescript best practice\n\n```ts\n{\n  \"compilerOptions\": {\n    \"strict\": true\n  }\n}\n\n```\n\n4- Running `npx prisma generate` for the following schema.prisma\n\n```prisma\nmodel User {\n  id    Int     @id @default(autoincrement())\n  email String  @unique\n  name  String?\n  posts Post[]\n}\n\nmodel Post {\n  id        Int      @id @default(autoincrement())\n  createdAt DateTime @default(now())\n  updatedAt DateTime @updatedAt\n  title     String\n  content   String?\n  published Boolean  @default(false)\n  viewCount Int      @default(0)\n  author    User?    @relation(fields: [authorId], references: [id])\n  authorId  Int?\n  likes     BigInt\n}\n```\n\nwill generate the following files\n\n![Zod Schemas](https://raw.githubusercontent.com/omar-dulaimi/prisma-zod-generator/master/zodSchemas.png)\n\n5- Use generated schemas somewhere in your API logic, like middleware or decorator\n\n```ts\nimport { PostCreateOneSchema } from './prisma/generated/schemas/createOnePost.schema';\n\napp.post('/blog', async (req, res, next) => {\n  const { body } = req;\n  await PostCreateOneSchema.parse(body);\n});\n```\n\n# Customizations\n\n## Skipping entire models\n\n```prisma\n/// @@Gen.model(hide: true)\nmodel User {\n  id    Int     @id @default(autoincrement())\n  email String  @unique\n  name  String?\n}\n```\n\n# Additional Options\n\n| Option              | Description                                                                | Type      | Default       |\n| ------------------- | -------------------------------------------------------------------------- | --------- | ------------- |\n| `output`            | Output directory for the generated zod schemas                             | `string`  | `./generated` |\n| `isGenerateSelect`  | Enables the generation of Select related schemas and the select property   | `boolean` | `false`       |\n| `isGenerateInclude` | Enables the generation of Include related schemas and the include property | `boolean` | `false`       |\n\nUse additional options in the `schema.prisma`\n\n```prisma\ngenerator zod {\n  provider          = \"prisma-zod-generator\"\n  output            = \"./generated-zod-schemas\"\n  isGenerateSelect  = true\n  isGenerateInclude = true\n}\n```\n","readmeFilename":"README.md"}