adminjs-prisma icon indicating copy to clipboard operation
adminjs-prisma copied to clipboard

clientModule occurs error

Open ydhn opened this issue 2 years ago • 2 comments

TypeError: Invalid enum value: length
    at Object.get  /dist/generated/backend/client/runtime/library.js:129:966)
    at isArrayLike  /node_modules/lodash/isArrayLike.js:30:42)
    at keysIn  /node_modules/lodash/keysIn.js:29:10)
    at /node_modules/lodash/_createBaseFor.js:12:17
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at baseMergeDeep  /node_modules/lodash/_baseMergeDeep.js:88:5)
    at /node_modules/lodash/_baseMerge.js:27:7
    at /node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge  /node_modules/lodash/_baseMerge.js:24:3)
    at /node_modules/lodash/merge.js:36:3
    at /node_modules/lodash/_createAssigner.js:30:9
    at apply  /node_modules/lodash/_apply.js:15:25)
    at /node_modules/lodash/_overRest.js:32:12
    at new AdminJS (file:/ /node_modules/adminjs/lib/adminjs.js:72:20)

I tried to use clientModule (Custom Prisma Client) but if so, errors occured in this line: https://github.com/SoftwareBrothers/adminjs/blob/8b7c19e/src/adminjs.ts#L114

I think some miscellaneous things in the Prisma module is not properly handled by the lodash merge.
What I found to workaround is not trying to do like README instructed:

// Not working
{
  resource: { 
    model: getModelByName('Profile', PrismaModule), 
    client: prisma, 
    clientModule: PrismaModule,
  },
}

but this:

// Working
{
  resource: { 
    model: getModelByName('Profile', { Prisma: { dmmf: PrismaModule.Prisma.dmmf } }), 
    client: prisma, 
    clientModule: { Prisma: { dmmf: PrismaModule.Prisma.dmmf } } 
  },
}

I think clientModule should not include everything Prisma gives. I can write a PR to rewrite from clientModule to customDmmf. What do maintainers think?

ydhn avatar Sep 18 '23 07:09 ydhn

I got the same issue. The provided workaround saves my time. Thank you @ydhn

hlab-pawat avatar Apr 13 '24 15:04 hlab-pawat

@ydhn Great job! Thanks very much!

iminif avatar Sep 21 '24 06:09 iminif