NestJS npm package base nestjs
Description
- The library Base nestjs - tcom
Required
Package dependencies
- typeorm : package typeorm.
Base Config
Installation
- Install package :
npm i @haivinh/base-nestjs
COMMON
abstract
- AbstractEntityAppIdNumber : {id,created_at,updated_at} || id type number
- AbstractEntityAppUUId : {id,created_at,updated_at} || id type uuid
- AbstractEntityDate : {created_at,updated_at} || date
Example Using
@Entity('todo')
export class Todo extends AbstractEntityAppIdNumber {}
export class User extends AbstractEntityAppUUId {}
export class Photo extends AbstractEntityDate {}
constants
- STATUS : {ACTIVE: 1,INACTIVE: 0}
- ROLE : { USER: 'USER', ADMIN: 'ADMIN',GCCOUNT_ADMIN: 'GCCOUNT_ADMIN'}
Example Using
console.log(STATUS.ACTIVE) // 1
console.log(STATUS.INACTIVE) // 0
console.log(ROLE.USER) // 'USER'
Middlewave
Midlewave JWT
- Middlewave
- Get User middlewave
Example using
@UseGuards(AuthorizationGuard) // Middlewave
@RoleName([ROLE.ADMIN, ROLE.GCCOUNT_ADMIN]) // Roles user permission
@Get('testing-get-infouser')
public async getInforUser(@UserReq(UserFromTokenPipe) user: User) { // Pipe user
return user
}
Midewave Firebae
Setup
// in main.ts
//...
export const firebaseConfigMain = {
apiKey: '',
authDomain: '',
projectId: '',
storageBucket: '',
messagingSenderId: '',
appId: ''
};
firebaseAdmin.initializeApp(firebaseConfigMain);
//...
// in file app.module.ts
//...
providers: [
{
provide: APP_INTERCEPTOR,
useClass: MorganInterceptor('combined'),
},
FirebaseAuthStrategy,
],
//...
Example using
@UseGuards(FirebaseAuthGuard) // Middlewave
@Get('testing-get-infouser')
public async getInforUser(@UserReq(UserFirebaseFromTokenPipe) user: User) { // Pipe user
return user
}
setup file main.ts
Example Setup
import { HttpExceptionFilter, ResponseInterceptor, TransformInterceptor } from '@haivinh/base-nestjs';
//....
app.useGlobalInterceptors(new TransformInterceptor())
app.useGlobalInterceptors(new ResponseInterceptor())
app.useGlobalFilters(new HttpExceptionFilter())
//...
typeorm
pageindex, pageSize
- toPaginationResponse(params: PaginationParam)
const result = await toPaginationResponse({
query,
alias: 'user',
columnDirection: 'create_at',
size: filter.size,
page: filter.page,
})
Repository
- CustomRepository
@CustomRepository(User)
export class UserRepository extends Repository<User> {}
File
- convertImagesToWebp
- convertImagesToAIF
Example Using
import { FileServices } from '@haivinh/base-nestjs';
//...
constructor(
//...
private fileServices:FileServices
) {}
//...
const convertFile:string = await this._convertImagesToWebp(pathFile); // filename.webp
//...
Change Log
See Changelog for more information.
Author
Hai Vinh haivinhinspirit@gmail.com
License
Licensed under the MIT License - see the LICENSE file for details.