Skip to content
Snippets Groups Projects
api.module.ts 1.05 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';
    import { Configuration } from './configuration';
    import { HttpClient } from '@angular/common/http';
    
    
    import { DefaultService } from './api/default.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');
            }
        }
    }