Skip to content

Controller Decorators ​

Decorators for defining controllers and their metadata.

@Controller ​

Mark a class as a controller with optional route prefix.

typescript
import { Controller } from '@galaxy-stack/orbit-common';

@Controller()
export class AppController {}

@Controller('users')
export class UsersController {}

@Controller({ path: 'api/v1/users', host: 'api.example.com' })
export class ApiUsersController {}

Options ​

OptionTypeDescription
pathstringRoute prefix
hoststringHost header matching
scopeScopeRequest scope
versionstringAPI version

@UseGuards ​

Apply guards to controller or method.

typescript
import { UseGuards } from '@galaxy-stack/orbit-common';
import { AuthGuard } from './auth.guard';

@Controller('users')
@UseGuards(AuthGuard)
export class UsersController {}

@Controller('posts')
export class PostsController {
  @Get()
  @UseGuards(AuthGuard)
  findAll() {}
}

@UseInterceptors ​

Apply interceptors to controller or method.

typescript
import { UseInterceptors } from '@galaxy-stack/orbit-common';

@Controller('users')
@UseInterceptors(LoggingInterceptor, TransformInterceptor)
export class UsersController {}

@UsePipes ​

Apply pipes to controller or method.

typescript
import { UsePipes, ValidationPipe } from '@galaxy-stack/orbit-common';

@Controller('users')
@UsePipes(new ValidationPipe({ transform: true }))
export class UsersController {}

@UseFilters ​

Apply exception filters.

typescript
import { UseFilters } from '@galaxy-stack/orbit-common';

@Controller('users')
@UseFilters(HttpExceptionFilter)
export class UsersController {}

@Version ​

Set API version for controller.

typescript
import { Controller, Version } from '@galaxy-stack/orbit-common';

@Controller('users')
@Version('1')
export class UsersV1Controller {}

@Controller('users')
@Version('2')
export class UsersV2Controller {}

Released under the MIT License.