Created
February 16, 2017 18:34
-
-
Save jrmcdona/28e3dee160cd848070f8530c30fcd9d1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { NgModule } from '@angular/core'; | |
import { RouterModule } from '@angular/router'; | |
import { UniversalModule } from 'angular2-universal'; | |
import { FormsModule } from '@angular/forms'; | |
import { HttpModule, Http, BaseRequestOptions, Response, ResponseOptions, RequestMethod, XHRBackend, RequestOptions } from '@angular/http'; | |
import { MockBackend, MockConnection } from '@angular/http/testing'; | |
import { Store, StoreModule, combineReducers } from '@ngrx/store'; | |
import { RouterStoreModule } from '@ngrx/router-store'; | |
import { EffectsModule } from '@ngrx/effects'; | |
import { StoreDevtoolsModule } from '@ngrx/store-devtools'; | |
import { compose } from '@ngrx/core/compose'; | |
import { AmbassadorEffects } from './effects/ambassador.effects'; | |
import { AdminUserEffects } from './effects'; | |
import { routes } from './routes'; | |
import { reducer } from './reducers'; | |
//Components and Services | |
import { AppComponent } from './components/app/app.component' | |
import { NavMenuComponent } from './components/navmenu/navmenu.component'; | |
import { AmbassadorService } from './services'; | |
//import { AdminUserService } from './services'; | |
import { AuthService } from './services'; | |
import { AmbassadorActions } from './actions'; | |
import { AdminUserActions } from './actions'; | |
import { HomeComponent } from './components/home/home.component'; | |
import { FetchDataComponent } from './components/fetchdata/fetchdata.component'; | |
import { CounterComponent } from './components/counter/counter.component'; | |
import { ProfileComponent } from './components/profile/profile.component'; | |
import { LoginComponent } from './components/auth/login.component'; | |
import { LoginGuard } from './guards/login.guard'; | |
import { mockBackendProvider } from './mock-backend/mockBackendProvider'; | |
import { ActivityListComponent } from './components/activity/activityList.component'; | |
import { ActivityEditorComponent } from './components/activity/activityEditor.component'; | |
import { RewardEditorComponent } from './components/reward/rewardEditor.component'; | |
import { SweepstakesEditorComponent } from './components/sweepstakes/sweepstakesEditor.component'; | |
import { MissionEditorComponent } from './components/mission/missionEditor.component'; | |
import { localStorageSync } from 'ngrx-store-localstorage'; | |
@NgModule({ | |
bootstrap: [AppComponent], | |
declarations: [ | |
AppComponent, | |
NavMenuComponent, | |
HomeComponent, | |
FetchDataComponent, | |
CounterComponent, | |
ProfileComponent, | |
LoginComponent, | |
ActivityListComponent, | |
ActivityEditorComponent, | |
RewardEditorComponent, | |
SweepstakesEditorComponent, | |
MissionEditorComponent | |
], | |
providers: [ | |
AmbassadorActions, | |
AdminUserActions, | |
AmbassadorService, | |
AuthService, | |
LoginGuard, | |
// providers used to create fake backend | |
mockBackendProvider, | |
BaseRequestOptions, | |
MockBackend, | |
//BaseRequestOptions, | |
//{ | |
// provide: Http, | |
// deps: [MockBackend, BaseRequestOptions, XHRBackend], | |
// useFactory: (backend: MockBackend, options: BaseRequestOptions, realBackend: XHRBackend) => { return new Http(backend, options); } | |
//} | |
], | |
imports: [ | |
UniversalModule, // Must be first import. This automatically imports BrowserModule, HttpModule, and JsonpModule too. | |
FormsModule, | |
HttpModule, | |
RouterModule.forRoot(routes, { useHash: false }), | |
/** | |
* StoreModule.provideStore is imported once in the root module, accepting a reducer | |
* function or object map of reducer functions. If passed an object of | |
* reducers, combineReducers will be run creating your application | |
* meta-reducer. This returns all providers for an @ngrx/store | |
* based application. | |
*/ | |
StoreModule.provideStore( | |
compose( | |
localStorageSync(['reducer'], true), | |
combineReducers | |
)({ reducer }) | |
), | |
/** | |
* @ngrx/router-store keeps router state up-to-date in the store and uses | |
* the store as the single source of truth for the router's state. | |
*/ | |
RouterStoreModule.connectRouter(), | |
/** | |
* Store devtools instrument the store retaining past versions of state | |
* and recalculating new states. This enables powerful time-travel | |
* debugging. | |
* | |
* To use the debugger, install the Redux Devtools extension for either | |
* Chrome or Firefox | |
* | |
* See: https://github.com/zalmoxisus/redux-devtools-extension | |
*/ | |
StoreDevtoolsModule.instrumentOnlyWithExtension(), | |
/** | |
* EffectsModule.run() sets up the effects class to be initialized | |
* immediately when the application starts. | |
* | |
* See: https://github.com/ngrx/effects/blob/master/docs/api.md#run | |
*/ | |
EffectsModule.run(AmbassadorEffects), | |
EffectsModule.run(AdminUserEffects) | |
] | |
}) | |
export class AppModule { | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment