Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

nestjs-swagger-hide-on-prod

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nestjs-swagger-hide-on-prod

A progressive Node.js framework for

  • 1.0.0
  • npm
  • Socket score

Version published
Weekly downloads
6
increased by500%
Maintainers
1
Weekly downloads
 
Created
Source

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

Nestjs Swagger Hide on Prod

Description

Exclude your nestjs controller or endpoint from swagger documentization on production env.

Installation

$ yarn add nestjs-swagger-hide-on-prod

or

$ npm i --save nestjs-swagger-hide-on-prod

Getting Started

In default, when NODE_ENV is set to PROD or PRODUCTION, following decorators will exclude the whole controller or specific endpoint

  • @SwaggerHideControllerOnProd
  • @SwaggerHideEndpointOnProd

To exclude whole controller on prod :

@Controller('foo')
@ApiTags('Foo API')
@SwaggerHideControllerOnProd() // Add this line to exclude FooController from swagger when process is on production environment
export class FooController {
  constructor(private readonly fooService: FooService) {}
  @Get(':fooId')
  searchFoos(): Promise<any[]> {
    return Promise.resolve([]);
  }

  @Post()
  createFoo(): Promise<any> {
    return Promise.resolve();
  }
}

To Exclude specific endpoint only on prod :

@Controller('foo')
@ApiTags('Foo API')
export class FooController {
  constructor(private readonly fooService: FooService) {}
  @Get(':fooId')
  searchFoos(): Promise<any[]> {
    return Promise.resolve([]);
  }

  @Post()
  @SwaggerHideEndpointOnProd() // Exclude POST /foo endpoint from swagger on prod env
  createFoo(): Promise<any> {
    return Promise.resolve();
  }
}

To customize exclusion condition you can use

  • @SwaggerHideController
  • @SwaggerHideEndpoint

instead. Input parameter could be static boolean or a function, which returns a boolean value.

@Controller('foo')
@ApiTags('Foo API')
export class FooController {
  constructor(private readonly fooService: FooService) {}

  @Get(':fooId')
  @ApiOperation({
    summary: 'Search foos info',
    description: 'This method is depreacted. Please, use GET "v2" instaed',
  })
  @SwaggerHideEndpoint(() => {
    return moment(new Date()).isAfter(`2022-12-31`);
    // After year 2022, this method would be excluded from swagger documentization
  })
  veryOldFooSearchApi(): Promise<any[]> {
    return Promise.resolve([]);
  }

  @Get('v2/:fooId')
  @ApiOperation({
    summary: `Search foos info`,
    description: `Get information matches id`,
  })
  brandNewFooSearchApi(): Promise<any[]> {
    return Promise.resolve([]);
  }
}

FAQs

Package last updated on 25 Aug 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc