@notiz/prisma-formly-generator

0.7.0 • Public • Published

prisma-formly-generator

Installation

npm i -D @notiz/prisma-formly-generator

Add the generator to your schema.prisma

generator formly {
  provider = "prisma-formly-generator"
  output   = "change/output/dir"
}

Prisma decorators

Add comments /// to model fields including one of the following decorators to change the generated output.

⚙️ Field type and template options

Use @Formly.field({ OPTIONS }) to change the field type and template options for the generated formly field.

The OPTIONS are

Option Example
fieldType color-picker
label Email Address
description Identify user
placeholder hi@example.com
type email, password, file
disabled   true | false
validators ['email']
min 3
minLength 3
max 150
maxLength 150
rows 3
cols 3
tabindex 3
step 3
model User {
  id        Int      @id @default(autoincrement())

  /// @Formly.field({ label: 'Email Address', type: 'email' })
  email      String    @unique
  name       String?
  /// @Formly.field({ fieldType: 'color-picker' })
  color      String?
}

🕶️ Hide model or field

Use @Formly.hide or @Formly.hide() to hide a model or field from the generated output for example for secrets or internal models.

model User {
  id        Int      @id @default(autoincrement())

  email      String    @unique
  name       String?

  /// @Formly.hide()
  password String
}

/// @Formly.hide()
model Logs {
  id        Int      @id @default(autoincrement())

  logs Json
}

⛔️ Excluded fields

Certain fields are filled on database or Prisma level. Thus, these fields are excluded automatically from being generated.

Description Field Example
Id field with default value fieldName Type @id @default(...) id Int @id @default(autoincrement())
DateTime field with default now fieldName DateTime @default(now()) createdAt DateTime @default(now())
DateTime filed with @updateAt fieldName DateTime @updateAt updatedAt DateTime @updatedAt
 Foreign keys of relations fieldName Model? @relation(fields: [foreignKey], references: [id]) user User? @relation(fields: [userId], references: [id]), userId is excluded

💻 Development

npm i

# generate formly new
npm run prisma:generate

# test out formly
cd ng-formly && npm i && ng s

💡 Ideas

  • add groups/layout to builder

Package Sidebar

Install

npm i @notiz/prisma-formly-generator

Weekly Downloads

0

Version

0.7.0

License

MIT

Unpacked Size

28.5 kB

Total Files

18

Last publish

Collaborators

  • garygrossgarten
  • marcjulian