Empower Your Prisma Schema with Camel Case and Customized Mapping! The CLI adds @map @@map, @updatedAt and more!!
APACHE-2.0 License
A CLI that adds @map and @@map based on a json
npm install -g @raresail/prisma-mapper
yarn global add @raresail/prisma-mapper
@map
and @@map
@db.
attributes for fields@updatedAt
for fields with the name updated_at
or updatedAt
@prisma/internals
after generation.pmignore
Can be used to avoid adding the @map
/@@map
for specific fields when running the map
commandVersion | Supported |
---|---|
<= 19.x | ❌ |
20.x | ✅ |
21.x | ❌ |
>= 22.x | ✅ |
If the prisma schema is often pulled you can use the cli like
yarn prisma db pull --force
&& yarn prisma-mapper generate
&& yarn prisma-mapper map
&& yarn prisma generate
or for camelCase
by default
yarn prisma db pull --force
&& yarn prisma-mapper map --camel
&& yarn prisma generate
With db pull force you get the latest schema updates and force overwrites the file.
The generate command creates a json called prisma-mapper.json
in the root,
if the json already exists it adds in it any new fields/models. (NOT FOR --camel option)
yarn prisma-mapper generate
The json looks like the following:
@@map
@@map
for a model name@map
for each field{
"model": {
"hasMap": false,
"name": null,
"fields": {
"field_name_1": null,
"field_name_2": null
}
}
}
The map command modifies the schema.prisma
file and adds the @map
and @@map
for each field and model, if the field/model-name is in the json file, the
field/model will be renamed to the new name.
yarn prisma-mapper map
Both 2 commands have an option --schema "new schema path
to use the schema from a different location
--schema "new schema path
--camel
-o --output "output schema path"
Example for the .pmignore
file
enum_ignore_s_contents.someValue
enum_ignore_contents.*
enum_ignore_model
model_ignore_s_contents.updated_at
model_ignore_s_contents.created_at
model_ignore_s_contents.enum_three
model_ignore_contents.*
model_ignore