/** * @author Martin Karkowski * @email m.karkowski@zema.de * @create date 2018-07-02 03:51:00 * @modify date 2020-09-09 15:55:51 * @desc [description] */ import { IDescriptor } from "../../mod-Assembly-Builder/type/interfaces"; import { BrokerBaseFilesystem } from "../src/Broker-System.FileLoader"; import { IteratorCancel, MultiFunctionChain, SingleFunctionChain } from "../src/Function-Chain"; import { ChainRepository as _ChainRepository } from "../src/Repository"; import { IBroker, IBrokerFilebaseModuleLoader, IChainRepository, IFunctionChain } from "../type/interfaces"; import * as BROKER from "../type/types"; export const TYPES = BROKER.TYPES; // export type Broker = IBrokerFilebaseModuleLoader; export type Broker = IBroker; export type FilebasedBroker = IBrokerFilebaseModuleLoader; export type ChainRepository = IChainRepository; export type FunctionChain = IFunctionChain; export const EXPORT: Array = [ { selector: [TYPES.Broker, TYPES.BrokerFilebased], factorySelector: [TYPES.BrokerFactory, TYPES.BrokerFilebasedFactory], type: BrokerBaseFilesystem, options: { scope: "inSingletonScope" } }, { selector: TYPES.CancelableIteratorForChain, factorySelector: TYPES.CancelableIteratorForChainFactory, type: IteratorCancel }, { selector: TYPES.FunctionChain, factorySelector: TYPES.FunctionChainFactory, type: MultiFunctionChain, options: { addition: { name: "whenTargetTagged", args: ["type", "multi"] } } }, { selector: TYPES.FunctionChain, factorySelector: TYPES.FunctionChainFactory, type: SingleFunctionChain, options: { addition: { name: "whenTargetTagged", args: ["type", "single"] } } }, { selector: TYPES.ChainRepository, factorySelector: TYPES.ChainRepositoryFactory, type: _ChainRepository } ]; export const REQUIRE = ["BROKER", "MODULELOADER"]; export const NAME = "BROKERFILEBASED";