diff --git a/.travis.yml b/.travis.yml index df927493d36..f5d8b966a87 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,7 @@ node_js: - 12 - 10 -script: - - yarn test - - yarn travis:coveralls +script: yarn test && (yarn travis:coveralls || true) jobs: include: diff --git a/packages/ajv/src/pipes/AjvValidationPipe.ts b/packages/ajv/src/pipes/AjvValidationPipe.ts index 17c415cd523..b6b6a34366a 100644 --- a/packages/ajv/src/pipes/AjvValidationPipe.ts +++ b/packages/ajv/src/pipes/AjvValidationPipe.ts @@ -1,6 +1,6 @@ import {ConverterService, getJsonSchema, Inject, IPipe, OverrideProvider, ParamMetadata, ParamTypes, ValidationPipe} from "@tsed/common"; import {isEmpty} from "@tsed/core"; -import {Ajv} from "../services/Ajv"; +import {AJV} from "../services/Ajv"; import {AjvErrorFormatterPipe} from "./AjvErrorFormatterPipe"; @OverrideProvider(ValidationPipe) @@ -11,8 +11,8 @@ export class AjvValidationPipe extends ValidationPipe implements IPipe { @Inject() formatter: AjvErrorFormatterPipe; - @Inject() - ajv: Ajv; + @Inject(AJV) + ajv: AJV; transform(value: any, metadata: ParamMetadata): any { const {schema} = metadata.store.get(AjvValidationPipe) || {}; diff --git a/packages/ajv/src/services/Ajv.spec.ts b/packages/ajv/src/services/Ajv.spec.ts index 0449c6753ef..9548d851a4e 100644 --- a/packages/ajv/src/services/Ajv.spec.ts +++ b/packages/ajv/src/services/Ajv.spec.ts @@ -1,13 +1,13 @@ import {TestContext} from "@tsed/testing"; import * as AjvKlass from "ajv"; import {expect} from "chai"; -import {Ajv} from "./Ajv"; +import {AJV} from "./Ajv"; describe("Ajv", () => { beforeEach(() => TestContext.create()); afterEach(() => TestContext.reset()); it("should create a new Ajv instance", async () => { - const ajv = await TestContext.invoke(Ajv); + const ajv = await TestContext.invoke(AJV); expect(ajv).to.instanceof(AjvKlass); expect( diff --git a/packages/ajv/src/services/Ajv.ts b/packages/ajv/src/services/Ajv.ts index e27bf3b498d..f2706c863c4 100644 --- a/packages/ajv/src/services/Ajv.ts +++ b/packages/ajv/src/services/Ajv.ts @@ -1,19 +1,19 @@ import {Configuration, ProviderScope, registerProvider} from "@tsed/di"; -import * as AjvKlass from "ajv"; +import * as Ajv from "ajv"; import {IAjvSettings} from "../interfaces/IAjvSettings"; // tslint:disable-next-line:variable-name -export const Ajv: any = AjvKlass; -export type Ajv = AjvKlass.Ajv; +export const AJV: any = Symbol.for("AJV"); +export type AJV = Ajv.Ajv; registerProvider({ - provide: Ajv, + provide: AJV, deps: [Configuration], scope: ProviderScope.SINGLETON, useFactory(configuration: Configuration) { const {errorFormat, errorFormatter, options = {}, ...props} = configuration.get("ajv") || {}; - return new AjvKlass({ + return new Ajv({ verbose: false, ...props, ...options