-
-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Config package does not expose Config class as stated in documentation #32
Comments
Example import { Injectable } from '@nestjs/common';
import { InjectConfig, Config } from '@nestcloud/config';
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
@Injectable()
export class JwtConfigService implements JwtOptionsFactory {
// Cant inject due to lack of Config
constructor(@InjectConfig() private readonly config: Config) {}
createJwtOptions(): Promise<JwtModuleOptions> | JwtModuleOptions {
const opts = this.config.get<JwtModuleOptions>('app.auth.jwtSettings');
return {
secret: opts.secret,
signOptions: { expiresIn: '24h' },
};
}
} |
So after digging a bit trough code I finally made it work. For it to work you will be needing your preferred mesh in my example
service:
port: 50060
auth:
jwt:
secret: "jk#oz2nBR!en#$Dg%qHh3RV!s$F$&&qN&5!m!3&^YuqVLN@tcCoMas7#%Z@kY4XJ"
signOptions:
expiresIn: "24h"
algorithm: "ES256"
consul:
host: localhost
port: 8500
config:
key: proj/config/${{ service.name }}
name: proj/config/${{ service.name }}
service:
discoveryHost: localhost
healthCheck:
timeout: 1s
interval: 10s
tcp: ${{ service.discoveryHost }}:${{ service.port }}
maxRetry: 5
retryInterval: 5000
tags: ['v1.0.0', 'microservice']
name: service-name
port: 50054 Note for config module to work you need to have a name property set under the config section of BOOT file otherwise, it will complain. After that it's pretty much done and you can proceed to use it as follows. import { Injectable } from '@nestjs/common';
import { InjectConfig } from '@nestcloud/config';
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
import { IConfig } from '@nestcloud/common';
@Injectable()
export class JwtConfigService implements JwtOptionsFactory {
constructor(@InjectConfig() private readonly config: IConfig) {}
createJwtOptions(): Promise<JwtModuleOptions> | JwtModuleOptions {
const opts = this.config.get<JwtModuleOptions>('service.auth.jwt');
console.log('OPTS', opts);
return opts;
}
} For those wondering And finally @miaowing I think it would be good to create a section for open docs I bet localizing and improving documentation would be greatly beneficial to the project as a whole. I can make PR and fill up the gaps with the config module as well as provide some examples for the consul module if that is okay. P.S Also I think breaking changes since it is pre 1.x.x release should be somehow incorporated to build and deploy process so users can know what's been deprecated removed or renamed and how to go with it without digging into code until documentation catches up. |
Seconding this as I had the same issues. |
@miaowing happy to help with documentation, and with sample projects |
Hi,
First of all thanks for all the work awesome stuff.
But I have noticed that the documentation and actual packages are out of sync. In this case
@nestcloud/config
.It does not export
Config
class as stated in documentation so it cant be properly injected. Is this a bug because the documentation has Config class in the exports and I have checked and could not find it in exports.The text was updated successfully, but these errors were encountered: