Добавлен динамический модуль 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": {
|
"compilerOptions": {
|
||||||
"tsConfigPath": "libs/redmine-issues-cache-writer/tsconfig.lib.json"
|
"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": {
|
"compilerOptions": {
|
||||||
|
|
|
||||||
|
|
@ -81,10 +81,11 @@
|
||||||
],
|
],
|
||||||
"moduleNameMapper": {
|
"moduleNameMapper": {
|
||||||
"^@app/event-emitter(|/.*)$": "<rootDir>/libs/event-emitter/src/$1",
|
"^@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": [
|
"workspaces": [
|
||||||
"libs/redmine-types"
|
"libs/redmine-types"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -14,6 +14,7 @@ import { RedmineEventsGateway } from '@app/event-emitter/events/redmine-events.g
|
||||||
import { RedmineTypes } from '@app/redmine-types/index';
|
import { RedmineTypes } from '@app/redmine-types/index';
|
||||||
import { CouchDb } from './datasources/couchdb';
|
import { CouchDb } from './datasources/couchdb';
|
||||||
import { Users } from './datasources/users';
|
import { Users } from './datasources/users';
|
||||||
|
import { RedmineDataLoaderModule } from '@app/redmine-data-loader';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
|
|
@ -22,6 +23,10 @@ import { Users } from './datasources/users';
|
||||||
issueDocumentScopeProvider: Issues.getDatasource,
|
issueDocumentScopeProvider: Issues.getDatasource,
|
||||||
}),
|
}),
|
||||||
ConfigModule.forRoot({ load: [configuration] }),
|
ConfigModule.forRoot({ load: [configuration] }),
|
||||||
|
RedmineDataLoaderModule.register({
|
||||||
|
issueDocumentScopeProvider: Issues.getDatasource,
|
||||||
|
userDocumentScopeProvider: Users.getDatasource,
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
controllers: [AppController, MainController],
|
controllers: [AppController, MainController],
|
||||||
providers: [AppService, Issues, CouchDb, Users],
|
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/$1",
|
||||||
"@app/event-emitter": "<rootDir>/../libs/event-emitter/src",
|
"@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/$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/*": [
|
"@app/redmine-types/*": [
|
||||||
"libs/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