# prisma-class-validator-gen

> Prisma 2+ generator to emit typescript models of your database with class validator

Latest version **0.4.1** (published 2023-01-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install prisma-class-validator-gen
pnpm add prisma-class-validator-gen
yarn add prisma-class-validator-gen
bun add prisma-class-validator-gen
```

Provides the command `prisma-class-validator-gen`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.1 |
| Published | 2023-01-30 |
| First published | 2022-12-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 9 |
| Unpacked size | 35.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Rheza Satria |
| Maintainers | rhzs |
| Keywords | prisma, prisma-client, prisma-schema, class-validator, prisma-generator, prisma-class-validator-generator |

## Links

- npm: https://www.npmjs.com/package/prisma-class-validator-gen
- Repository: https://github.com/rhzs/prisma-class-validator-gen
- Homepage: https://github.com/rhzs/prisma-class-validator-gen#readme
- Issues: https://github.com/rhzs/prisma-class-validator-gen/issues
- npm.io page: https://npm.io/package/prisma-class-validator-gen

## Dependencies (9)

- [tslib](https://npm.io/package/tslib.md) ^2.4.0
- [prettier](https://npm.io/package/prettier.md) ^2.7.1
- [ts-morph](https://npm.io/package/ts-morph.md) ^15.1.0
- [pluralize](https://npm.io/package/pluralize.md) ^8.0.0
- [@prisma/client](https://npm.io/package/@prisma/client.md) ^4.0.0
- [class-validator](https://npm.io/package/class-validator.md) ^0.14.0
- [@prisma/internals](https://npm.io/package/@prisma/internals.md) ^4.0.0
- [class-transformer](https://npm.io/package/class-transformer.md) ^0.5.1
- [@prisma/generator-helper](https://npm.io/package/@prisma/generator-helper.md) ^4.0.0

## Alternatives

- [@regle/core](https://npm.io/package/@regle/core.md) — 47.0K weekly downloads
- [typeof-arguments](https://npm.io/package/typeof-arguments.md) — 12.5K weekly downloads
- [@lokalise/projects-engine-contracts](https://npm.io/package/@lokalise/projects-engine-contracts.md) — 978 weekly downloads
- [@osjwnpm/nam-laboriosam-quibusdam](https://npm.io/package/@osjwnpm/nam-laboriosam-quibusdam.md) — 70 weekly downloads
- [@oridune/validator](https://npm.io/package/@oridune/validator.md) — 16 weekly downloads

## Recent versions

- 0.4.1 (latest) — 2023-01-30
- 0.4.0 — 2023-01-30
- 0.3.0 — 2022-12-19
- 0.2.0 — 2022-12-19
- 0.1.0 — 2022-12-19

## README

# Prisma Class Validator Gen

[![npm version](https://badge.fury.io/js/prisma-class-validator-gen.svg)](https://badge.fury.io/js/prisma-class-validator-gen)
[![npm](https://img.shields.io/npm/dt/prisma-class-validator-gen.svg)](https://www.npmjs.com/package/prisma-class-validator-gen)
[![HitCount](https://hits.dwyl.com/rhzs/prisma-class-validator-gen.svg?style=flat)](http://hits.dwyl.com/rhzs/prisma-class-validator-gen)
[![npm](https://img.shields.io/npm/l/prisma-class-validator-gen.svg)](LICENSE)

Automatically generate typescript models of your database with class validator validations ready, from your [Prisma](https://github.com/prisma/prisma) Schema. Updates every time `npx prisma generate` runs.

<p align="center">
  <a href="https://www.buymeacoffee.com/omardulaimi">
    <img src="https://cdn.buymeacoffee.com/buttons/default-black.png" alt="Buy Me A Coffee" height="41" width="174">
  </a>
</p>

## Table of Contents

- [Supported Prisma Versions](#supported-prisma-versions)
- [Installation](#installing)
- [Usage](#usage)
- [Additional Options](#additional-options)

# Supported Prisma Versions

Probably no breaking changes for this library, so try newer versions first.

### Prisma 4

- 0.2.0 and higher

### Prisma 2/3

- 0.1.1 and lower

## Installation

Using npm:

```bash
 npm install prisma-class-validator-generator
```

Using yarn:

```bash
 yarn add prisma-class-validator-generator
```

# Usage

1- Star this repo 😉

2- Add the generator to your Prisma schema

```prisma
generator class_validator {
  provider = "prisma-class-validator-generator"
  output   = "./class-validator-gen"
}
```

3- Running `npx prisma generate` for the following schema.prisma

```prisma
model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
  posts Post[]
}

model Post {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  title     String
  content   String?
  published Boolean  @default(false)
  viewCount Int      @default(0)
  author    User?    @relation(fields: [authorId], references: [id])
  authorId  Int?
  rating    Float
}
```

will generate the following files

![Typescript models with class validator](https://raw.githubusercontent.com/rhzs/prisma-class-validator-gen/master/classValidatorModels.png)

Inside `User` model:

```ts
import { IsInt, IsDefined, IsString, IsOptional } from "class-validator";
import { Post } from "./";

export class User {
    @IsDefined()
    @IsInt()
    id!: number;

    @IsDefined()
    @IsString()
    email!: string;

    @IsOptional()
    @IsString()
    name?: string;

    @IsDefined()
    posts!: Post[];
}

```

## Additional Options

| Option   |  Description                              | Type     |  Default      |
| -------- | ----------------------------------------- | -------- | ------------- |
| `output` | Output directory for the generated models and enums | `string` | `./generated` |
| `modelDir` | Model directory name for the generated models | `string` | `./generated/models` |
| `enumDir` | Enum directory name for the generated enums | `string` | `./generated/enums` |

Use additional options in the `schema.prisma`

```prisma
generator class_validator {
  provider   = "prisma-class-validator-generator"
  output     = "./generated"
  modelDir = "models"
  enumDir  = "enums"
}
```

---
_Source: https://npm.io/package/prisma-class-validator-gen · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
