@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');

/@aomex/prisma-to-validator/

    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

    • geekact