Добавлен динамический модуль data-loader
This commit is contained in:
parent
850a26f093
commit
e8ac2ad1c4
9 changed files with 73 additions and 3 deletions
2
libs/redmine-data-loader/src/index.ts
Normal file
2
libs/redmine-data-loader/src/index.ts
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export * from './redmine-data-loader.module';
|
||||
export * from './redmine-data-loader.service';
|
||||
32
libs/redmine-data-loader/src/redmine-data-loader.module.ts
Normal file
32
libs/redmine-data-loader/src/redmine-data-loader.module.ts
Normal 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],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
export class RedmineDataLoaderService {}
|
||||
9
libs/redmine-data-loader/tsconfig.lib.json
Normal file
9
libs/redmine-data-loader/tsconfig.lib.json
Normal 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"]
|
||||
}
|
||||
|
|
@ -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": {
|
||||
|
|
|
|||
|
|
@ -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": [
|
||||
|
|
|
|||
|
|
@ -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],
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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/*"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue