adminjs-mikroorm
This is an official AdminJS adapter which integrates MikroORM into AdminJS.
Installation
yarn
$ yarn add @adminjs/mikroorm
npm
$ npm i @adminjs/mikroorm
Usage
The plugin can be registered using standard AdminJS.registerAdapter
method.
import { Database, Resource } from '@adminjs/mikroorm';
import AdminJS from 'adminjs';
import { validate } from 'class-validator';
const setupAdminJs = async () => {
const orm = await MikroORM.init({
entities: [User],
dbName: process.env.DATABASE_NAME,
type: 'postgresql',
clientUrl: process.env.DATABASE_URL,
});
Resource.validate = validate;
AdminJS.registerAdapter({ Database, Resource });
const adminJs = new AdminJS({
resources: [{ resource: { model: User, orm }, options: {} }],
});
const adminJs = new AdminJS({
databases: [orm],
});
};
Example
An example project can be found in example-app
directory.
Associations
Currently only ManyToOne
and OneToOne
relationships are supported due to current AdminJS's core limitations
for adapter integrations. OneToMany
and ManyToMany
relationships can still be achieved through a combination of custom components and hooks.
Contribution
Running the example app
If you want to set this up locally this is the suggested process:
- Fork the repo
- Install dependencies
yarn install
- Register this package as a (linked package)[https://classic.yarnpkg.com/en/docs/cli/link/]
yarn link
- Setup example app
Install all dependencies and use previously linked version of @adminjs/mikroorm
.
cd example-app
yarn install
yarn link "@adminjs/mikroorm"
Optionally you might want to link your local version of adminjs
package
-
Make sure you have all the envs set (see ./example-app/example.env
and create an .env
file based on that)
-
Build the package in watch mode
(in the root folder)
yarn dev
- Run the app in the dev mode
cd example-app
yarn dev
Pull request
Before you make a PR make sure all tests pass and your code wont causes linter errors.
You can do this by running:
yarn lint
yarn test
Make sure you have an .env
file in project's root directory for the test runner to use:
DATABASE_URL=postgres://postgres:@localhost:5433/mikroorm_test
DATABASE_NAME=mikroorm_test