dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_FileModule cluster_FileModule_providers CouchdbFileService CouchdbFileService FileModule FileModule CouchdbFileService->FileModule MockFileService MockFileService MockFileService->FileModule

File

src/app/features/file/file.module.ts

import { Injector, NgModule } from "@angular/core";
import { CouchdbFileService } from "./couchdb-file.service";
import { environment } from "../../../environments/environment";
import { SessionType } from "../../core/session/session-type";
import { FileService } from "./file.service";
import { MockFileService } from "./mock-file.service";
import { serviceProvider } from "../../utils/utils";
import { ComponentRegistry } from "../../dynamic-components";
import { fileComponents } from "./file-components";
import { DefaultDatatype } from "../../core/entity/default-datatype/default.datatype";
import { FileDatatype } from "./file.datatype";
import { PhotoDatatype } from "./photo.datatype";

@NgModule({
  providers: [
    CouchdbFileService,
    MockFileService,
    serviceProvider(FileService, (injector: Injector) => {
      return environment.session_type === SessionType.synced
        ? injector.get(CouchdbFileService)
        : injector.get(MockFileService);
    }),
    { provide: DefaultDatatype, useClass: FileDatatype, multi: true },
    { provide: DefaultDatatype, useClass: PhotoDatatype, multi: true },
  ],
})
export class FileModule {
  constructor(components: ComponentRegistry) {
    components.addAll(fileComponents);
  }
}

results matching ""

    No results matching ""