1.2.0 • Published 3 years ago
prismap v1.2.0
Prismap
Prismap, which stands for Prisma Map and Pluralize, automatically maps and pluralizes Prisma schema to match conventional database names with JavaScript/TypeScript naming conventions.
Currently it doesn't support enum. If your Prisma schema contains enums, the result would be broken.
Key Feautres
- Map table names to PascalCase.
- Map attribute names to camelCase.
- Pluralize 1:m, n:m relations.
Example
model user {
id Int @id
nickname String @unique
joined_at DateTime
community_post community_post[]
}
model community_post {
id Int @id
body String
user_id Int
user user @relation(fields: [user_id], references: [id])
}
converts to
model User {
id Int @id
nickname String @unique
joinedAt DateTime @map(name: "joined_at")
communityPosts CommunityPost[]
@@map(name: "user")
}
model CommunityPost {
id Int @id
body String
userId Int @map(name: "user_id")
user User @relation(fields: [userId], references: [id])
@@map(name: "community_post")
}
PascalCase table names
- model User {
- ...
- }
+ model user {
+ ...
+ @@map(name: "user")
+ }
- model community_post {
- ...
- }
+ model CommunityPost {
+ ...
+ @@map(name: "community_post")
+ }
camelCase attribute names
- joined_at DateTime
+ joinedAt DateTime @map(name: "joined_at")
- user_id Int
+ userId Int @map(name: "user_id")
Pluralize relations
- community_post community_post[]
+ communityPosts CommunityPost[]
Installation
npm i -g prismap
Usage
Inside your project directory, run
prismap
Options
--schema
Specify the Prisma schema path. Prismap finds prisma/schema.prisma
by default.