@haivinh/base-nestjs
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

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.

Readme

Keywords

Package Sidebar

Install

npm i @haivinh/base-nestjs

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

64.1 kB

Total Files

54

Last publish

Collaborators

  • haivinh