ngx-restangular-jc
Version:
35 lines (29 loc) • 1.28 kB
text/typescript
import { ModuleWithProviders, NgModule, Optional, SkipSelf, InjectionToken } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { RESTANGULAR, RestangularFactory } from './ngx-restangular.config';
import { Restangular } from './ngx-restangular';
import { RestangularHttp } from './ngx-restangular-http';
export const CONFIG_OBJ = new InjectionToken<string>('configObj');
({
imports: [HttpClientModule],
providers: [RestangularHttp, Restangular]
})
export class RestangularModule {
constructor(() () parentModule: RestangularModule) {
if (parentModule) {
throw new Error(
'RestangularModule is already loaded. Import it in the AppModule only');
}
}
static forRoot(configFunction?: (provider: any, ...arg: any[]) => void): ModuleWithProviders;
static forRoot(providers?: any[], configFunction?: (provider: any, ...arg: any[]) => void): ModuleWithProviders;
static forRoot(config1?, config2?): ModuleWithProviders {
return {
ngModule: RestangularModule,
providers: [
{provide: CONFIG_OBJ, useValue: [config1, config2]},
{provide: RESTANGULAR, useFactory: RestangularFactory, deps: [CONFIG_OBJ]},
]
};
}
}