UNPKG

@dxdeveloperexperience/hygie

Version:

Hygie is an easy-to-use Open-Source REST API allowing you to interact with GIT events. This NestJS API expose a set of customizable rules to automate your project's life cycle.

44 lines (41 loc) 1.37 kB
import { Module, HttpModule, DynamicModule } from '@nestjs/common'; import { Rule } from './rule.class'; import { RulesService } from './rules.service'; import { RunnablesService } from '../runnables/runnables.service'; import { RunnableModule } from '../runnables/runnable.module'; import { DataAccessService } from '../data_access/dataAccess.service'; import { DataAccessModule } from '../data_access/dataAccess.module'; import { Visitor } from 'universal-analytics'; export const RulesValues = Object.values(require('./index')).map( rule => rule as Rule, ); const RulesProviders: any = RulesValues.map(rule => ({ provide: rule, useClass: rule as any, })); @Module({ imports: [HttpModule], exports: [RulesService], providers: [ { provide: RulesService, useFactory(runnableService, dataAccessService, ...rules) { return new RulesService(runnableService, dataAccessService, rules); }, inject: [RunnablesService, DataAccessService, ...RulesValues], }, ...RulesProviders, ], }) export class RulesModule { static forRoot(analytics: Visitor, entity: any = null): DynamicModule { return { module: RulesModule, imports: [ DataAccessModule.forRoot(entity), RunnableModule.forRoot(analytics), ], providers: [{ provide: 'GoogleAnalytics', useValue: analytics }], }; } }