Files
dspace-angular/src/modules/app/server-app.module.ts
2020-06-30 16:42:58 +02:00

92 lines
3.0 KiB
TypeScript

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ServerModule } from '@angular/platform-server';
import { RouterModule } from '@angular/router';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { AppComponent } from '../../app/app.component';
import { AppModule } from '../../app/app.module';
import { DSpaceServerTransferStateModule } from '../transfer-state/dspace-server-transfer-state.module';
import { DSpaceTransferState } from '../transfer-state/dspace-transfer-state.service';
import { TranslateJson5UniversalLoader } from '../../ngx-translate-loaders/translate-json5-universal.loader';
import { CookieService } from '../../app/core/services/cookie.service';
import { ServerCookieService } from '../../app/core/services/server-cookie.service';
import { AuthService } from '../../app/core/auth/auth.service';
import { ServerAuthService } from '../../app/core/auth/server-auth.service';
import { Angulartics2GoogleAnalytics } from 'angulartics2/ga';
import { AngularticsMock } from '../../app/shared/mocks/angulartics.service.mock';
import { SubmissionService } from '../../app/submission/submission.service';
import { ServerSubmissionService } from '../../app/submission/server-submission.service';
import { Angulartics2DSpace } from '../../app/statistics/angulartics/dspace-provider';
import { Angulartics2RouterlessModule } from 'angulartics2/routerlessmodule';
import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader';
import { ServerLocaleService } from 'src/app/core/locale/server-locale.service';
import { LocaleService } from 'src/app/core/locale/locale.service';
export function createTranslateLoader() {
return new TranslateJson5UniversalLoader('dist/server/assets/i18n/', '.json5');
}
@NgModule({
bootstrap: [AppComponent],
imports: [
ModuleMapLoaderModule,
BrowserModule.withServerTransition({
appId: 'dspace-angular'
}),
RouterModule.forRoot([], {
useHash: false
}),
NoopAnimationsModule,
DSpaceServerTransferStateModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: []
}
}),
Angulartics2RouterlessModule.forRoot(),
ServerModule,
AppModule
],
providers: [
{
provide: Angulartics2GoogleAnalytics,
useClass: AngularticsMock
},
{
provide: Angulartics2DSpace,
useClass: AngularticsMock
},
{
provide: AuthService,
useClass: ServerAuthService
},
{
provide: CookieService,
useClass: ServerCookieService
},
{
provide: SubmissionService,
useClass: ServerSubmissionService
},
{
provide: LocaleService,
useClass: ServerLocaleService
}
]
})
export class ServerAppModule {
constructor(
private transferState: DSpaceTransferState,
) {
this.transferState.transfer();
}
}