{"_id":"@dhoniaridho/prisma-nestjs-generator","_rev":"5-c484c131a034dbe4c076f5e5a11446f2","name":"@dhoniaridho/prisma-nestjs-generator","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@dhoniaridho/prisma-nestjs-generator","version":"1.0.0","keywords":["nestjs","cli","generator","prisma","scaffolding"],"author":{"name":"dhoniaridho"},"license":"MIT","_id":"@dhoniaridho/prisma-nestjs-generator@1.0.0","maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"bin":{"pngen":"bin/index.mjs"},"dist":{"shasum":"a2fdc7eb155b7d695a7c069d33354bd316891a3c","tarball":"https://registry.npmjs.org/@dhoniaridho/prisma-nestjs-generator/-/prisma-nestjs-generator-1.0.0.tgz","fileCount":18,"integrity":"sha512-6+YuADfDBt8qquV8UdEyz9JXStVbQ8W6gqCNQl5e7QKoFYmldy8sC1RATgOT6h2iaHom0nkrGPEiEmVcYK1xQA==","signatures":[{"sig":"MEUCIQDGCf2Mf/TqhkX7Fkb9jhPXNmKCOYSzsZ2zpMWWQM2/1QIgf/j4d+EcT3G9gx6vsR3iEGrEkVSGTbB7OQquN6DwXCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26010},"type":"module","engines":{"node":">=16.0.0"},"gitHead":"a8a01380ae00d8a6f1710243d7d60d39c1c08c40","private":false,"_npmUser":{"name":"dhoniaridho","actor":{"name":"dhoniaridho","type":"user","email":"dhoniaridho@gmail.com"},"email":"dhoniaridho@gmail.com"},"repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"_npmVersion":"10.9.0","description":"CLI to generate NestJS feature modules from Prisma models","directories":{},"_nodeVersion":"22.11.0","dependencies":{"inquirer":"^9.0.0","lodash-es":"^4.17.21","pluralize":"^8.0.0","handlebars":"^4.7.7","inquirer-autocomplete-prompt":"^3.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prisma-nestjs-generator_1.0.0_1751727281032_0.7649121666165872","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@dhoniaridho/prisma-nestjs-generator","version":"0.0.1","keywords":["nestjs","cli","generator","prisma","scaffolding"],"author":{"name":"dhoniaridho"},"license":"MIT","_id":"@dhoniaridho/prisma-nestjs-generator@0.0.1","maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"bin":{"pngen":"bin/index.mjs"},"dist":{"shasum":"ab61e3c8febadfe116fef9187a31b54a83287a0c","tarball":"https://registry.npmjs.org/@dhoniaridho/prisma-nestjs-generator/-/prisma-nestjs-generator-0.0.1.tgz","fileCount":18,"integrity":"sha512-gMgXwjD4Ig4R8KQzDZieYVvdCT68PW5HiNhmYRTEnPtVH9YpEC5bOZrtp1GJ196gBad0vxdixZo+JRVoV5s0Jg==","signatures":[{"sig":"MEUCIHiy0e/xeAxBjOARUuSnsgDpNIq7n7SmlzaKivKZqylfAiEAsUkB1txtj2krsOHosRDScManYbYHQ+BwbePwVV/vC/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26001},"type":"module","engines":{"node":">=16.0.0"},"gitHead":"a8a01380ae00d8a6f1710243d7d60d39c1c08c40","private":false,"_npmUser":{"name":"dhoniaridho","actor":{"name":"dhoniaridho","type":"user","email":"dhoniaridho@gmail.com"},"email":"dhoniaridho@gmail.com"},"repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"_npmVersion":"10.9.0","description":"CLI to generate NestJS feature modules from Prisma models","directories":{},"_nodeVersion":"22.11.0","dependencies":{"inquirer":"^9.0.0","lodash-es":"^4.17.21","pluralize":"^8.0.0","handlebars":"^4.7.7","inquirer-autocomplete-prompt":"^3.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prisma-nestjs-generator_0.0.1_1751727470437_0.005989226391557967","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dhoniaridho/prisma-nestjs-generator","version":"1.0.1","keywords":["nestjs","cli","generator","prisma","scaffolding"],"author":{"name":"dhoniaridho"},"license":"MIT","_id":"@dhoniaridho/prisma-nestjs-generator@1.0.1","maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"bin":{"pngen":"bin/index.mjs"},"dist":{"shasum":"3a22d00b0ce3d33e6d3c8f9e02ae1df0d0989fce","tarball":"https://registry.npmjs.org/@dhoniaridho/prisma-nestjs-generator/-/prisma-nestjs-generator-1.0.1.tgz","fileCount":18,"integrity":"sha512-XWsYN5Ldg64YOh1PcZ9c8a6UV5r02RtXQFpQLH1ykdbk9TiGsWbPtmRNSyxGIFFZjdT69TvlM6HcKb7HsVEPMg==","signatures":[{"sig":"MEUCIQDSy/7lr2kVtb1UOsDaKZtrIlv2calSMewlgSgSFdMToAIgOfCw+eYNCNLKebHZlWUjhmNkNrbjf6DKAjnPo8Q67kM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26001},"type":"module","engines":{"node":">=16.0.0"},"gitHead":"a8a01380ae00d8a6f1710243d7d60d39c1c08c40","private":false,"_npmUser":{"name":"dhoniaridho","actor":{"name":"dhoniaridho","type":"user","email":"dhoniaridho@gmail.com"},"email":"dhoniaridho@gmail.com"},"repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"_npmVersion":"10.9.0","description":"CLI to generate NestJS feature modules from Prisma models","directories":{},"_nodeVersion":"22.11.0","dependencies":{"inquirer":"^9.0.0","lodash-es":"^4.17.21","pluralize":"^8.0.0","handlebars":"^4.7.7","inquirer-autocomplete-prompt":"^3.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prisma-nestjs-generator_1.0.1_1751727486830_0.2927433092663041","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dhoniaridho/prisma-nestjs-generator","version":"1.0.2","keywords":["nestjs","cli","generator","prisma","scaffolding"],"author":{"name":"dhoniaridho"},"license":"MIT","_id":"@dhoniaridho/prisma-nestjs-generator@1.0.2","maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"bin":{"pngen":"bin/index.mjs"},"dist":{"shasum":"4f2ce02faec2004362585193150624712288447b","tarball":"https://registry.npmjs.org/@dhoniaridho/prisma-nestjs-generator/-/prisma-nestjs-generator-1.0.2.tgz","fileCount":18,"integrity":"sha512-MebAbwWP7KqBYfa1CVdu6pIWBac9AK8M3E8HFmwrKty5iz0FngvZmVrdLsgiSiO5RwlBQmduNzkuHWXkgBT4Gg==","signatures":[{"sig":"MEQCIA2OLo8w4P6ogi73Gh6MMJ7rkMbRobiSMvRf5GLcG2E8AiBddvWMN4sSgki+uKhtXvb/+BNBHE9pjfsnNZdZ3Jr0lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25977},"type":"module","engines":{"node":">=16.0.0"},"gitHead":"38aaa9759b92dd4bf92415c2265c93d57c0d7b83","private":false,"_npmUser":{"name":"dhoniaridho","actor":{"name":"dhoniaridho","type":"user","email":"dhoniaridho@gmail.com"},"email":"dhoniaridho@gmail.com"},"repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"_npmVersion":"10.9.0","description":"CLI to generate NestJS feature modules from Prisma models","directories":{},"_nodeVersion":"22.11.0","dependencies":{"inquirer":"^9.0.0","lodash-es":"^4.17.21","pluralize":"^8.0.0","handlebars":"^4.7.7","inquirer-autocomplete-prompt":"^3.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prisma-nestjs-generator_1.0.2_1751727571731_0.21766439819330508","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dhoniaridho/prisma-nestjs-generator","version":"1.0.3","private":false,"description":"CLI to generate NestJS feature modules from Prisma models","type":"module","repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"bin":{"pngen":"bin/index.mjs"},"keywords":["nestjs","cli","generator","prisma","scaffolding"],"dependencies":{"handlebars":"^4.7.7","inquirer":"^9.0.0","inquirer-autocomplete-prompt":"^3.0.1","lodash-es":"^4.17.21","pluralize":"^8.0.0"},"engines":{"node":">=16.0.0"},"author":{"name":"dhoniaridho"},"license":"MIT","_id":"@dhoniaridho/prisma-nestjs-generator@1.0.3","gitHead":"5fd15504f0626e89992f9c785815709c0970c02a","bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-8ONJuD577fDyP//8j8iOk6z7zk3Ut1eTEzOSGWpKi6+iQlJgSLIGYcYi4FYbn3gXm+je3OIaaG8idYGhQILwbA==","shasum":"d0c22f43bc3293107d22fb4c0acf3382f7ab50c8","tarball":"https://registry.npmjs.org/@dhoniaridho/prisma-nestjs-generator/-/prisma-nestjs-generator-1.0.3.tgz","fileCount":19,"unpackedSize":27630,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBDKFGbeJsWtTUJVUUoTGwYm5pjl+VLEsEt8nea6/Z4wAiEAt+Oz7/05uDtiCAHkLoEXdtIV4g6ePcWJ71Ac9bNyLbA="}]},"_npmUser":{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"},"directories":{},"maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prisma-nestjs-generator_1.0.3_1754236444076_0.9857514855274965"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-05T14:54:40.936Z","modified":"2025-08-03T15:54:04.477Z","1.0.0":"2025-07-05T14:54:41.212Z","0.0.1":"2025-07-05T14:57:50.613Z","1.0.1":"2025-07-05T14:58:07.018Z","1.0.2":"2025-07-05T14:59:31.951Z","1.0.3":"2025-08-03T15:54:04.295Z"},"bugs":{"url":"https://github.com/dhoniaridho/nestjs-gen/issues"},"author":{"name":"dhoniaridho"},"license":"MIT","homepage":"https://github.com/dhoniaridho/nestjs-gen#readme","keywords":["nestjs","cli","generator","prisma","scaffolding"],"repository":{"url":"git+https://github.com/dhoniaridho/nestjs-gen.git"},"description":"CLI to generate NestJS feature modules from Prisma models","maintainers":[{"name":"dhoniaridho","email":"dhoniaridho@gmail.com"}],"readme":"# 🧰 NestJS Feature Generator\n\nA CLI tool to scaffold fully structured NestJS feature modules from your Prisma models — including DTOs, controllers, services, repositories, and more. Automatically wires your module into `main.module.ts` and supports Prisma `@api` annotations.\n\n---\n\n## ✨ Features\n\n- Auto-generates:\n  - Controllers (HTTP & Messaging)\n  - Services\n  - DTOs\n  - Repositories\n  - Feature Module\n  - Index exports\n- Auto-detects related Prisma models\n- Auto-wires to `main.module.ts` (optional)\n- Smart DTO field generation based on `// @api` comments\n- Autocomplete prompt for model selection\n- Custom output path support\n\n---\n\n## 🚀 Getting Started\n\n### 1. Install\n\n```bash\nnpm install -g @dhoniaridho/prisma-nestjs-generator\n```\n\nOr locally in your project:\n\n```bash\npnpm add -D @dhoniaridho/prisma-nestjs-generator\n```\n\n---\n\n### 2. Prepare Your Prisma Model\n\nTo include fields in the generated DTOs, annotate them with `// @api`:\n\n```prisma\nmodel User {\n  id        String   @id @default(uuid())\n  email     String   @unique // @api\n  name      String?          // @api\n  password  String\n  createdAt DateTime @default(now())\n}\n```\n\nOnly fields with `// @api` will be included in the generated DTOs.\n\n---\n\n### 3. Run the Generator\n\n```bash\nnpx pngen\n```\n\nYou'll be prompted to:\n\n- Enter your **feature name**\n- Select a **Prisma model**\n- (Optional) Specify the **destination path** (default: `src/app/your-feature`)\n\nThe generator will:\n\n- Create full boilerplate structure\n- Extract `@ApiProperty()` fields from your Prisma model\n- Offer to wire the module into `main.module.ts`\n- Optionally run `pnpm db:generate`\n\n---\n\n## 📝 Output Structure\n\nGiven a `User` model and feature name `account`, the generated output will look like:\n\n```\nsrc/app/accounts/\n├── controllers/\n│   ├── http/\n│   │   ├── accounts.controller.ts\n│   │   └── accounts.controller.spec.ts\n│   └── messaging/\n│       └── accounts.controller.ts\n├── services/\n│   ├── accounts.service.ts\n│   └── index.ts\n├── repositories/\n│   ├── accounts.repository.ts\n│   └── index.ts\n├── dtos/\n│   ├── create-accounts.dto.ts\n│   ├── update-accounts.dto.ts\n│   └── index.ts\n├── accounts.module.ts\n├── index.ts\n```\n\n---\n\n## 🧠 DTO Annotation Guide\n\nWhen generating DTOs, fields are added **only if** marked with `// @api` in `schema.prisma`.\n\n### Example\n\n```prisma\nmodel Product {\n  id    Int     @id @default(autoincrement())\n  name  String  // @api\n  price Float   // @api\n  stock Int?\n}\n```\n\nWill produce:\n\n```ts\n/**\n * name\n */\n@ApiProperty()\nname: string;\n\n/**\n * price\n */\n@ApiProperty()\nprice: number;\n```\n\nOptional fields get `{ required: false }` automatically:\n\n```ts\n/**\n * stock\n */\n@ApiProperty({ required: false })\nstock?: number;\n```\n\n---\n\n## 🧩 Integration with NestJS\n\nIf you allow it, the generator can **auto-import and register** your module in `src/main.module.ts`:\n\n```ts\nimport { AccountsModule } from \"./app/accounts/accounts.module\";\n\n@Module({\n  imports: [AccountsModule],\n})\nexport class MainModule {}\n```\n\n---\n\n## 🛠️ Requirements\n\n- Node.js ≥ 18\n- Prisma schema in `prisma/schema.prisma`\n- Project using NestJS module structure\n\n---\n\n## 🧪 Development\n\nTo test locally:\n\n```bash\npnpm link --global\npngen\n```\n\n---\n\n## 📦 Publishing\n\nTo publish to npm:\n\n1. Update `package.json`:\n\n   ```json\n   {\n     \"name\": \"@dhoniaridho/prisma-nestjs-generator\",\n     \"bin\": {\n       \"pngen\": \"./index.mjs\"\n     },\n     ...\n   }\n   ```\n\n2. Run:\n\n```bash\nnpm publish --access public\n```\n\n---\n\n## 📎 License\n\nMIT\n\n```\n\nLet me know if you want to generate this file as `README.md` directly in your project.\n```\n","readmeFilename":"README.md"}