deprecate(@nestjs/common) deprecate modules and components property

This commit is contained in:
Kamil Myśliwiec
2018-02-16 09:06:31 +01:00
parent d84f5adcad
commit 7e5d6a1f07
4 changed files with 11350 additions and 6 deletions

11338
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -30,6 +30,7 @@
"class-validator": "^0.8.1",
"cli-color": "^1.1.0",
"cors": "^2.8.4",
"deprecate": "^1.0.0",
"engine.io-client": "^3.1.1",
"express": "^4.16.2",
"fast-safe-stringify": "^1.2.0",

View File

@@ -36,12 +36,10 @@ const validateKeys = (keys: string[]) => {
*/
export function Module(obj: ModuleMetadata): ClassDecorator {
const propsKeys = Object.keys(obj);
validateKeys(propsKeys);
if (obj.modules) {
deprecate('The `modules` key in the Module decorator is deprecated. Use the `imports` key to load modules.');
}
validateKeys(propsKeys);
overrideModuleMetadata(obj);
showDeprecatedWarnings(obj);
return (target: object) => {
for (const property in obj) {
@@ -60,4 +58,12 @@ function overrideModuleMetadata(metadata: ModuleMetadata) {
metadata.components = metadata.providers
? metadata.providers
: metadata.components;
}
function showDeprecatedWarnings(metadata: ModuleMetadata) {
const modulesDeprecatedWarning = 'The `modules` key in the @Module() decorator is deprecated. Use the `imports` key instead.';
const componentsDeprecatetWarning = 'The `components` key in the @Module() decorator is deprecated. Use the `providers` key instead.';
metadata.modules && deprecate(modulesDeprecatedWarning);
metadata.components && deprecate(componentsDeprecatetWarning);
}

View File

@@ -5,10 +5,9 @@
* MIT Licensed
*/
export { HttpException } from './exceptions/http-exception';
export { MiddlewareBuilder } from './middlewares/builder';
export { ModuleRef } from './injector/module-ref';
export * from './services/reflector.service';
export { NestFactory } from './nest-factory';
export * from './services/reflector.service';
export * from './nest-application';
export * from './nest-application-context';