Skip to content
Snippets Groups Projects
core.module.ts 9.2 KiB
Newer Older
William Welling's avatar
William Welling committed
import {
William Welling's avatar
William Welling committed
  NgModule,
  Optional,
William Welling's avatar
William Welling committed
} from '@angular/core';
Art Lowel's avatar
Art Lowel committed
import { CommonModule } from '@angular/common';
import { StoreModule } from '@ngrx/store';
William Welling's avatar
William Welling committed
import { EffectsModule } from '@ngrx/effects';
Giuseppe Digilio's avatar
Giuseppe Digilio committed
import { DynamicFormLayoutService, DynamicFormService, DynamicFormValidationService } from '@ng-dynamic-forms/core';
William Welling's avatar
William Welling committed

import { coreEffects } from './core.effects';
import { coreReducers } from './core.reducers';
Art Lowel's avatar
Art Lowel committed

William Welling's avatar
William Welling committed
import { isNotEmpty } from '../shared/empty.util';
import { ApiService } from '../shared/services/api.service';
import { BrowseEntriesResponseParsingService } from './data/browse-entries-response-parsing.service';
William Welling's avatar
William Welling committed
import { CollectionDataService } from './data/collection-data.service';
import { CommunityDataService } from './data/community-data.service';
Art Lowel's avatar
Art Lowel committed
import { DebugResponseParsingService } from './data/debug-response-parsing.service';
William Welling's avatar
William Welling committed
import { DSOResponseParsingService } from './data/dso-response-parsing.service';
Art Lowel's avatar
Art Lowel committed
import { SearchResponseParsingService } from './data/search-response-parsing.service';
William Welling's avatar
William Welling committed
import { DSpaceRESTv2Service } from './dspace-rest-v2/dspace-rest-v2.service';
Giuseppe Digilio's avatar
Giuseppe Digilio committed
import { FormBuilderService } from '../shared/form/builder/form-builder.service';
import { SectionFormOperationsService } from '../submission/sections/form/section-form-operations.service';
Giuseppe Digilio's avatar
Giuseppe Digilio committed
import { FormService } from '../shared/form/form.service';
Giuseppe's avatar
Giuseppe committed
import { GroupEpersonService } from './eperson/group-eperson.service';
import { HostWindowService } from '../shared/host-window.service';
William Welling's avatar
William Welling committed
import { ItemDataService } from './data/item-data.service';
import { MetadataService } from './metadata/metadata.service';
import { ObjectCacheService } from './cache/object-cache.service';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { RemoteDataBuildService } from './cache/builders/remote-data-build.service';
import { RequestService } from './data/request.service';
Art Lowel's avatar
Art Lowel committed
import { EndpointMapResponseParsingService } from './data/endpoint-map-response-parsing.service';
import { ServerResponseService } from '../shared/services/server-response.service';
import { NativeWindowFactory, NativeWindowService } from '../shared/services/window.service';
import { BrowseService } from './browse/browse.service';
import { BrowseResponseParsingService } from './data/browse-response-parsing.service';
import { ConfigResponseParsingService } from './config/config-response-parsing.service';
import { RouteService } from '../shared/services/route.service';
import { SubmissionDefinitionsConfigService } from './config/submission-definitions-config.service';
import { SubmissionFormsConfigService } from './config/submission-forms-config.service';
import { SubmissionSectionsConfigService } from './config/submission-sections-config.service';
Giuseppe's avatar
Giuseppe committed
import { SubmissionResponseParsingService } from './submission/submission-response-parsing.service';
import { EpersonResponseParsingService } from './eperson/eperson-response-parsing.service';
import { JsonPatchOperationsBuilder } from './json-patch/builder/json-patch-operations-builder';
Giuseppe Digilio's avatar
Giuseppe Digilio committed
import { AuthorityService } from './integration/authority.service';
import { IntegrationResponseParsingService } from './integration/integration-response-parsing.service';
Giuseppe's avatar
Giuseppe committed
import { WorkspaceitemDataService } from './submission/workspaceitem-data.service';
import { UUIDService } from './shared/uuid.service';
import { AuthenticatedGuard } from './auth/authenticated.guard';
import { AuthRequestService } from './auth/auth-request.service';
import { AuthResponseParsingService } from './auth/auth-response-parsing.service';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { AuthInterceptor } from './auth/auth.interceptor';
import { HALEndpointService } from './shared/hal-endpoint.service';
import { FacetValueResponseParsingService } from './data/facet-value-response-parsing.service';
import { FacetValueMapResponseParsingService } from './data/facet-value-map-response-parsing.service';
import { FacetConfigResponseParsingService } from './data/facet-config-response-parsing.service';
Kristof De Langhe's avatar
Kristof De Langhe committed
import { RegistryService } from './registry/registry.service';
import { RegistryMetadataschemasResponseParsingService } from './data/registry-metadataschemas-response-parsing.service';
import { RegistryMetadatafieldsResponseParsingService } from './data/registry-metadatafields-response-parsing.service';
import { RegistryBitstreamformatsResponseParsingService } from './data/registry-bitstreamformats-response-parsing.service';
Giuseppe's avatar
Giuseppe committed
import { WorkflowitemDataService } from './submission/workflowitem-data.service';
import { NotificationsService } from '../shared/notifications/notifications.service';
import { UploaderService } from '../shared/uploader/uploader.service';
Giuseppe's avatar
Giuseppe committed
import { FileService } from './shared/file.service';
import { SubmissionRestService } from './submission/submission-rest.service';
import { BrowseItemsResponseParsingService } from './data/browse-items-response-parsing-service';
import { DSpaceObjectDataService } from './data/dspace-object-data.service';
import { MetadataschemaParsingService } from './data/metadataschema-parsing.service';
lotte's avatar
lotte committed
import { FilteredDiscoveryPageResponseParsingService } from './data/filtered-discovery-page-response-parsing.service';
lotte's avatar
lotte committed
import { CSSVariableService } from '../shared/sass-helper/sass-helper.service';
import { MenuService } from '../shared/menu/menu.service';
import { SubmissionJsonPatchOperationsService } from './submission/submission-json-patch-operations.service';
import { NormalizedObjectBuildService } from './cache/builders/normalized-object-build.service';
import { DSOChangeAnalyzer } from './data/dso-change-analyzer.service';
lotte's avatar
lotte committed
import { ObjectUpdatesService } from './data/object-updates/object-updates.service';
lotte's avatar
lotte committed
import { DefaultChangeAnalyzer } from './data/default-change-analyzer.service';
lotte's avatar
lotte committed
import { SearchService } from '../+search-page/search-service/search.service';
import { RoleService } from './roles/role.service';
import { MyDSpaceGuard } from '../+my-dspace-page/my-dspace.guard';
import { MyDSpaceResponseParsingService } from './data/mydspace-response-parsing.service';
import { ClaimedTaskDataService } from './tasks/claimed-task-data.service';
import { PoolTaskDataService } from './tasks/pool-task-data.service';
import { TaskResponseParsingService } from './tasks/task-response-parsing.service';
import { ThemeService } from './theme/theme.service';
Art Lowel's avatar
Art Lowel committed
const IMPORTS = [
  CommonModule,
  StoreModule.forFeature('core', coreReducers, {}),
  EffectsModule.forFeature(coreEffects)
Art Lowel's avatar
Art Lowel committed
];

const DECLARATIONS = [
Art Lowel's avatar
Art Lowel committed
];

const EXPORTS = [
Art Lowel's avatar
Art Lowel committed
];

const PROVIDERS = [
  AuthenticatedGuard,
  AuthRequestService,
  AuthResponseParsingService,
Art Lowel's avatar
Art Lowel committed
  CommunityDataService,
  DSOResponseParsingService,
  DSpaceRESTv2Service,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  DynamicFormLayoutService,
  DynamicFormService,
  DynamicFormValidationService,
  FormBuilderService,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  FormService,
Giuseppe's avatar
Giuseppe committed
  EpersonResponseParsingService,
  GroupEpersonService,
  HostWindowService,
  ItemDataService,
William Welling's avatar
William Welling committed
  MetadataService,
William Welling's avatar
William Welling committed
  PaginationComponentOptions,
Kristof De Langhe's avatar
Kristof De Langhe committed
  RegistryService,
  NormalizedObjectBuildService,
  RequestService,
Art Lowel's avatar
Art Lowel committed
  EndpointMapResponseParsingService,
  FacetValueResponseParsingService,
  FacetValueMapResponseParsingService,
  FacetConfigResponseParsingService,
  RegistryMetadataschemasResponseParsingService,
  RegistryMetadatafieldsResponseParsingService,
  RegistryBitstreamformatsResponseParsingService,
Art Lowel's avatar
Art Lowel committed
  DebugResponseParsingService,
  SearchResponseParsingService,
  MyDSpaceResponseParsingService,
  BrowseResponseParsingService,
  BrowseEntriesResponseParsingService,
  BrowseItemsResponseParsingService,
  BrowseService,
  ConfigResponseParsingService,
  SubmissionDefinitionsConfigService,
  SubmissionFormsConfigService,
Giuseppe's avatar
Giuseppe committed
  SubmissionRestService,
  SubmissionSectionsConfigService,
Giuseppe's avatar
Giuseppe committed
  SubmissionResponseParsingService,
  SubmissionJsonPatchOperationsService,
Giuseppe's avatar
Giuseppe committed
  JsonPatchOperationsBuilder,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  AuthorityService,
  IntegrationResponseParsingService,
  MetadataschemaParsingService,
  UploaderService,
Giuseppe's avatar
Giuseppe committed
  NotificationsService,
  WorkspaceitemDataService,
  WorkflowitemDataService,
  UploaderService,
  FileService,
  DSpaceObjectDataService,
  DSOChangeAnalyzer,
lotte's avatar
lotte committed
  DefaultChangeAnalyzer,
lotte's avatar
lotte committed
  CSSVariableService,
  MenuService,
lotte's avatar
lotte committed
  ObjectUpdatesService,
lotte's avatar
lotte committed
  SearchService,
  MyDSpaceGuard,
  RoleService,
  TaskResponseParsingService,
  ClaimedTaskDataService,
  PoolTaskDataService,
  ThemeService,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  // register AuthInterceptor as HttpInterceptor
  {
    provide: HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi: true
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  },
  NotificationsService,
lotte's avatar
lotte committed
  FilteredDiscoveryPageResponseParsingService,
  { provide: NativeWindowService, useFactory: NativeWindowFactory }
Art Lowel's avatar
Art Lowel committed
];

@NgModule({
William Welling's avatar
William Welling committed
  imports: [
    ...IMPORTS
  ],
  declarations: [
    ...DECLARATIONS
  ],
  exports: [
    ...EXPORTS
  ],
  providers: [
    ...PROVIDERS
  ]
Art Lowel's avatar
Art Lowel committed
})
export class CoreModule {

  static forRoot(): ModuleWithProviders {
    return {
      ngModule: CoreModule,
Art Lowel's avatar
Art Lowel committed
      providers: [
        ...PROVIDERS
      ]
    };
  }
William Welling's avatar
William Welling committed

  constructor( @Optional() @SkipSelf() parentModule: CoreModule) {
    if (isNotEmpty(parentModule)) {
      throw new Error('CoreModule is already loaded. Import it in the AppModule only');
    }
  }

Art Lowel's avatar
Art Lowel committed
}