diff --git a/.travis.yml b/.travis.yml index 164fed26638..96e5f602553 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,6 @@ install: - npm install - gulp build script: + - npm run lint - npm test after_success: npm run coverage \ No newline at end of file diff --git a/examples/12-graphql-apollo/src/cats/cats.resolvers.ts b/examples/12-graphql-apollo/src/cats/cats.resolvers.ts index 1a965f52b6c..ad97b8840d3 100644 --- a/examples/12-graphql-apollo/src/cats/cats.resolvers.ts +++ b/examples/12-graphql-apollo/src/cats/cats.resolvers.ts @@ -1,5 +1,11 @@ import { Component, UseGuards } from '@nestjs/common'; -import { Query, Mutation, Resolver, DelegateProperty, Subscription } from '@nestjs/graphql'; +import { + Query, + Mutation, + Resolver, + DelegateProperty, + Subscription, +} from '@nestjs/graphql'; import { PubSub } from 'graphql-subscriptions'; import { Cat } from './interfaces/cat.interface'; diff --git a/examples/12-graphql-apollo/src/cats/cats.service.ts b/examples/12-graphql-apollo/src/cats/cats.service.ts index 9a3666b5447..0769e0706dd 100644 --- a/examples/12-graphql-apollo/src/cats/cats.service.ts +++ b/examples/12-graphql-apollo/src/cats/cats.service.ts @@ -5,7 +5,7 @@ import { Cat } from './interfaces/cat.interface'; export class CatsService { private readonly cats: Cat[] = [{ id: 1, name: 'Cat', age: 5 }]; - create(cat: Cat): Cat{ + create(cat: Cat): Cat { this.cats.push(cat); return cat; } diff --git a/examples/12-graphql-apollo/src/subscriptions/subscription.constants.ts b/examples/12-graphql-apollo/src/subscriptions/subscription.constants.ts index 3bb5fd4383f..5ee560f0691 100644 --- a/examples/12-graphql-apollo/src/subscriptions/subscription.constants.ts +++ b/examples/12-graphql-apollo/src/subscriptions/subscription.constants.ts @@ -1 +1 @@ -export const SUBSCRIPTION_SERVER = 'SUBSCRIPTION_SERVER'; \ No newline at end of file +export const SUBSCRIPTION_SERVER = 'SUBSCRIPTION_SERVER'; diff --git a/examples/12-graphql-apollo/src/subscriptions/subscription.providers.ts b/examples/12-graphql-apollo/src/subscriptions/subscription.providers.ts index 124d40a0224..aad2be922ba 100644 --- a/examples/12-graphql-apollo/src/subscriptions/subscription.providers.ts +++ b/examples/12-graphql-apollo/src/subscriptions/subscription.providers.ts @@ -7,9 +7,7 @@ export const createSubscriptionProviders = (port: number = 3001) => [ provide: SUBSCRIPTION_SERVER, useFactory: () => { const server = createServer(); - return new Promise(resolve => - server.listen(port, () => resolve(server)), - ); + return new Promise(resolve => server.listen(port, () => resolve(server))); }, }, ]; diff --git a/package-lock.json b/package-lock.json index ffbb5c960de..06e50b8724c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "nestjs", - "version": "4.6.4", + "version": "4.6.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -575,6 +575,17 @@ "is-buffer": "1.1.6" } }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, "babel-polyfill": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", @@ -5604,6 +5615,12 @@ "resolved": "https://registry.npmjs.org/iterare/-/iterare-0.0.8.tgz", "integrity": "sha1-qWmoCh+/9rePKHdllNe8K9+raq0=" }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, "js-yaml": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", @@ -10377,6 +10394,129 @@ } } }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.3.2", + "commander": "2.14.1", + "diff": "3.2.0", + "glob": "7.1.2", + "js-yaml": "3.10.0", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.5.0", + "tslib": "1.9.0", + "tsutils": "2.22.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "tsutils": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.1.tgz", + "integrity": "sha512-j4Nx7aeMPyIrKtDftSfDiTFBYW3o/41T3zAxm0C/9fSKT62jnfqOZooC9uKLr4rQF9QsZaVTVY6QY+vVnWSisw==", + "dev": true, + "requires": { + "tslib": "1.9.0" + } + }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", diff --git a/package.json b/package.json index 407d33958ed..7e624039c21 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "test": "nyc --require ts-node/register mocha src/**/*.spec.ts --reporter spec", "coverage": "nyc report --reporter=text-lcov | coveralls", + "lint": "tslint -p tsconfig.json -c tslint.json", "prettier": "prettier */**/*.ts --ignore-path ./.prettierignore --write && git status", "build": "gulp build && gulp move", "build:lib": "gulp build --dist lib", @@ -78,7 +79,8 @@ "prettier": "^1.9.2", "sinon": "^2.1.0", "sinon-chai": "^2.8.0", - "ts-node": "^3.2.0" + "ts-node": "^3.2.0", + "tslint": "^5.9.1" }, "collective": { "type": "opencollective", diff --git a/src/common/decorators/http/create-route-param-metadata.decorator.ts b/src/common/decorators/http/create-route-param-metadata.decorator.ts index 68b9fe8396b..1c1e7b29153 100644 --- a/src/common/decorators/http/create-route-param-metadata.decorator.ts +++ b/src/common/decorators/http/create-route-param-metadata.decorator.ts @@ -13,7 +13,7 @@ const assignCustomMetadata = ( index: number, factory: CustomParamFactory, data?: ParamData, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ) => ({ ...args, [`${paramtype}${CUSTOM_ROUTE_AGRS_METADATA}:${index}`]: { diff --git a/src/common/decorators/http/index.ts b/src/common/decorators/http/index.ts index 30ee622c394..724410aca69 100644 --- a/src/common/decorators/http/index.ts +++ b/src/common/decorators/http/index.ts @@ -2,4 +2,4 @@ export * from './request-mapping.decorator'; export * from './route-params.decorator'; export * from './http-code.decorator'; export * from './create-route-param-metadata.decorator'; -export * from './render.decorator'; \ No newline at end of file +export * from './render.decorator'; diff --git a/src/common/decorators/http/route-params.decorator.ts b/src/common/decorators/http/route-params.decorator.ts index be1cc209c91..92eb9e5ac8b 100644 --- a/src/common/decorators/http/route-params.decorator.ts +++ b/src/common/decorators/http/route-params.decorator.ts @@ -17,7 +17,7 @@ const assignMetadata = ( paramtype: RouteParamtypes, index: number, data?: ParamData, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ) => ({ ...args, [`${paramtype}:${index}`]: { @@ -41,7 +41,7 @@ const createRouteParamDecorator = (paramtype: RouteParamtypes) => { const createPipesRouteParamDecorator = (paramtype: RouteParamtypes) => ( data?, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ): ParameterDecorator => (target, key, index) => { const args = Reflect.getMetadata(ROUTE_ARGS_METADATA, target, key) || {}; const hasParamData = isNil(data) || isString(data); @@ -78,12 +78,11 @@ export const Headers: ( property?: string, ) => ParameterDecorator = createRouteParamDecorator(RouteParamtypes.HEADERS); -export function Query(); export function Query(...pipes: PipeTransform[]); export function Query(property: string, ...pipes: PipeTransform[]); export function Query( property?: string | PipeTransform, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ) { return createPipesRouteParamDecorator(RouteParamtypes.QUERY)( property, @@ -91,12 +90,11 @@ export function Query( ); } -export function Body(); export function Body(...pipes: PipeTransform[]); export function Body(property: string, ...pipes: PipeTransform[]); export function Body( property?: string | PipeTransform, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ) { return createPipesRouteParamDecorator(RouteParamtypes.BODY)( property, @@ -104,12 +102,11 @@ export function Body( ); } -export function Param(); export function Param(...pipes: PipeTransform[]); export function Param(property: string, ...pipes: PipeTransform[]); export function Param( property?: string | PipeTransform, - ...pipes: PipeTransform[] + ...pipes: PipeTransform[], ) { return createPipesRouteParamDecorator(RouteParamtypes.PARAM)( property, diff --git a/src/common/enums/route-paramtypes.enum.ts b/src/common/enums/route-paramtypes.enum.ts index fc74aebf660..ccb2aa97e7c 100644 --- a/src/common/enums/route-paramtypes.enum.ts +++ b/src/common/enums/route-paramtypes.enum.ts @@ -8,5 +8,5 @@ export enum RouteParamtypes { HEADERS, SESSION, FILE, - FILES + FILES, } diff --git a/src/common/http/http.service.ts b/src/common/http/http.service.ts index 45176c20623..33dccf7d9b6 100644 --- a/src/common/http/http.service.ts +++ b/src/common/http/http.service.ts @@ -7,32 +7,32 @@ import { import 'rxjs/add/observable/fromPromise'; export class HttpService { - request(config: AxiosRequestConfig): Observable> { + public request(config: AxiosRequestConfig): Observable> { return Observable.fromPromise(axios.request(config)); } - - get( + + public get( url: string, config?: AxiosRequestConfig, ): Observable> { return Observable.fromPromise(axios.get(url, config)); } - delete( + public delete( url: string, config?: AxiosRequestConfig, ): Observable> { return Observable.fromPromise(axios.delete(url, config)); } - head( + public head( url: string, config?: AxiosRequestConfig, ): Observable> { return Observable.fromPromise(axios.head(url, config)); } - post( + public post( url: string, data?, config?: AxiosRequestConfig, @@ -40,7 +40,7 @@ export class HttpService { return Observable.fromPromise(axios.post(url, data, config)); } - put( + public put( url: string, data?, config?: AxiosRequestConfig, @@ -48,7 +48,7 @@ export class HttpService { return Observable.fromPromise(axios.post(url, data, config)); } - patch( + public patch( url: string, data?, config?: AxiosRequestConfig, diff --git a/src/common/http/index.ts b/src/common/http/index.ts index abdf07854b1..c13030e8282 100644 --- a/src/common/http/index.ts +++ b/src/common/http/index.ts @@ -1,2 +1,2 @@ export * from './http.module'; -export * from './http.service'; \ No newline at end of file +export * from './http.service'; diff --git a/src/common/http/interfaces/axios.interfaces.ts b/src/common/http/interfaces/axios.interfaces.ts index 5204a308c83..11ca5dfda52 100644 --- a/src/common/http/interfaces/axios.interfaces.ts +++ b/src/common/http/interfaces/axios.interfaces.ts @@ -1,10 +1,8 @@ -export interface AxiosTransformer { - (data: any, headers?: any): any; -} +export type AxiosTransformer = + (data: any, headers?: any) => any; -export interface AxiosAdapter { - (config: AxiosRequestConfig): AxiosPromise; -} +export type AxiosAdapter = + (config: AxiosRequestConfig) => AxiosPromise; export interface AxiosBasicCredentials { username: string; @@ -44,7 +42,7 @@ export interface AxiosRequestConfig { cancelToken?: CancelToken; } -export interface AxiosResponse { +export interface AxiosResponse { data: T; status: number; statusText: string; @@ -60,8 +58,7 @@ export interface AxiosError extends Error { response?: AxiosResponse; } -export interface AxiosPromise extends Promise> { -} +export interface AxiosPromise extends Promise> {} export interface CancelStatic { new (message?: string): Cancel; @@ -71,9 +68,8 @@ export interface Cancel { message: string; } -export interface Canceler { - (message?: string): void; -} +export type Canceler = + (message?: string) => void; export interface CancelTokenStatic { new (executor: (cancel: Canceler) => void): CancelToken; @@ -92,7 +88,10 @@ export interface CancelTokenSource { } export interface AxiosInterceptorManager { - use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any): number; + use( + onFulfilled?: (value: V) => V | Promise, + onRejected?: (error: any) => any, + ): number; eject(id: number): void; } @@ -106,9 +105,21 @@ export interface AxiosInstance { get(url: string, config?: AxiosRequestConfig): AxiosPromise; delete(url: string, config?: AxiosRequestConfig): AxiosPromise; head(url: string, config?: AxiosRequestConfig): AxiosPromise; - post(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise; - put(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise; - patch(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise; + post( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): AxiosPromise; + put( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): AxiosPromise; + patch( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): AxiosPromise; } export interface AxiosStatic extends AxiosInstance { diff --git a/src/common/interceptors/file.interceptor.ts b/src/common/interceptors/file.interceptor.ts index 0c2f43a0040..87eca3438c6 100644 --- a/src/common/interceptors/file.interceptor.ts +++ b/src/common/interceptors/file.interceptor.ts @@ -8,9 +8,9 @@ import { transformException } from './multer/multer.utils'; export function FileInterceptor(fieldName: string, options?: MulterOptions) { return mixin( class implements NestInterceptor { - readonly upload = multer(options); + public readonly upload = multer(options); - async intercept( + public async intercept( request, context, stream$: Observable, diff --git a/src/common/interceptors/files.interceptor.ts b/src/common/interceptors/files.interceptor.ts index e324e5427d9..6f8dddd0f49 100644 --- a/src/common/interceptors/files.interceptor.ts +++ b/src/common/interceptors/files.interceptor.ts @@ -4,11 +4,15 @@ import { Observable } from 'rxjs/Observable'; import { MulterOptions } from '../interfaces/external/multer-options.interface'; import { transformException } from './multer/multer.utils'; -export function FilesInterceptor(fieldName: string, maxCount?: number, options?: MulterOptions) { +export function FilesInterceptor( + fieldName: string, + maxCount?: number, + options?: MulterOptions, +) { const Interceptor = class implements NestInterceptor { - readonly upload = multer(options); + public readonly upload = multer(options); - async intercept( + public async intercept( request, context, stream$: Observable, diff --git a/src/common/interceptors/index.ts b/src/common/interceptors/index.ts index 9b985c53c82..73fb2b02f45 100644 --- a/src/common/interceptors/index.ts +++ b/src/common/interceptors/index.ts @@ -1,2 +1,2 @@ export * from './file.interceptor'; -export * from './files.interceptor'; \ No newline at end of file +export * from './files.interceptor'; diff --git a/src/common/interceptors/multer/multer.utils.ts b/src/common/interceptors/multer/multer.utils.ts index 914dbd76de2..1f9ccf0fd2c 100644 --- a/src/common/interceptors/multer/multer.utils.ts +++ b/src/common/interceptors/multer/multer.utils.ts @@ -1,4 +1,9 @@ -import { InternalServerErrorException, HttpException, PayloadTooLargeException, BadRequestException } from './../../exceptions'; +import { + InternalServerErrorException, + HttpException, + PayloadTooLargeException, + BadRequestException, +} from './../../exceptions'; import { multerExceptions } from './multer.constants'; export function transformException(error: Error | undefined) { @@ -6,15 +11,15 @@ export function transformException(error: Error | undefined) { return error; } switch (error.message) { - case multerExceptions.LIMIT_FILE_SIZE: + case multerExceptions.LIMIT_FILE_SIZE: return new PayloadTooLargeException(error.message); case multerExceptions.LIMIT_FILE_COUNT: - case multerExceptions.LIMIT_FIELD_KEY: - case multerExceptions.LIMIT_FIELD_VALUE: + case multerExceptions.LIMIT_FIELD_KEY: + case multerExceptions.LIMIT_FIELD_VALUE: case multerExceptions.LIMIT_FIELD_COUNT: case multerExceptions.LIMIT_UNEXPECTED_FILE: case multerExceptions.LIMIT_PART_COUNT: return new BadRequestException(error.message); } return error; -} \ No newline at end of file +} diff --git a/src/common/interfaces/middlewares/express-middleware.interface.ts b/src/common/interfaces/middlewares/express-middleware.interface.ts index f2abd6868dd..2b22894aea6 100644 --- a/src/common/interfaces/middlewares/express-middleware.interface.ts +++ b/src/common/interfaces/middlewares/express-middleware.interface.ts @@ -1,4 +1,3 @@ // tslint:disable-next-line:callable-types -export interface ExpressMiddleware { - (req?, res?, next?): void; -} +export type ExpressMiddleware = + (req?, res?, next?) => void; diff --git a/src/common/interfaces/middlewares/nest-middleware.interface.ts b/src/common/interfaces/middlewares/nest-middleware.interface.ts index f3a5230718c..0ab2bd57938 100644 --- a/src/common/interfaces/middlewares/nest-middleware.interface.ts +++ b/src/common/interfaces/middlewares/nest-middleware.interface.ts @@ -3,7 +3,7 @@ import { ExpressMiddleware } from './express-middleware.interface'; export type AsyncExpressMiddleware = Promise; export interface NestMiddleware { resolve( - ...args + ...args, ): | ExpressMiddleware | AsyncExpressMiddleware diff --git a/src/common/interfaces/nest-application-context-options.interface.ts b/src/common/interfaces/nest-application-context-options.interface.ts index cda0eca368b..3160ac467df 100644 --- a/src/common/interfaces/nest-application-context-options.interface.ts +++ b/src/common/interfaces/nest-application-context-options.interface.ts @@ -1,5 +1,5 @@ import { LoggerService } from '../services/logger.service'; export class NestApplicationContextOptions { - logger?: LoggerService; + public logger?: LoggerService; } diff --git a/src/common/interfaces/nest-application.interface.ts b/src/common/interfaces/nest-application.interface.ts index 3d4befeb8ec..4c09317338e 100644 --- a/src/common/interfaces/nest-application.interface.ts +++ b/src/common/interfaces/nest-application.interface.ts @@ -69,7 +69,11 @@ export interface INestApplication extends INestApplicationContext { * @returns Promise */ listen(port: number | string, callback?: () => void): Promise; - listen(port: number | string, hostname: string, callback?: () => void): Promise; + listen( + port: number | string, + hostname: string, + callback?: () => void, + ): Promise; /** * Starts the application and can be awaited. diff --git a/src/common/pipes/parse-int.pipe.ts b/src/common/pipes/parse-int.pipe.ts index fd96592a881..5504f4e4018 100644 --- a/src/common/pipes/parse-int.pipe.ts +++ b/src/common/pipes/parse-int.pipe.ts @@ -4,7 +4,7 @@ import { ArgumentMetadata, Pipe } from '../index'; @Pipe() export class ParseIntPipe implements PipeTransform { - async transform(value: string, metadata: ArgumentMetadata): Promise { + public async transform(value: string, metadata: ArgumentMetadata): Promise { const isNumeric = 'string' === typeof value && !isNaN(parseFloat(value)) && diff --git a/src/common/pipes/validation.pipe.ts b/src/common/pipes/validation.pipe.ts index c67a4095e1d..67ee30989ae 100644 --- a/src/common/pipes/validation.pipe.ts +++ b/src/common/pipes/validation.pipe.ts @@ -33,7 +33,9 @@ export class ValidationPipe implements PipeTransform { } return this.isTransformEnabled ? entity - : Object.keys(this.validatorOptions).length > 0 ? classToPlain(entity) : value; + : Object.keys(this.validatorOptions).length > 0 + ? classToPlain(entity) + : value; } private toValidate(metadata: ArgumentMetadata): boolean { @@ -42,6 +44,6 @@ export class ValidationPipe implements PipeTransform { return false; } const types = [String, Boolean, Number, Array, Object]; - return !types.find(type => metatype === type) && !isNil(metatype); + return !types.find(t => metatype === t) && !isNil(metatype); } } diff --git a/src/common/services/logger.service.ts b/src/common/services/logger.service.ts index 442fd48a4f9..fc19ac37204 100644 --- a/src/common/services/logger.service.ts +++ b/src/common/services/logger.service.ts @@ -22,7 +22,7 @@ export class Logger implements LoggerService { private readonly isTimeDiffEnabled = false, ) {} - log(message: string) { + public log(message: string) { const { logger } = Logger; (logger as typeof Logger).log.call( logger, @@ -32,7 +32,7 @@ export class Logger implements LoggerService { ); } - error(message: string, trace = '') { + public error(message: string, trace = '') { const { logger } = Logger; (logger as typeof Logger).error.call( logger, @@ -43,7 +43,7 @@ export class Logger implements LoggerService { ); } - warn(message: string) { + public warn(message: string) { const { logger } = Logger; (logger as typeof Logger).warn.call( logger, @@ -53,19 +53,19 @@ export class Logger implements LoggerService { ); } - static overrideLogger(logger: LoggerService) { + public static overrideLogger(logger: LoggerService) { this.logger = logger; } - static setMode(mode: NestEnvironment) { + public static setMode(mode: NestEnvironment) { this.contextEnv = mode; } - static log(message: string, context = '', isTimeDiffEnabled = true) { + public static log(message: string, context = '', isTimeDiffEnabled = true) { this.printMessage(message, clc.green, context, isTimeDiffEnabled); } - static error( + public static error( message: string, trace = '', context = '', @@ -75,7 +75,7 @@ export class Logger implements LoggerService { this.printStackTrace(trace); } - static warn(message: string, context = '', isTimeDiffEnabled = true) { + public static warn(message: string, context = '', isTimeDiffEnabled = true) { this.printMessage(message, clc.yellow, context, isTimeDiffEnabled); } diff --git a/src/common/test/decorators/route-params.decorator.spec.ts b/src/common/test/decorators/route-params.decorator.spec.ts index 251067df439..4737af4a5d6 100644 --- a/src/common/test/decorators/route-params.decorator.spec.ts +++ b/src/common/test/decorators/route-params.decorator.spec.ts @@ -183,7 +183,6 @@ describe('@Patch', () => { }); }); - describe('Inheritance', () => { const requestPath = 'test'; const requestProps = { diff --git a/src/common/test/interceptors/file.interceptor.spec.ts b/src/common/test/interceptors/file.interceptor.spec.ts index 95b877cf35b..fbe7946fc3e 100644 --- a/src/common/test/interceptors/file.interceptor.spec.ts +++ b/src/common/test/interceptors/file.interceptor.spec.ts @@ -16,9 +16,11 @@ describe('FileInterceptor', () => { }); it('should call single() with expected params', async () => { const fieldName = 'file'; - const target = new (FileInterceptor(fieldName)); + const target = new (FileInterceptor(fieldName))(); const callback = (req, res, next) => next(); - const singleSpy = sinon.stub((target as any).upload, 'single').returns(callback); + const singleSpy = sinon + .stub((target as any).upload, 'single') + .returns(callback); const req = {}; await target.intercept(req, null, stream$); diff --git a/src/common/test/interceptors/files.interceptor.spec.ts b/src/common/test/interceptors/files.interceptor.spec.ts index 07f783e423b..85bc4a89901 100644 --- a/src/common/test/interceptors/files.interceptor.spec.ts +++ b/src/common/test/interceptors/files.interceptor.spec.ts @@ -17,10 +17,12 @@ describe('FilesInterceptor', () => { it('should call array() with expected params', async () => { const fieldName = 'file'; const maxCount = 10; - const target = new (FilesInterceptor(fieldName, maxCount)); + const target = new (FilesInterceptor(fieldName, maxCount))(); const callback = (req, res, next) => next(); - const arraySpy = sinon.stub((target as any).upload, 'array').returns(callback); + const arraySpy = sinon + .stub((target as any).upload, 'array') + .returns(callback); await target.intercept({}, null, stream$); diff --git a/src/common/test/pipes/parse-int.pipe.spec.ts b/src/common/test/pipes/parse-int.pipe.spec.ts index 2c33edb9dd8..25d9f05c9b4 100644 --- a/src/common/test/pipes/parse-int.pipe.spec.ts +++ b/src/common/test/pipes/parse-int.pipe.spec.ts @@ -19,8 +19,7 @@ describe('ParseIntPipe', () => { }); describe('when validation fails', () => { it('should throw an error', async () => { - return expect(target.transform('123abc', {} as any)).to.be - .rejected; + return expect(target.transform('123abc', {} as any)).to.be.rejected; }); }); }); diff --git a/src/common/test/pipes/validation.pipe.spec.ts b/src/common/test/pipes/validation.pipe.spec.ts index 19c33fe7b5e..f59e7448ef7 100644 --- a/src/common/test/pipes/validation.pipe.spec.ts +++ b/src/common/test/pipes/validation.pipe.spec.ts @@ -27,9 +27,9 @@ describe('ValidationPipe', () => { it('should return the value unchanged', async () => { const testObj = { prop1: 'value1', prop2: 'value2' }; expect(await target.transform(testObj, {} as any)).to.equal(testObj); - expect(await target.transform(testObj, metadata as any)).to.not.be.instanceOf( - TestModel, - ); + expect( + await target.transform(testObj, metadata as any), + ).to.not.be.instanceOf(TestModel); }); }); describe('when validation fails', () => { @@ -43,43 +43,55 @@ describe('ValidationPipe', () => { }); describe('when validation transforms', () => { it('should return a TestModel instance', async () => { - target = new ValidationPipe({transform: true}); - const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3'}; - expect(await target.transform(testObj, metadata)).to.be.instanceOf(TestModel); + target = new ValidationPipe({ transform: true }); + const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3' }; + expect(await target.transform(testObj, metadata)).to.be.instanceOf( + TestModel, + ); }); describe('when validation strips', () => { it('should return a TestModel without extra properties', async () => { - target = new ValidationPipe({whitelist: true}); - const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3'}; - expect(await target.transform(testObj, metadata)).to.not.be.instanceOf(TestModel); - expect(await target.transform(testObj, metadata)).to.not.have.property('prop3'); + target = new ValidationPipe({ whitelist: true }); + const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3' }; + expect( + await target.transform(testObj, metadata), + ).to.not.be.instanceOf(TestModel); + expect( + await target.transform(testObj, metadata), + ).to.not.have.property('prop3'); }); }); describe('when validation rejects', () => { it('should throw an error', () => { - target = new ValidationPipe({forbidNonWhitelisted: true}); + target = new ValidationPipe({ forbidNonWhitelisted: true }); const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3' }; expect(target.transform(testObj, metadata)).to.be.rejected; }); }); }); - describe('when validation does\'t transform', () => { + describe("when validation does't transform", () => { describe('when validation strips', () => { it('should return a plain object without extra properties', async () => { - target = new ValidationPipe({transform: false, whitelist: true}); - const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3'}; - expect(await target.transform(testObj, metadata)).to.not.be.instanceOf(TestModel); - expect(await target.transform(testObj, metadata)).to.not.have.property('prop3'); + target = new ValidationPipe({ transform: false, whitelist: true }); + const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3' }; + expect( + await target.transform(testObj, metadata), + ).to.not.be.instanceOf(TestModel); + expect( + await target.transform(testObj, metadata), + ).to.not.have.property('prop3'); }); }); describe('when validation rejects', () => { it('should throw an error', () => { - target = new ValidationPipe({transform: false, forbidNonWhitelisted: true}); + target = new ValidationPipe({ + transform: false, + forbidNonWhitelisted: true, + }); const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3' }; expect(target.transform(testObj, metadata)).to.be.rejected; }); }); }); }); - -}); \ No newline at end of file +}); diff --git a/src/common/utils/http-exception-body.util.ts b/src/common/utils/http-exception-body.util.ts index be9d206b108..bca0907d4d7 100644 --- a/src/common/utils/http-exception-body.util.ts +++ b/src/common/utils/http-exception-body.util.ts @@ -2,7 +2,4 @@ export const createHttpExceptionBody = ( message: any, error: string, statusCode: number, -) => - message - ? { statusCode, error, message } - : { statusCode, error }; +) => (message ? { statusCode, error, message } : { statusCode, error }); diff --git a/src/core/application-config.ts b/src/core/application-config.ts index 54cdd7092aa..4162e378b9d 100644 --- a/src/core/application-config.ts +++ b/src/core/application-config.ts @@ -36,7 +36,7 @@ export class ApplicationConfig implements ConfigurationProvider { public addGlobalPipe(pipe: PipeTransform) { this.globalPipes.push(pipe); } - + public useGlobalPipes(...pipes: PipeTransform[]) { this.globalPipes = this.globalPipes.concat(pipes); } diff --git a/src/core/constants.ts b/src/core/constants.ts index 2da8bff7f9d..9443d30f71f 100644 --- a/src/core/constants.ts +++ b/src/core/constants.ts @@ -8,4 +8,4 @@ export const messages = { export const APP_INTERCEPTOR = 'APP_INTERCEPTOR'; export const APP_PIPE = 'APP_PIPE'; export const APP_GUARD = 'APP_GUARD'; -export const APP_FILTER = 'APP_FILTER'; \ No newline at end of file +export const APP_FILTER = 'APP_FILTER'; diff --git a/src/core/injector/index.ts b/src/core/injector/index.ts index 15e35804160..d0377ada445 100644 --- a/src/core/injector/index.ts +++ b/src/core/injector/index.ts @@ -1,2 +1,2 @@ export * from './modules-container'; -export * from './tokens'; \ No newline at end of file +export * from './tokens'; diff --git a/src/core/injector/tokens.ts b/src/core/injector/tokens.ts index a5e49a70600..959dd5323fd 100644 --- a/src/core/injector/tokens.ts +++ b/src/core/injector/tokens.ts @@ -1 +1 @@ -export const EXPRESS_REF = 'EXPRESS_REF'; \ No newline at end of file +export const EXPRESS_REF = 'EXPRESS_REF'; diff --git a/src/core/interceptors/interceptors-consumer.ts b/src/core/interceptors/interceptors-consumer.ts index d38781276e0..56ab7e1c49e 100644 --- a/src/core/interceptors/interceptors-consumer.ts +++ b/src/core/interceptors/interceptors-consumer.ts @@ -24,7 +24,7 @@ export class InterceptorsConsumer { next: () => Promise, ): Promise { if (!interceptors || isEmpty(interceptors)) { - return await (await next()); + return await await next(); } const context = this.createContext(instance, callback); const start$ = Observable.defer(() => this.transformDeffered(next)); @@ -47,10 +47,9 @@ export class InterceptorsConsumer { } public transformDeffered(next: () => Promise): Observable { - return Observable.fromPromise(next()) - .switchMap((res) => { - const isDeffered = res instanceof Promise || res instanceof Observable; - return isDeffered ? res : Promise.resolve(res); - }); + return Observable.fromPromise(next()).switchMap(res => { + const isDeffered = res instanceof Promise || res instanceof Observable; + return isDeffered ? res : Promise.resolve(res); + }); } } diff --git a/src/core/metadata-scanner.ts b/src/core/metadata-scanner.ts index 71d3ff6d4d9..5324a5620e9 100644 --- a/src/core/metadata-scanner.ts +++ b/src/core/metadata-scanner.ts @@ -18,7 +18,7 @@ export class MetadataScanner { .toArray(); } - *getAllFilteredMethodNames(prototype): IterableIterator { + public *getAllFilteredMethodNames(prototype): IterableIterator { do { yield* iterate(Object.getOwnPropertyNames(prototype)) .filter(prop => { @@ -28,9 +28,11 @@ export class MetadataScanner { } return !isConstructor(prop) && isFunction(prototype[prop]); }) - .toArray() + .toArray(); } while ( + /* tslint:disable-next-line:no-conditional-assignment */ (prototype = Reflect.getPrototypeOf(prototype)) && + /* tslint:disable-next-line:triple-equals */ prototype != Object.prototype ); } diff --git a/src/core/middlewares/middlewares-module.ts b/src/core/middlewares/middlewares-module.ts index 3b2d3b9c2ac..21a6002cf5f 100644 --- a/src/core/middlewares/middlewares-module.ts +++ b/src/core/middlewares/middlewares-module.ts @@ -151,8 +151,8 @@ export class MiddlewaresModule { ); const router = this.routerMethodFactory.get(app, method).bind(app); - const setupWithProxy = middleware => - this.setupHandlerWithProxy(exceptionsHandler, router, middleware, path); + const setupWithProxy = mw => + this.setupHandlerWithProxy(exceptionsHandler, router, mw, path); const resolve = instance.resolve(); if (!(resolve instanceof Promise)) { setupWithProxy(resolve); diff --git a/src/core/middlewares/utils.ts b/src/core/middlewares/utils.ts index c175c587aef..a08ce94cbbc 100644 --- a/src/core/middlewares/utils.ts +++ b/src/core/middlewares/utils.ts @@ -15,7 +15,7 @@ export const mapToClass = middleware => { return assignToken( class { public resolve = (...args) => (req, res, next) => - middleware(req, res, next); + middleware(req, res, next) }, ); }; diff --git a/src/core/nest-factory.ts b/src/core/nest-factory.ts index eafc0ce9d5b..ae9f2fe33e9 100644 --- a/src/core/nest-factory.ts +++ b/src/core/nest-factory.ts @@ -33,15 +33,11 @@ export class NestFactoryStatic { * Creates an instance of the NestApplication (returns Promise) * @returns an `Promise` of the INestApplication instance */ - public async create(module: any): Promise; - public async create( - module: any, - options: NestApplicationOptions, - ): Promise; + public async create(module: any, options?: NestApplicationOptions): Promise; public async create( module: any, express: any, - options: NestApplicationOptions, + options?: NestApplicationOptions, ): Promise; public async create( module: any, diff --git a/src/core/router/route-params-factory.ts b/src/core/router/route-params-factory.ts index d7137a5d447..c37fc8b25fb 100644 --- a/src/core/router/route-params-factory.ts +++ b/src/core/router/route-params-factory.ts @@ -27,7 +27,7 @@ export class RouteParamsFactory implements IRouteParamsFactory { case RouteParamtypes.FILE: return req.file; case RouteParamtypes.FILES: - return req.files; + return req.files; default: return null; } diff --git a/src/core/router/routes-resolver.ts b/src/core/router/routes-resolver.ts index b9e909b6bdb..01f8ff22dda 100644 --- a/src/core/router/routes-resolver.ts +++ b/src/core/router/routes-resolver.ts @@ -94,10 +94,10 @@ export class RoutesResolver implements Resolver { public mapExternalException(err: any) { switch (true) { - case (err instanceof SyntaxError): + case err instanceof SyntaxError: return new BadRequestException(err.message); - default: - return err; + default: + return err; } } } diff --git a/src/core/scanner.ts b/src/core/scanner.ts index c7a323102f2..8741ae6840f 100644 --- a/src/core/scanner.ts +++ b/src/core/scanner.ts @@ -233,8 +233,8 @@ export class DependenciesScanner { this.container.addController(route, token); } - public reflectMetadata(metatype, metadata: string) { - return Reflect.getMetadata(metadata, metatype) || []; + public reflectMetadata(metatype, targetMetadata: string) { + return Reflect.getMetadata(targetMetadata, metatype) || []; } public applyApplicationProviders() { diff --git a/src/core/test/interceptors/interceptors-consumer.spec.ts b/src/core/test/interceptors/interceptors-consumer.spec.ts index aeb10fd9160..8c400c1bfd7 100644 --- a/src/core/test/interceptors/interceptors-consumer.spec.ts +++ b/src/core/test/interceptors/interceptors-consumer.spec.ts @@ -76,14 +76,18 @@ describe('InterceptorsConsumer', () => { it('should return Observable', async () => { const val = 3; const next = async () => val; - expect(await (await consumer.transformDeffered(next).toPromise())).to.be.eql(val); + expect( + await await consumer.transformDeffered(next).toPromise(), + ).to.be.eql(val); }); }); describe('when next() result is Promise', () => { it('should return Observable', async () => { const val = 3; const next = () => Promise.resolve(val); - expect(await (await consumer.transformDeffered(next).toPromise())).to.be.eql(val); + expect( + await await consumer.transformDeffered(next).toPromise(), + ).to.be.eql(val); }); }); describe('when next() result is Observable', () => { diff --git a/src/core/test/metadata-scanner.spec.ts b/src/core/test/metadata-scanner.spec.ts index f3e1b572f2f..f23e267f5a0 100644 --- a/src/core/test/metadata-scanner.spec.ts +++ b/src/core/test/metadata-scanner.spec.ts @@ -16,7 +16,7 @@ describe('MetadataScanner', () => { } set valParent(value) {} } - + class Test extends Parent { constructor() { super(); diff --git a/src/core/test/router/route-params-factory.spec.ts b/src/core/test/router/route-params-factory.spec.ts index 650cc47f95a..bdf02067f2e 100644 --- a/src/core/test/router/route-params-factory.spec.ts +++ b/src/core/test/router/route-params-factory.spec.ts @@ -106,10 +106,7 @@ describe('RouteParamsFactory', () => { describe(`RouteParamtypes.FILE`, () => { it('should returns file object', () => { expect( - (factory as any).exchangeKeyForValue( - RouteParamtypes.FILE, - ...args, - ), + (factory as any).exchangeKeyForValue(RouteParamtypes.FILE, ...args), ).to.be.eql(req.file); }); }); diff --git a/src/core/test/router/router-execution-context.spec.ts b/src/core/test/router/router-execution-context.spec.ts index 1f6721324bd..91e51a9d42c 100644 --- a/src/core/test/router/router-execution-context.spec.ts +++ b/src/core/test/router/router-execution-context.spec.ts @@ -334,7 +334,7 @@ describe('RouterExecutionContext', () => { const template = 'template'; const value = 'test'; const response = { render: sinon.spy() }; - + sinon.stub(contextCreator, 'reflectRenderTemplate').returns(template); const handler = contextCreator.createHandleResponseFn(null, true, 100); handler(value, response); @@ -346,7 +346,7 @@ describe('RouterExecutionContext', () => { it('should not call "res.render()"', () => { const result = Promise.resolve('test'); const response = { render: sinon.spy() }; - + sinon.stub(contextCreator, 'reflectRenderTemplate').returns(undefined); const handler = contextCreator.createHandleResponseFn(null, true, 100); handler(result, response); diff --git a/src/core/test/router/routes-resolver.spec.ts b/src/core/test/router/routes-resolver.spec.ts index 9c859b276a0..c8c9eec8c84 100644 --- a/src/core/test/router/routes-resolver.spec.ts +++ b/src/core/test/router/routes-resolver.spec.ts @@ -70,7 +70,10 @@ describe('RoutesResolver', () => { const spy = sinon .stub(routesResolver, 'setupRouters') .callsFake(() => undefined); - routesResolver.resolve({ use: sinon.spy() } as any, { use: sinon.spy() } as any); + routesResolver.resolve( + { use: sinon.spy() } as any, + { use: sinon.spy() } as any, + ); expect(spy.calledTwice).to.be.true; }); }); diff --git a/src/core/test/scanner.spec.ts b/src/core/test/scanner.spec.ts index 98518bfadc7..031ab97f0b1 100644 --- a/src/core/test/scanner.spec.ts +++ b/src/core/test/scanner.spec.ts @@ -198,7 +198,7 @@ describe('DependenciesScanner', () => { mockContainer.expects('addComponent').callsFake(() => false); scanner.storeComponent(component, token); const applyMap = (scanner as any).applicationProvidersApplyMap; - + expect(applyMap).to.have.length(1); expect(applyMap[0].moduleToken).to.be.eql(token); }); @@ -219,28 +219,33 @@ describe('DependenciesScanner', () => { expectation.verify(); }); it('should not push new object to "applicationProvidersApplyMap" array', () => { - expect( - (scanner as any).applicationProvidersApplyMap - ).to.have.length(0); + expect((scanner as any).applicationProvidersApplyMap).to.have.length( + 0, + ); mockContainer.expects('addComponent').callsFake(() => false); scanner.storeComponent(component, token); - expect( - (scanner as any).applicationProvidersApplyMap - ).to.have.length(0); + expect((scanner as any).applicationProvidersApplyMap).to.have.length( + 0, + ); }); }); }); }); describe('applyApplicationProviders', () => { it('should apply each provider', () => { - const provider = { moduleToken: 'moduleToken', providerToken: 'providerToken' }; + const provider = { + moduleToken: 'moduleToken', + providerToken: 'providerToken', + }; (scanner as any).applicationProvidersApplyMap = [provider]; const expectedInstance = {}; - mockContainer.expects('getModules').callsFake(() => ({ get: () => ({ - components: { get: () => ({ instance: expectedInstance }) } - })})); + mockContainer.expects('getModules').callsFake(() => ({ + get: () => ({ + components: { get: () => ({ instance: expectedInstance }) }, + }), + })); const applySpy = sinon.spy(); sinon.stub(scanner, 'getApplyProvidersMap').callsFake(() => ({ [provider.providerToken]: applySpy, @@ -254,7 +259,8 @@ describe('DependenciesScanner', () => { describe(`when token is ${APP_INTERCEPTOR}`, () => { it('call "addGlobalInterceptor"', () => { const addSpy = sinon.spy( - (scanner as any).applicationConfig, 'addGlobalInterceptor' + (scanner as any).applicationConfig, + 'addGlobalInterceptor', ); scanner.getApplyProvidersMap()[APP_INTERCEPTOR](null); expect(addSpy.called).to.be.true; @@ -263,7 +269,8 @@ describe('DependenciesScanner', () => { describe(`when token is ${APP_GUARD}`, () => { it('call "addGlobalGuard"', () => { const addSpy = sinon.spy( - (scanner as any).applicationConfig, 'addGlobalGuard' + (scanner as any).applicationConfig, + 'addGlobalGuard', ); scanner.getApplyProvidersMap()[APP_GUARD](null); expect(addSpy.called).to.be.true; @@ -272,7 +279,8 @@ describe('DependenciesScanner', () => { describe(`when token is ${APP_PIPE}`, () => { it('call "addGlobalPipe"', () => { const addSpy = sinon.spy( - (scanner as any).applicationConfig, 'addGlobalPipe' + (scanner as any).applicationConfig, + 'addGlobalPipe', ); scanner.getApplyProvidersMap()[APP_PIPE](null); expect(addSpy.called).to.be.true; @@ -281,7 +289,8 @@ describe('DependenciesScanner', () => { describe(`when token is ${APP_FILTER}`, () => { it('call "addGlobalFilter"', () => { const addSpy = sinon.spy( - (scanner as any).applicationConfig, 'addGlobalFilter' + (scanner as any).applicationConfig, + 'addGlobalFilter', ); scanner.getApplyProvidersMap()[APP_FILTER](null); expect(addSpy.called).to.be.true; diff --git a/src/microservices/client/client-tcp.ts b/src/microservices/client/client-tcp.ts index b25da3b0167..8887e72c642 100644 --- a/src/microservices/client/client-tcp.ts +++ b/src/microservices/client/client-tcp.ts @@ -38,10 +38,10 @@ export class ClientTCP extends ClientProxy { } protected async sendSingleMessage(msg, callback: (...args) => any) { - const sendMessage = socket => { - socket.sendMessage(msg); - socket.on(MESSAGE_EVENT, buffer => - this.handleResponse(socket, callback, buffer), + const sendMessage = sock => { + sock.sendMessage(msg); + sock.on(MESSAGE_EVENT, buffer => + this.handleResponse(sock, callback, buffer), ); }; if (this.isConnected) { diff --git a/src/microservices/exceptions/rpc-exceptions-handler.ts b/src/microservices/exceptions/rpc-exceptions-handler.ts index ecaaf1755fd..4eb95b70b6c 100644 --- a/src/microservices/exceptions/rpc-exceptions-handler.ts +++ b/src/microservices/exceptions/rpc-exceptions-handler.ts @@ -17,9 +17,8 @@ export class RpcExceptionsHandler { return filterResult$; } const status = 'error'; + let message: any = messages.UNKNOWN_EXCEPTION_MESSAGE; if (!(exception instanceof RpcException)) { - const message = messages.UNKNOWN_EXCEPTION_MESSAGE; - const isError = isObject(exception) && (exception as Error).message; const loggerArgs = isError ? [(exception as Error).message, (exception as Error).stack] @@ -30,7 +29,7 @@ export class RpcExceptionsHandler { return Observable.throw({ status, message }); } const res = exception.getError(); - const message = isObject(res) ? res : { status, message: res }; + message = isObject(res) ? res : { status, message: res }; return Observable.throw(message); } diff --git a/src/microservices/nest-microservice.ts b/src/microservices/nest-microservice.ts index 5affdc6cf46..82dcfed4487 100644 --- a/src/microservices/nest-microservice.ts +++ b/src/microservices/nest-microservice.ts @@ -46,7 +46,7 @@ export class NestMicroservice extends NestApplicationContext private readonly applicationConfig: ApplicationConfig, ) { super(container, [], null); - + const ioAdapter = IoAdapter ? new IoAdapter() : null; this.applicationConfig.setIoAdapter(ioAdapter); this.microservicesModule.setup(container, this.applicationConfig); @@ -58,12 +58,13 @@ export class NestMicroservice extends NestApplicationContext this.server = strategy ? strategy : ServerFactory.create(this.microserviceConfig); - + this.selectContextModule(); } public setupModules() { - this.socketModule && this.socketModule.setup(this.container, this.applicationConfig); + this.socketModule && + this.socketModule.setup(this.container, this.applicationConfig); this.microservicesModule.setupClients(this.container); this.setupListeners(); @@ -109,7 +110,7 @@ export class NestMicroservice extends NestApplicationContext } public async listenAsync(): Promise { - return await new Promise((resolve) => this.listen(resolve)); + return await new Promise(resolve => this.listen(resolve)); } public close() { diff --git a/src/websockets/exceptions/ws-exceptions-handler.ts b/src/websockets/exceptions/ws-exceptions-handler.ts index 97d1f533eb2..56401d73b32 100644 --- a/src/websockets/exceptions/ws-exceptions-handler.ts +++ b/src/websockets/exceptions/ws-exceptions-handler.ts @@ -12,12 +12,12 @@ export class WsExceptionsHandler { if (this.invokeCustomFilters(exception, client) || !client.emit) return; const status = 'error'; + let message: any = messages.UNKNOWN_EXCEPTION_MESSAGE; if (!(exception instanceof WsException)) { - const message = messages.UNKNOWN_EXCEPTION_MESSAGE; return client.emit('exception', { status, message }); } const result = exception.getError(); - const message = isObject(result) + message = isObject(result) ? result : { status,