kepelrs/nestjs-prisma-crud

View on GitHub
src/access-control/access-control.module.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { DynamicModule, Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { AccessPolicyInterceptorOpts } from './types';
import { ACCESS_POLICY_OPTS_KEY } from './constants';
import { AccessPolicyInterceptor } from './access-policy.interceptor';

@Module({})
export class AccessControlModule {
    static register(opts: AccessPolicyInterceptorOpts): DynamicModule {
        return {
            global: true,
            module: AccessControlModule,
            providers: [
                {
                    provide: ACCESS_POLICY_OPTS_KEY,
                    useValue: opts,
                },
                AccessPolicyInterceptor,
                {
                    provide: APP_INTERCEPTOR,
                    useClass: AccessPolicyInterceptor,
                },
            ],
            exports: [AccessPolicyInterceptor, ACCESS_POLICY_OPTS_KEY],
        };
    }
}