@nestjs-templates/library
v1.0.3
Published
<p align="center"> <a href="http://nestjs.com/" target="_blank"> <img src="https://nestjs.com/img/logo_text.svg" width="150" alt="Nest Logo" /> </a> </p>
Downloads
1
Readme
@nestjs-templates/library
@nestjs-templates/library
is built with NestJS 10.0.0
and the ConfigurableModuleBuilder class. This package allows the importing of an example module/service.
Installing
Install the dependency using npm: npm i @nestjs-templates/library
Usage
ExampleModule
was defined with the @global()
decorator, therefore it must be imported into the entry (root) module, e.g AppModule
:
import { Module } from "@nestjs/common";
import { ExampleModule } from "@nestjs-templates/library";
import { AppService } from './app.service';
...
@Module({
imports: [
ExampleModule.register({
message: "Hi 👋"
}),
...
],
providers: [AppService, ...],
...
})
export class AppModule {}
The register()
method requires the configuration properties:
| Property | Description | Type | Example | | -------- | ------------- | ------ | ------- | | message | Greeting text | string | "Hi 👋" |
NOTE: You may want to pass your module options asynchronously instead of statically, e.g. ConfigModule. In this case, use the registerAsync()
method, which provides several ways to deal with async configuration:
import { Module } from "@nestjs/common";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { ExampleModule } from "@nestjs-templates/library";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
...
@Module({
imports: [
ConfigModule.register(),
ExampleModule.registerAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => ({
message: configService.get("MESSAGE"), // "Hi 👋"
}),
}),
...
],
controllers: [AppController, ...],
providers: [AppService, ...],
})
export class AppModule {}
Finally, inject ExampleService
into your services:
import { Injectable } from "@nestjs/common";
import { ExampleService } from "@nestjs-templates/library";
@Injectable()
export class AppService {
constructor(private readonly exampleService: ExampleService, ...) { ... }
...
greeting(): string {
return this.exampleService.greeting();
}
...
}
exampleService
provides the greeting
function. This return the message value previously configurated in the import of the module ExampleModule
.