@aomex/prisma-to-validator
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Installation

pnpm add @aomex/prisma-to-validator

Tested engines

  • mysql
  • postgresql
  • mongodb
  • sqlite

Generator

  1. Inject to File prisma/schema.prisma
datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

+ generator aomex {
+   provider = "prisma-to-aomex-validator"
+ }

model user {
  id    Int  @id @default(autoincrement())
  name  String
  age   Int?
}
  1. Execute in terminal
npx prisma generate
  1. See output
// File: node_modules/@aomex/prisma-to-validator/dist/index.js
export const UserModel = {
  /**
   * Original: `Int`
   *
   * Runtime: `rule.int()`
   */
  id: rule.int(),
  /**
   * Original: `String`
   *
   * Runtime: `rule.string()`
   */
  name: rule.string(),
  /**
   * Original: `Int?`
   *
   * Runtime: `rule.int().nullable()`
   */
  age: rule.int().nullable(),
};

// File: node_modules/@aomex/prisma-to-validator/dist/index.d.ts
export declare const UserModel: {
  /**
   * Original: `Int`
   *
   * Runtime: `rule.int()`
   */
  id: IntValidator<number>;
  /**
   * Original: `String`
   *
   * Runtime: `rule.string()`
   */
  name: StringValidator<string>;
  /**
   * Original: `Int?`
   *
   * Runtime: `rule.int().nullable()`
   */
  age: IntValidator<number | null>;
};

Import generated models

import { UserModel, pick, omit } from '@aomex/prisma-to-validator';

// IntValidator<number>
const ruleId = UserModel.id;

// { id: IntValidator<number>; name: StringValidator<string> }
const sub1 = pick(UserModel, 'id', 'name');

// { id: IntValidator<number>; age: IntValidator<number | null>; }
const sub2 = omit(UserModel, 'name');

Readme

Keywords

none

Package Sidebar

Install

npm i @aomex/prisma-to-validator

Homepage

aomex.js.org

Weekly Downloads

0

Version

0.0.4

License

MIT

Unpacked Size

27.6 kB

Total Files

9

Last publish

Collaborators

  • fwh1990