Your browser does not support SVG

File

src/app/core/core.module.ts

Declarations

Imports

Exports

import { CommonModule } from '@angular/common';
import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { NgModule, Optional, SkipSelf } from '@angular/core';
import { EffectsModule } from '@ngrx/effects';
import { RouterStateSerializer, StoreRouterConnectingModule } from '@ngrx/router-store';
import { StoreModule } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { AmplifyAngularModule, AmplifyService } from 'aws-amplify-angular';
import { environment } from '../../environments/environment';
import { AnimationsService } from './animations/animations.service';
import { routeAnimations, ROUTE_ANIMATIONS_ELEMENTS } from './animations/route.animations';
import { AuthGuardService } from './auth/auth-guard.service';
import { AuthEffects } from './auth/auth.effects';
import { selectAuth, selectCurrentUser, selectIsAuthenticated } from './auth/auth.selectors';
import { AppState, metaReducers, reducers, selectRouterState } from './core.state';
import { HttpErrorInterceptor } from './http-interceptors/http-error.interceptor';
import { LocalStorageService } from './local-storage/local-storage.service';
import { Md5Pipe } from './pipes/md5.pipe';
import { CustomSerializer } from './router/custom-serializer';
import { APIService } from './services/API.service';
import { ActionSettingsChangeLanguage, SettingsActions, SettingsActionTypes } from './settings/settings.actions';
import { SettingsEffects } from './settings/settings.effects';
import { selectEffectiveTheme, selectSettingsLanguage } from './settings/settings.selectors';
import { TitleService } from './title/title.service';



export { TitleService, selectAuth, routeAnimations, AppState, APIService, LocalStorageService, selectIsAuthenticated, selectCurrentUser, ROUTE_ANIMATIONS_ELEMENTS, AnimationsService, AuthGuardService, selectRouterState, SettingsActions, SettingsActionTypes, ActionSettingsChangeLanguage, selectEffectiveTheme, selectSettingsLanguage };

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(
    http,
    `${environment.i18nPrefix}/assets/i18n/`,
    '.json'
  );
}

@NgModule({
  imports: [
    //Amplify
    AmplifyAngularModule,

    // angular
    CommonModule,
    HttpClientModule,

    // ngrx
    StoreModule.forRoot(reducers, { metaReducers }),
    StoreRouterConnectingModule.forRoot(),
    EffectsModule.forRoot([AuthEffects, SettingsEffects]),
    environment.production
      ? []
      : StoreDevtoolsModule.instrument({
          name: 'Roleame'
        }),

    // 3rd party
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      }
    })
  ],
  declarations: [Md5Pipe],
  providers: [
    { provide: AmplifyService },
    { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true },
    { provide: RouterStateSerializer, useClass: CustomSerializer },
    { provide: APIService }
  ],
  exports: [TranslateModule, Md5Pipe]
})
export class CoreModule {
  constructor(
    @Optional()
    @SkipSelf()
    parentModule: CoreModule
  ) {
    if (parentModule) {
      throw new Error('CoreModule is already loaded. Import only in AppModule');
    }
  }
}

results matching ""

    No results matching ""