diff --git a/src/ac-options.interface.ts b/src/ac-options.interface.ts index 5051a89..e714929 100644 --- a/src/ac-options.interface.ts +++ b/src/ac-options.interface.ts @@ -3,4 +3,4 @@ export interface ACOptions { * A name of endpoint which serves grants */ grantsEndpoint?: string; -} \ No newline at end of file +} diff --git a/src/access-control.guard.ts b/src/access-control.guard.ts index ebd568f..e7c5eda 100644 --- a/src/access-control.guard.ts +++ b/src/access-control.guard.ts @@ -30,7 +30,7 @@ export class ACGuard implements CanActivate { } const userRoles = await this.getUserRoles(context); - const hasRoles = roles.every(role => { + const hasRoles = roles.every((role) => { const queryInfo: IQueryInfo = role; queryInfo.role = userRoles; const permission = this.roleBuilder.permission(queryInfo); diff --git a/src/access-control.module.async.spec.ts b/src/access-control.module.async.spec.ts index 9c8951b..7280ba1 100644 --- a/src/access-control.module.async.spec.ts +++ b/src/access-control.module.async.spec.ts @@ -1,7 +1,7 @@ -import {AccessControlModule} from './access-control.module'; -import {Test, TestingModule} from '@nestjs/testing'; +import { AccessControlModule } from './access-control.module'; +import { Test, TestingModule } from '@nestjs/testing'; import { RolesBuilder } from './roles-builder.class'; -import {ROLES_BUILDER_TOKEN} from './constants'; +import { ROLES_BUILDER_TOKEN } from './constants'; import { delay } from 'rxjs/operators'; import { GrantsController } from './grants.controller'; import { ACOptions } from './ac-options.interface'; @@ -9,7 +9,6 @@ import { Injectable, Module } from '@nestjs/common'; describe('forRootAsync', () => { it('Can instance with provider method', async () => { - const module: TestingModule = await Test.createTestingModule({ imports: [ AccessControlModule.forRootAsync({ @@ -24,7 +23,6 @@ describe('forRootAsync', () => { }); it('Can instance with asnyc provider method', async () => { - const module: TestingModule = await Test.createTestingModule({ imports: [ AccessControlModule.forRootAsync({ @@ -42,18 +40,14 @@ describe('forRootAsync', () => { }); it('Can inject a provider', async () => { - @Injectable() - class TestProvider { - } + class TestProvider {} @Module({ providers: [TestProvider], exports: [TestProvider], }) - class TestModule { - - } + class TestModule {} const module: TestingModule = await Test.createTestingModule({ imports: [ @@ -76,14 +70,11 @@ describe('forRootAsync', () => { describe('forRoles', () => { it('Expose when options is provided', async () => { - const roles: RolesBuilder = new RolesBuilder(); - const options: ACOptions = { grantsEndpoint: 'grants'}; + const options: ACOptions = { grantsEndpoint: 'grants' }; const module: TestingModule = await Test.createTestingModule({ - imports: [ - AccessControlModule.forRoles(roles, options), - ], + imports: [AccessControlModule.forRoles(roles, options)], }).compile(); const controller = module.get(GrantsController); @@ -93,14 +84,11 @@ describe('forRoles', () => { }); it('Do not expose when options with no provided', async () => { - const roles: RolesBuilder = new RolesBuilder(); const options: ACOptions = {}; const module: TestingModule = await Test.createTestingModule({ - imports: [ - AccessControlModule.forRoles(roles, options), - ], + imports: [AccessControlModule.forRoles(roles, options)], }).compile(); expect(() => { @@ -109,13 +97,10 @@ describe('forRoles', () => { }); it('Do not expose when options is not provided', async () => { - const roles: RolesBuilder = new RolesBuilder(); const module: TestingModule = await Test.createTestingModule({ - imports: [ - AccessControlModule.forRoles(roles), - ], + imports: [AccessControlModule.forRoles(roles)], }).compile(); expect(() => { diff --git a/src/access-control.module.ts b/src/access-control.module.ts index 57483fa..2274496 100644 --- a/src/access-control.module.ts +++ b/src/access-control.module.ts @@ -56,16 +56,12 @@ export class AccessControlModule { if (options && options.grantsEndpoint) { Reflect.defineMetadata(PATH_METADATA, options.grantsEndpoint, GrantsController); - controllers = [ - ...options.grantsEndpoint ? [GrantsController] : [], - ]; + controllers = [...(options.grantsEndpoint ? [GrantsController] : [])]; } return { imports: [...(options.imports || [])], - controllers: [ - ...controllers, - ], + controllers: [...controllers], module: AccessControlModule, providers: [provider], exports: [provider], diff --git a/src/decorators/user-roles.decorators.ts b/src/decorators/user-roles.decorators.ts index d368a4f..cc9781f 100644 --- a/src/decorators/user-roles.decorators.ts +++ b/src/decorators/user-roles.decorators.ts @@ -6,8 +6,7 @@ import { createParamDecorator, ExecutionContext } from '@nestjs/common'; * You can pass an optional property key to the decorator to get it from the user object * e.g `@UserRoles('permissions')` will return the `req.user.permissions` instead. */ -export const UserRoles = createParamDecorator((data: string, ctx: ExecutionContext) => { - +export const UserRoles = createParamDecorator((data: string, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return data ? request.user[data] : request.user.roles; }); diff --git a/src/grants.controller.spec.ts b/src/grants.controller.spec.ts index e67241c..d5d7c95 100644 --- a/src/grants.controller.spec.ts +++ b/src/grants.controller.spec.ts @@ -5,18 +5,14 @@ import { RolesBuilder } from './roles-builder.class'; import { ROLES_BUILDER_TOKEN } from './constants'; describe('Grants Controller #getGrants', () => { - let controller: GrantsController; const roles: RolesBuilder = new RolesBuilder(); beforeEach(async () => { - Reflect.defineMetadata(PATH_METADATA, 'grants', GrantsController); const module: TestingModule = await Test.createTestingModule({ - controllers: [ - GrantsController, - ], + controllers: [GrantsController], providers: [ { provide: ROLES_BUILDER_TOKEN, diff --git a/src/grants.controller.ts b/src/grants.controller.ts index d2b8cbe..bc5c815 100644 --- a/src/grants.controller.ts +++ b/src/grants.controller.ts @@ -4,13 +4,10 @@ import { RolesBuilder } from './roles-builder.class'; @Controller() export class GrantsController { - - constructor( - @InjectRolesBuilder() private readonly roleBuilder: RolesBuilder, - ) {} + constructor(@InjectRolesBuilder() private readonly roleBuilder: RolesBuilder) {} @Get() public getGrants() { return this.roleBuilder.getGrants(); } -} \ No newline at end of file +} diff --git a/src/index.ts b/src/index.ts index 31a324f..a8bef7e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,4 +9,4 @@ export * from './access-control.module'; export * from './roles-builder.class'; export * from './role.interface'; export * from './access-control.guard'; -export { ROLES_BUILDER_TOKEN } from './constants' +export { ROLES_BUILDER_TOKEN } from './constants';