@galaxy-stack/orbit-common
v0.1.13
Published
Common decorators, pipes, guards, interceptors for Orbit
Readme
@galaxy-stack/orbit-common
Mô tả
Package chứa các decorators, pipes, guards, interceptors và exceptions dùng chung trong Orbit framework.
Tính năng chính
1. HTTP Decorators
import {
Controller,
Get, Post, Put, Patch, Delete,
Body, Query, Param, Headers, Req, Res
} from '@galaxy-stack/orbit-common';
@Controller('api')
class ApiController {
@Get('items')
getItems(@Query('page') page: string) {}
@Post('items')
createItem(@Body() data: any) {}
}2. Built-in Pipes
ParseIntPipe: Chuyển string thành numberParseFloatPipe: Chuyển string thành floatParseBoolPipe: Chuyển string thành booleanParseArrayPipe: Chuyển string thành arrayDefaultValuePipe: Giá trị mặc địnhTrimPipe: Xóa khoảng trắng
@Get(':id')
getUser(@Param('id', ParseIntPipe) id: number) {
// id đã được convert sang number
}3. HTTP Exceptions
import {
BadRequestException,
UnauthorizedException,
ForbiddenException,
NotFoundException,
ConflictException,
InternalServerErrorException,
} from '@galaxy-stack/orbit-common';
throw new NotFoundException('User not found');4. Guards
import { CanActivate, ExecutionContext } from '@galaxy-stack/orbit-common';
class AuthGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean {
const request = context.switchToHttp().getRequest();
return !!request.headers.authorization;
}
}5. Interceptors
import { Interceptor, ExecutionContext } from '@galaxy-stack/orbit-common';
class LoggingInterceptor implements Interceptor {
async intercept(context: ExecutionContext, next: () => Promise<any>) {
console.log('Before...');
const result = await next();
console.log('After...');
return result;
}
}Cách sử dụng
import {
Controller, Get, UseGuards, UsePipes,
ParseIntPipe, AuthGuard
} from '@galaxy-stack/orbit-common';
@Controller('users')
@UseGuards(AuthGuard)
class UserController {
@Get(':id')
@UsePipes(ParseIntPipe)
getUser(@Param('id') id: number) {
return { id };
}
}