File

lib/common/xml-data-bridge/xml-data-bridge.module.ts

Description

Module responsible for import and export XML-configuration.

Methods

Static forInitializer
forInitializer(TypeormRootModule: DynamicModule)
Parameters :
Name Type Optional
TypeormRootModule DynamicModule No
Returns : DynamicModule
Static forRoot
forRoot(options: XdbModuleOptions)
Parameters :
Name Type Optional Default value
options XdbModuleOptions No { importService: XmlDataBridgeImportService, exportService: XmlDataBridgeExportService, imports: [ LogModule, CacheModule, ExplorerModule.forRoot(), FileModule.forRoot(), MediaModule.forRoot(), UserModule.forRoot(), ], }
Returns : DynamicModule
/*
 * Copyright 2023 Alexander Kiriliuk
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

import { DynamicModule, Module } from "@nestjs/common";
import { XdbModuleOptions } from "./xml-data-bridge.types";
import { XmlDataBridgeImportService } from "./xml-data-bridge-import.service";
import { XmlDataBridgeExportService } from "./xml-data-bridge-export.service";
import { LogModule } from "../../shared/modules/log/log.module";
import { CacheModule } from "../../shared/modules/cache/cache.module";
import { ExplorerModule } from "../explorer/explorer.module";
import { FileModule } from "../file/file.module";
import { MediaModule } from "../media/media.module";
import {
  XdbExportService,
  XdbImportService,
} from "./xml-data-bridge.constants";
import { UserModule } from "../user/user.module";

/**
 * Module responsible for import and export XML-configuration.
 */
@Module({})
export class XmlDataBridgeModule {
  static forRoot(
    options: XdbModuleOptions = {
      importService: XmlDataBridgeImportService,
      exportService: XmlDataBridgeExportService,
      imports: [
        LogModule,
        CacheModule,
        ExplorerModule.forRoot(),
        FileModule.forRoot(),
        MediaModule.forRoot(),
        UserModule.forRoot(),
      ],
    },
  ): DynamicModule {
    return {
      module: XmlDataBridgeModule,
      imports: options.imports,
      providers: [
        {
          provide: XdbImportService,
          useClass: options.importService,
        },
        {
          provide: XdbExportService,
          useClass: options.exportService,
        },
      ],
      exports: [XdbImportService, XdbExportService],
    };
  }

  static forInitializer(TypeormRootModule: DynamicModule): DynamicModule {
    return {
      module: XmlDataBridgeModule,
      imports: [
        LogModule,
        CacheModule,
        ExplorerModule.forRoot(),
        FileModule.forRoot(),
        MediaModule.forRoot(),
        TypeormRootModule,
      ],
      providers: [
        {
          provide: XdbImportService,
          useClass: XmlDataBridgeImportService,
        },
        {
          provide: XdbExportService,
          useClass: XmlDataBridgeExportService,
        },
      ],
      exports: [XdbImportService, XdbExportService],
    };
  }
}

results matching ""

    No results matching ""