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.