UNPKG

nestjs-pact

Version:

Injectable Pact.js Consumer/Producer for NestJS

94 lines 4.7 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var PactConsumerCoreModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.PactConsumerCoreModule = void 0; const common_1 = require("@nestjs/common"); const pact_provider_1 = require("../providers/pact.provider"); const pact_factory_service_1 = require("../services/pact-factory.service"); const pact_module_providers_enum_1 = require("../common/pact-module-providers.enum"); const provider_factory_1 = require("../common/provider-factory"); const pact_publisher_provider_1 = require("../providers/pact-publisher.provider"); let PactConsumerCoreModule = PactConsumerCoreModule_1 = class PactConsumerCoreModule { static register(options) { const consumerOptProvider = provider_factory_1.ProviderFactory.create(pact_module_providers_enum_1.PactModuleProviders.ConsumerOptions, options.consumer); const publisherOptProvider = provider_factory_1.ProviderFactory.create(pact_module_providers_enum_1.PactModuleProviders.PublicationOptions, options.publication); return { module: PactConsumerCoreModule_1, exports: [pact_factory_service_1.PactFactory, pact_publisher_provider_1.PactPublisherProvider], providers: [consumerOptProvider, publisherOptProvider, pact_provider_1.PactProvider, pact_publisher_provider_1.PactPublisherProvider, pact_factory_service_1.PactFactory], }; } static registerAsync(options) { return { module: PactConsumerCoreModule_1, exports: [pact_factory_service_1.PactFactory, pact_publisher_provider_1.PactPublisherProvider], imports: options.imports, providers: [...this.createAsyncProviders(options), pact_provider_1.PactProvider, pact_publisher_provider_1.PactPublisherProvider, pact_factory_service_1.PactFactory], }; } static createAsyncProviders(options) { if (options.useExisting || options.useFactory) { return this.createAsyncOptionsProviders(options); } const { useClass } = options; return [ ...this.createAsyncOptionsProviders(options), { provide: useClass, useClass, }, ]; } static createAsyncOptionsProviders(options) { if (options.useFactory) { return [ { provide: pact_module_providers_enum_1.PactModuleProviders.ConsumerOptions, useFactory: async () => { const { consumer } = await options.useFactory(); return consumer; }, inject: options.inject || [], }, { provide: pact_module_providers_enum_1.PactModuleProviders.PublicationOptions, useFactory: async () => { const { publication } = await options.useFactory(); return publication; }, inject: options.inject || [], }, ]; } const inject = [(options.useClass || options.useExisting)]; return [ { provide: pact_module_providers_enum_1.PactModuleProviders.ConsumerOptions, useFactory: async (optionsFactory) => { const { consumer } = await optionsFactory.createPactConsumerOptions(); return consumer; }, inject, }, { provide: pact_module_providers_enum_1.PactModuleProviders.PublicationOptions, useFactory: async (optionsFactory) => { const { publication } = await optionsFactory.createPactConsumerOptions(); return publication; }, inject, }, ]; } }; PactConsumerCoreModule = PactConsumerCoreModule_1 = __decorate([ (0, common_1.Module)({}) ], PactConsumerCoreModule); exports.PactConsumerCoreModule = PactConsumerCoreModule; //# sourceMappingURL=pact-consumer-core.module.js.map