Skip to content

Commit 4eef30c

Browse files
author
kamil.mysliwiec
committed
Issue nestjs#55 - iterate library instead of chain array methods
1 parent 55f4050 commit 4eef30c

7 files changed

Lines changed: 19 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
- Hierarchical injector. Injector improvements,
2-
- @Shared() decorator for scoped Modules,
1+
- Hierarchical injector improvements,
2+
- `@Shared(token?: string)` decorator for scoped Modules,
3+
- Added `iterare` library for applying multiple transformations to a collection,
34

45
## 1.0.0 (Final - 01.05.2017)
56

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"dependencies": {
4646
"cli-color": "^1.1.0",
4747
"express": "^4.14.0",
48+
"iterare": "0.0.8",
4849
"json-socket": "^0.2.1",
4950
"redis": "^2.6.5",
5051
"reflect-metadata": "0.1.10",

src/core/injector/instance-loader.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import iterate from 'iterare';
12
import { NestContainer } from './container';
23
import { Injector } from './injector';
34
import { Injectable } from '../../common/interfaces/injectable.interface';
@@ -65,7 +66,7 @@ export class InstanceLoader {
6566

6667
private callModuleInitHook(module: Module) {
6768
const components = [...module.routes, ...module.components];
68-
components.map(([key, {instance}]) => instance)
69+
iterate(components).map(([key, {instance}]) => instance)
6970
.filter((instance) => !isNil(instance))
7071
.filter(this.hasOnModuleInitHook)
7172
.forEach((instance) => (instance as OnModuleInit).onModuleInit());

src/core/metadata-scanner.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import iterate from 'iterare';
12
import { Injectable } from '../common/interfaces/injectable.interface';
23
import { isConstructor, isFunction, isNil } from '../common/utils/shared.utils';
34

45
export class MetadataScanner {
56
public scanFromPrototype<T extends Injectable, R>(instance: T, prototype, callback: (name: string) => R): R[] {
6-
return Object.getOwnPropertyNames(prototype)
7+
return iterate(Object.getOwnPropertyNames(prototype))
78
.filter((method) => {
89
const descriptor = Object.getOwnPropertyDescriptor(prototype, method);
910
if (descriptor.set || descriptor.get) {
@@ -12,6 +13,7 @@ export class MetadataScanner {
1213
return !isConstructor(method) && isFunction(prototype[method]);
1314
})
1415
.map(callback)
15-
.filter((metadata) => !isNil(metadata));
16+
.filter((metadata) => !isNil(metadata))
17+
.toArray();
1618
}
1719
}

src/core/middlewares/middlewares-module.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ export class MiddlewaresModule {
6262
const configs = this.container.getConfigs();
6363

6464
configs.forEach((moduleConfigs, module: string) => {
65-
[ ...moduleConfigs ].map((config: MiddlewareConfiguration) => {
66-
67-
config.forRoutes.map((route: ControllerMetadata & { method: RequestMethod }) => {
65+
[ ...moduleConfigs ].forEach((config: MiddlewareConfiguration) => {
66+
config.forRoutes.forEach((route: ControllerMetadata & { method: RequestMethod }) => {
6867
this.setupRouteMiddleware(route, config, module, app);
6968
});
7069
});

src/core/router/router-exception-filters.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'reflect-metadata';
2+
import iterate from 'iterare';
23
import { Controller } from '../../common/interfaces/controller.interface';
34
import { ExceptionsHandler } from '../exceptions/exceptions-handler';
45
import { EXCEPTION_FILTERS_METADATA, FILTER_CATCH_EXCEPTIONS } from '../../common/constants';
@@ -30,7 +31,7 @@ export class RouterExceptionFilters {
3031
}
3132

3233
public resolveFiltersMetatypes(filters: Metatype<any>[], moduleName: string): ExceptionFilterMetadata[] {
33-
return filters.filter(metatype => isFunction(metatype))
34+
return iterate(filters).filter(metatype => isFunction(metatype))
3435
.map(metatype => ({
3536
instance: this.findExceptionsFilterInstance(metatype, moduleName),
3637
metatype,
@@ -39,7 +40,8 @@ export class RouterExceptionFilters {
3940
.map(({ instance, metatype }) => ({
4041
func: instance.catch.bind(instance),
4142
exceptionMetatypes: this.reflectCatchExceptions(metatype),
42-
}));
43+
}))
44+
.toArray();
4345
}
4446

4547
public findExceptionsFilterInstance(metatype: Metatype<any>, moduleName: string): ExceptionFilter {

src/websockets/middlewares-injector.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'reflect-metadata';
2+
import iterate from 'iterare';
23
import { NestContainer, InstanceWrapper } from '../core/injector/container';
34
import { NestGateway } from './index';
45
import { GATEWAY_MIDDLEWARES } from './constants';
@@ -27,9 +28,9 @@ export class MiddlewaresInjector {
2728
}
2829

2930
public applyMiddlewares(server, components: Map<string, InstanceWrapper<Injectable>>, tokens: any[]) {
30-
tokens.map(token => this.bindMiddleware(token.name, components))
31+
iterate(tokens).map(token => this.bindMiddleware(token.name, components))
3132
.filter(middleware => !isNil(middleware))
32-
.map(middleware => server.use(middleware));
33+
.forEach(middleware => server.use(middleware));
3334
}
3435

3536
public bindMiddleware(token: string, components: Map<string, InstanceWrapper<Injectable>>) {

0 commit comments

Comments
 (0)