Nutritious Pumpkin Masses

    @adminjs/prisma
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    adminjs-prisma

    This is an official AdminJS adapter which integrates Prisma into AdminJS.

    Installation

    • yarn: yarn add @adminjs/prisma

    • npm: npm install @adminjs/prisma

    Usage

    The plugin can be registered using standard AdminJS.registerAdapter method.

    import { Database, Resource } from '@adminjs/prisma'
    import AdminJS from 'adminjs'
    
    AdminJS.registerAdapter({ Database, Resource })

    Example

    Whole code can be found in example-app directory in the repository.

    import express from 'express'
    import AdminJS from 'adminjs'
    import AdminJSExpress from '@adminjs/express'
    import { Database, Resource } from '@adminjs/prisma'
    import { PrismaClient } from '@prisma/client'
    import { DMMFClass } from '@prisma/client/runtime'
    
    const PORT = process.env.port || 3000
    
    const prisma = new PrismaClient()
    
    AdminJS.registerAdapter({ Database, Resource })
    
    const run = async () => {
      const app = express()
    
      // `_baseDmmf` contains necessary Model metadata. `PrismaClient` type doesn't have it included
      const dmmf = ((prisma as any)._baseDmmf as DMMFClass)
    
      const admin = new AdminJS({
        resources: [{
          resource: { model: dmmf.modelMap.Post, client: prisma },
          options: {},
        }, {
          resource: { model: dmmf.modelMap.Profile, client: prisma },
          options: {},
        }, {
          resource: { model: dmmf.modelMap.User, client: prisma },
          options: {},
        }],
      })
    
      const router = AdminJSExpress.buildRouter(admin)
    
      app.use(admin.options.rootPath, router)
    
      app.listen(PORT, () => {
        console.log(`Example app listening at http://localhost:${PORT}`)
      })
    }
    
    run()
      .finally(async () => {
        await prisma.$disconnect()
      })

    ManyToOne / ManyToMany

    These relationships are currently not supported by default. You can manage them using custom actions and components.

    Pull request

    Before you make a PR make sure all tests pass and your code won't cause linter errors. You can do this by running:

    yarn lint
    yarn test
    

    Make sure you have an .env file with DATABASE_URL specified.

    Install

    npm i @adminjs/prisma

    DownloadsWeekly Downloads

    989

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    51.3 kB

    Total Files

    34

    Last publish

    Collaborators

    • szrama
    • dziraf
    • adminjs-developer