Socket
Book a DemoInstallSign in
Socket

@elsikora/dapigate-sdk-nestjs

Package Overview
Dependencies
Maintainers
3
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@elsikora/dapigate-sdk-nestjs

NestJS SDK for DApiGate

1.1.0
latest
Source
npmnpm
Version published
Maintainers
3
Created
Source

DApiGate SDK NestJS

Building

To install the required dependencies and to build the typescript sources run:

npm install
npm run build

General usage

In your Nestjs project:

// without configuring providers
import { ApiModule } from 'dapigate-sdk-nestjs';
import { HttpModule } from '@nestjs/axios';

@Module({
    imports: [
        ApiModule,
        HttpModule
    ],
    providers: []
})
export class AppModule {}
// configuring providers
import { ApiModule, Configuration, ConfigurationParameters } from 'dapigate-sdk-nestjs';

export function apiConfigFactory (): Configuration => {
  const params: ConfigurationParameters = {
    // set configuration parameters here.
  }
  return new Configuration(params);
}

@Module({
    imports: [ ApiModule.forRoot(apiConfigFactory) ],
    declarations: [ AppComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule {}
import { DefaultApi } from 'dapigate-sdk-nestjs';

export class AppComponent {
    constructor(private apiGateway: DefaultApi) { }
}

Note: The ApiModule a dynamic module and instantiated once app wide. This is to ensure that all services are treated as singletons.

Using multiple swagger files / APIs / ApiModules

In order to use multiple ApiModules generated from different swagger files, you can create an alias name when importing the modules in order to avoid naming conflicts:

import { ApiModule } from 'my-api-path';
import { ApiModule as OtherApiModule } from 'my-other-api-path';
import { HttpModule } from '@nestjs/axios';

@Module({
  imports: [
    ApiModule,
    OtherApiModule,
    HttpModule
  ]
})
export class AppModule {

}

Set service base path

If different than the generated base path, during app bootstrap, you can provide the base path to your service.

import { BASE_PATH } from 'dapigate-sdk-nestjs';

bootstrap(AppComponent, [
    { provide: BASE_PATH, useValue: 'https://your-web-service.com' },
]);

or

import { BASE_PATH } from 'dapigate-sdk-nestjs';

@Module({
    imports: [],
    declarations: [ AppComponent ],
    providers: [ provide: BASE_PATH, useValue: 'https://your-web-service.com' ],
    bootstrap: [ AppComponent ]
})
export class AppModule {}

Configuring the module with forRootAsync

You can also use the Nestjs Config Module/Service to configure your app with forRootAsync.

@Module({
    imports: [
      ApiModule.forRootAsync({
        imports: [ConfigModule],
        inject: [ConfigService],
        useFactory: (config: ConfigService): Configuration => {
          const params: ConfigurationParameters = {
            // set configuration parameters here.
            basePath: config.get('API_URL'),
          };
          return new Configuration(params);
        },
      })
    ],
    declarations: [ AppComponent ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule {}

Using @nestjs/cli

First extend your src/environments/*.ts files by adding the corresponding base path:

export const environment = {
  production: false,
  API_BASE_PATH: 'http://127.0.0.1:8080'
};

In the src/app/app.module.ts:

import { BASE_PATH } from 'dapigate-sdk-nestjs';
import { environment } from '../environments/environment';

@Module({
  declarations: [
    AppComponent
  ],
  imports: [ ],
  providers: [
    {
      provide: 'BASE_PATH',
      useValue: environment.API_BASE_PATH
    }
  ]
})
export class AppModule { }

Keywords

sdk

FAQs

Package last updated on 23 Mar 2024

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.