Добавлен динамический модуль data-loader

This commit is contained in:
Pavel Gnedov 2022-06-18 17:55:26 +07:00
parent 850a26f093
commit e8ac2ad1c4
9 changed files with 73 additions and 3 deletions

View file

@ -0,0 +1,2 @@
export * from './redmine-data-loader.module';
export * from './redmine-data-loader.service';

View file

@ -0,0 +1,32 @@
import { RedmineTypes } from '@app/redmine-types/index';
import { DynamicModule, Module } from '@nestjs/common';
import nano from 'nano';
import { RedmineDataLoaderService } from './redmine-data-loader.service';
@Module({})
export class RedmineDataLoaderModule {
static register(params: {
issueDocumentScopeProvider: () => Promise<
nano.DocumentScope<RedmineTypes.Issue>
>;
userDocumentScopeProvider: () => Promise<
nano.DocumentScope<RedmineTypes.User>
>;
}): DynamicModule {
return {
module: RedmineDataLoaderModule,
providers: [
RedmineDataLoaderService,
{
provide: 'ISSUE_DOCUMENT_SCOPE',
useValue: params.issueDocumentScopeProvider,
},
{
provide: 'USER_DOCUMENT_SCOPE',
useValue: params.userDocumentScopeProvider,
},
],
exports: [RedmineDataLoaderService],
};
}
}

View file

@ -0,0 +1,4 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export class RedmineDataLoaderService {}

View file

@ -0,0 +1,9 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"declaration": true,
"outDir": "../../dist/libs/redmine-data-loader"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "test", "**/*spec.ts"]
}

View file

@ -19,6 +19,15 @@
"compilerOptions": {
"tsConfigPath": "libs/redmine-issues-cache-writer/tsconfig.lib.json"
}
},
"redmine-data-loader": {
"type": "library",
"root": "libs/redmine-data-loader",
"entryFile": "index",
"sourceRoot": "libs/redmine-data-loader/src",
"compilerOptions": {
"tsConfigPath": "libs/redmine-data-loader/tsconfig.lib.json"
}
}
},
"compilerOptions": {

View file

@ -81,7 +81,8 @@
],
"moduleNameMapper": {
"^@app/event-emitter(|/.*)$": "<rootDir>/libs/event-emitter/src/$1",
"^@app/redmine-issues-cache-writer(|/.*)$": "<rootDir>/libs/redmine-issues-cache-writer/src/$1"
"^@app/redmine-issues-cache-writer(|/.*)$": "<rootDir>/libs/redmine-issues-cache-writer/src/$1",
"^@app/redmine-data-loader(|/.*)$": "<rootDir>/libs/redmine-data-loader/src/$1"
}
},
"workspaces": [

View file

@ -14,6 +14,7 @@ import { RedmineEventsGateway } from '@app/event-emitter/events/redmine-events.g
import { RedmineTypes } from '@app/redmine-types/index';
import { CouchDb } from './datasources/couchdb';
import { Users } from './datasources/users';
import { RedmineDataLoaderModule } from '@app/redmine-data-loader';
@Module({
imports: [
@ -22,6 +23,10 @@ import { Users } from './datasources/users';
issueDocumentScopeProvider: Issues.getDatasource,
}),
ConfigModule.forRoot({ load: [configuration] }),
RedmineDataLoaderModule.register({
issueDocumentScopeProvider: Issues.getDatasource,
userDocumentScopeProvider: Users.getDatasource,
}),
],
controllers: [AppController, MainController],
providers: [AppService, Issues, CouchDb, Users],

View file

@ -14,6 +14,8 @@
"@app/event-emitter/(.*)": "<rootDir>/../libs/event-emitter/src/$1",
"@app/event-emitter": "<rootDir>/../libs/event-emitter/src",
"@app/redmine-issues-cache-writer/(.*)": "<rootDir>/../libs/redmine-issues-cache-writer/src/$1",
"@app/redmine-issues-cache-writer": "<rootDir>/../libs/redmine-issues-cache-writer/src"
"@app/redmine-issues-cache-writer": "<rootDir>/../libs/redmine-issues-cache-writer/src",
"@app/redmine-data-loader/(.*)": "<rootDir>/../libs/redmine-data-loader/src/$1",
"@app/redmine-data-loader": "<rootDir>/../libs/redmine-data-loader/src"
}
}

View file

@ -32,6 +32,12 @@
],
"@app/redmine-types/*": [
"libs/redmine-types/*"
],
"@app/redmine-data-loader": [
"libs/redmine-data-loader/src"
],
"@app/redmine-data-loader/*": [
"libs/redmine-data-loader/src/*"
]
}
}