You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.6 KiB
79 lines
2.6 KiB
3 years ago
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.name = void 0;
|
||
|
/* eslint-disable max-len */
|
||
|
// import { buildAuthenticatedRouter } from './buildAuthenticatedRouter';
|
||
|
const buildRouter_1 = require("./buildRouter");
|
||
|
const buildAuthenticatedRouter_1 = require("./buildAuthenticatedRouter");
|
||
|
/**
|
||
|
* @module @adminjs/fastify
|
||
|
* @subcategory Plugins
|
||
|
* @section modules
|
||
|
*
|
||
|
* @classdesc
|
||
|
* Plugin that allows you to add AdminJS to Fastify applications.
|
||
|
*
|
||
|
* ## Installation
|
||
|
*
|
||
|
* ```sh
|
||
|
* npm install @adminjs/fastify
|
||
|
* ```
|
||
|
*
|
||
|
* ## Usage
|
||
|
*
|
||
|
* ```
|
||
|
* const AdminJSFastify = require('@adminjs/fastify')
|
||
|
* ```
|
||
|
*
|
||
|
* It exposes 2 methods that create an Express Router, which can be attached
|
||
|
* to a given url in the API. Each method takes a pre-configured instance of {@link AdminJS}.
|
||
|
*
|
||
|
* - {@link module:@adminjs/fastify.buildRouter AdminJSExpress.buildRouter(admin, [predefinedRouter])}
|
||
|
* - {@link module:@adminjs/fastify.buildAuthenticatedRouter AdminJSExpress.buildAuthenticatedRouter(admin, auth, [predefinedRouter], sessionOptions)}
|
||
|
*
|
||
|
* If you want to use a router you have already created - not a problem. Just pass it
|
||
|
* as a `predefinedRouter` parameter.
|
||
|
*
|
||
|
* You may want to use this option when you want to include
|
||
|
* some custom auth middleware for you AdminJS routes.
|
||
|
*
|
||
|
* ## Example without an authentication
|
||
|
*
|
||
|
* ```
|
||
|
* const AdminJS = require('adminjs')
|
||
|
* const AdminJSFastify = require('@adminjs/fastify')
|
||
|
*
|
||
|
* const fastify = require('fastify')()
|
||
|
*
|
||
|
* const AdminJS = new AdminJS({
|
||
|
* databases: [],
|
||
|
* rootPath: '/admin',
|
||
|
* })
|
||
|
*
|
||
|
* AdminJSFastify.buildRouter(AdminJS)
|
||
|
* app.listen(8080, () => console.log('AdminJS is under localhost:8080/admin'))
|
||
|
* ```
|
||
|
*
|
||
|
* ## Using build in authentication
|
||
|
*
|
||
|
* To protect the routes with a session authentication, you can use predefined
|
||
|
* {@link module:@adminjs/fastify.buildAuthenticatedRouter} method.
|
||
|
*
|
||
|
* Note! To use authentication in production environment, there is a need to configure
|
||
|
* @fastify/session for production build. It can be achieved by passing options to
|
||
|
* `sessionOptions` parameter.
|
||
|
*
|
||
|
* ## Adding custom authentication
|
||
|
*
|
||
|
* Where `req.session.admin` is {@link AdminJS#CurrentAdmin},
|
||
|
* meaning that it should have at least an email property.
|
||
|
*/
|
||
|
/**
|
||
|
* Plugin name
|
||
|
* @static
|
||
|
* @memberof module:@adminjs/fastify
|
||
|
*/
|
||
|
exports.name = 'AdminJSFastify';
|
||
|
module.exports = { name: exports.name, buildRouter: buildRouter_1.buildRouter, buildAuthenticatedRouter: buildAuthenticatedRouter_1.buildAuthenticatedRouter };
|
||
|
exports.default = { name: exports.name, buildRouter: buildRouter_1.buildRouter, buildAuthenticatedRouter: buildAuthenticatedRouter_1.buildAuthenticatedRouter };
|