import { just } from 'readuz'; import { CXF } from '../typings/cxf'; import { App, app, SubscribeToCxf, subscribeToCxf } from './app'; import { DIReader } from './common'; import { Config, createConfig } from './config'; import { OnTrack, onTrack } from './event-handlers'; import { entityProvider, IProvider, Log, log, LogError, logError, loadCxf, LoadCxf, TryCatch, tryCatch, } from './helpers'; import { TrackAction, trackAction } from './track'; export interface IEnv { config: DIReader; cxfProvider: DIReader>; dialogProvider: DIReader>; log: DIReader; logError: DIReader; onTrack: DIReader; app: DIReader; subscribeToCxf: DIReader; trackAction: DIReader; loadCxf: DIReader; tryCatch: DIReader; } export const createEnv = (env: Partial): IEnv => { return { config: just(createConfig({})), cxfProvider: just(entityProvider()), dialogProvider: just(entityProvider()), log: just(log), logError: just(logError), app, subscribeToCxf, onTrack, trackAction, loadCxf: just(loadCxf), tryCatch, ...env, }; };