import { mergeConcatMany } from 'oak-domain/lib/utils/lodash'; import BackendRuntimeContext from '@project/context/BackendRuntimeContext'; import FrontendRuntimeContext from '@project/context/FrontendRuntimeContext'; import connector from '@project/config/connector'; import { EntityDict, storageSchema } from '@project/oak-app-domain'; import checkers from '@project/checkers'; import { create as createFeatures, FeatureDict } from '@project/features'; import common from '@project/configuration'; import render from '@project/configuration/render'; // import ogbCheckers from 'oak-general-business/es/checkers'; // import { create as createOgbFeatures, FeatureDict as OgbFeatureDict } from 'oak-general-business/es/features'; // import ogbCommon from 'oak-general-business/es/configuration'; // import ogbRender from 'oak-general-business/es/configuration/render'; import { initialize as initFrontend } from 'oak-frontend-base/es/initialize'; import { BasicFeatures } from 'oak-frontend-base/es/features'; export default function initialize() { const totalCheckers = mergeConcatMany([checkers] as Array)!, totalCommon = mergeConcatMany([common] as Array)!, totalRender = mergeConcatMany([render] as Array)!; const totalFeatures = {} as FeatureDict & BasicFeatures; // @ts-ignore const { features } = initFrontend( storageSchema, (store) => new FrontendRuntimeContext(store, totalFeatures), connector, totalCheckers, totalCommon, totalRender ); Object.assign(totalFeatures, features); const appFeatures = createFeatures(totalFeatures); Object.assign(totalFeatures, appFeatures); return { features: totalFeatures, }; }