27 lines
539 B
TypeScript
27 lines
539 B
TypeScript
import { FastifyInstance, FastifyPluginAsync } from 'fastify'
|
|
import fastifyPlugin from 'fastify-plugin'
|
|
import RBAC from 'fast-rbac'
|
|
|
|
declare module 'fastify' {
|
|
interface FastifyInstance {
|
|
/**
|
|
* RBAC interface
|
|
*/
|
|
rbac: RBAC
|
|
}
|
|
}
|
|
|
|
const zRBACPlugin: FastifyPluginAsync = async function fastifyMetrics(
|
|
fastify: FastifyInstance,
|
|
options?: RBAC.Options,
|
|
) {
|
|
const rbac = new RBAC(options)
|
|
fastify.decorate('rbac', rbac)
|
|
return
|
|
}
|
|
|
|
export = fastifyPlugin(zRBACPlugin, {
|
|
fastify: '>=3.0.0',
|
|
name: 'zrbac',
|
|
})
|