Skip to content

Commit

Permalink
fix(client): deny list Transaction. Closes #749
Browse files Browse the repository at this point in the history
  • Loading branch information
timsuchanek committed Jul 6, 2020
1 parent 90e83d8 commit 7ad2531
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 37 deletions.
4 changes: 2 additions & 2 deletions src/packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"prisma2": "build/index.js"
},
"prisma": {
"version": "ed51c9476579e3aa52ec43079fb2a351c70f5bb7",
"version": "83ac782d5d93dcee37efeba8ccbeff596701148a",
"prismaCommit": "c9b81b72f67acdc9a8362989d4845b4f0cd7df27"
},
"devDependencies": {
Expand Down Expand Up @@ -157,4 +157,4 @@
"eslint"
]
}
}
}
91 changes: 56 additions & 35 deletions src/packages/client/src/generation/generateClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ export async function generateClient({
})

const denylistsErrors = validateDmmfAgainstDenylists(prismaClientDmmf)

if (denylistsErrors) {
let message = `${chalk.redBright.bold(
'Error: ',
Expand All @@ -174,6 +175,8 @@ export async function generateClient({
message += '\n - ' + error.message
}

message += `\nTo learn more about how to rename models, check out https://pris.ly/d/naming-models`

throw new DenylistError(message)
}

Expand Down Expand Up @@ -446,7 +449,9 @@ async function fileSize(name: string): Promise<number | null> {
}
}

function validateDmmfAgainstDenylists(prismaClientDmmf): Error[] | null {
function validateDmmfAgainstDenylists(
prismaClientDmmf: PrismaClientDMMF.Document,
): Error[] | null {
const errorArray = [] as Error[]

const denylists = {
Expand Down Expand Up @@ -559,47 +564,63 @@ function validateDmmfAgainstDenylists(prismaClientDmmf): Error[] | null {
'while',
'with',
'yield',
'Transaction',
],
fields: ['AND', 'OR', 'NOT'],
dynamic: [] as string[],
}

for (const m of prismaClientDmmf.datamodel.models) {
for (const { name } of prismaClientDmmf.datamodel.models) {
denylists.dynamic.push(
...[
`${m.name}Select`,
`${m.name}Include`,
`${m.name}Default`,
`${m.name}Delegate`,
`${m.name}GetPayload`,
`${m.name}Filter`,

`${m.name}Args`,
`${m.name}ArgsFilter`,
`${m.name}ArgsRequired`,

`${m.name}WhereInput`,
`${m.name}WhereUniqueInput`,
`${m.name}CreateInput`,
`${m.name}UpdateInput`,
`${m.name}UpdateManyMutationInput`,
`${m.name}OrderByInput`,

`${m.name}CreateArgs`,

`${m.name}UpsertArgs`,

`${m.name}UpdateArgs`,
`${m.name}UpdateManyArgs`,

`${m.name}DeleteArgs`,
`${m.name}DeleteManyArgs`,
`Extract${m.name}SelectDeleteArgs`,
`Extract${m.name}IncludeDeleteArgs`,

`FindOne${m.name}Args`,

`FindMany${m.name}Args`,
`${name}Select`,
`${name}Include`,
`${name}Default`,
`${name}Delegate`,
`${name}GetPayload`,
`${name}Filter`,

`${name}Args`,
`${name}ArgsFilter`,
`${name}ArgsRequired`,

`${name}WhereInput`,
`${name}WhereUniqueInput`,
`${name}CreateInput`,
`${name}UpdateInput`,
`${name}UpdateManyMutationInput`,
`${name}OrderByInput`,

`${name}CreateArgs`,

`${name}UpsertArgs`,

`${name}UpdateArgs`,
`${name}UpdateManyArgs`,

`${name}DeleteArgs`,
`${name}DeleteManyArgs`,
`Extract${name}SelectDeleteArgs`,
`Extract${name}IncludeDeleteArgs`,

`FindOne${name}Args`,

`FindMany${name}Args`,

/** Aggregate Types */

`Aggregate${name}`,
`${name}AvgAggregateOutputType`,
`${name}SumAggregateOutputType`,
`${name}MinAggregateOutputType`,
`${name}MaxAggregateOutputType`,
`${name}AvgAggregateInputType`,
`${name}SumAggregateInputType`,
`${name}MinAggregateInputType`,
`${name}MaxAggregateInputType`,
`Aggregate${name}Args`,
`Get${name}AggregateType`,
`Get${name}AggregateScalarType`,
],
)
}
Expand Down

1 comment on commit 7ad2531

@timsuchanek
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This incorrectly points to #749 but should close prisma/prisma-client-js#749

Please sign in to comment.