39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';
|
|
import { Configuration } from './configuration';
|
|
import { HttpClient } from '@angular/common/http';
|
|
|
|
import { AdminService } from './api/admin.service';
|
|
import { BadwordsService } from './api/badwords.service';
|
|
import { EmailService } from './api/email.service';
|
|
import { HoodsService } from './api/hoods.service';
|
|
import { MastodonService } from './api/mastodon.service';
|
|
import { TelegramService } from './api/telegram.service';
|
|
import { TestService } from './api/test.service';
|
|
import { TriggersService } from './api/triggers.service';
|
|
|
|
@NgModule({
|
|
imports: [],
|
|
declarations: [],
|
|
exports: [],
|
|
providers: []
|
|
})
|
|
export class ApiModule {
|
|
public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {
|
|
return {
|
|
ngModule: ApiModule,
|
|
providers: [ { provide: Configuration, useFactory: configurationFactory } ]
|
|
};
|
|
}
|
|
|
|
constructor( @Optional() @SkipSelf() parentModule: ApiModule,
|
|
@Optional() http: HttpClient) {
|
|
if (parentModule) {
|
|
throw new Error('ApiModule is already loaded. Import in your base AppModule only.');
|
|
}
|
|
if (!http) {
|
|
throw new Error('You need to import the HttpClientModule in your AppModule! \n' +
|
|
'See also https://github.com/angular/angular/issues/20575');
|
|
}
|
|
}
|
|
}
|