@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
text/typescript
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,
}));
({
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 }],
};
}
}