diff --git a/packages/designer/src/builtin-simulator/host.ts b/packages/designer/src/builtin-simulator/host.ts index 6c925641a..416da039b 100644 --- a/packages/designer/src/builtin-simulator/host.ts +++ b/packages/designer/src/builtin-simulator/host.ts @@ -189,6 +189,7 @@ export class BuiltinSimulatorHost implements ISimulatorHost(() => this.componentsAsset); this.injectionConsumer = new ResourceConsumer(() => { return { + appHelper: engineConfig.get('appHelper'), i18n: this.project.i18n, }; }); diff --git a/packages/editor-core/src/config.ts b/packages/editor-core/src/config.ts index cd0f9f4ba..cc4eef309 100644 --- a/packages/editor-core/src/config.ts +++ b/packages/editor-core/src/config.ts @@ -81,6 +81,17 @@ export interface EngineOptions { // 是否开启在 render 阶段开启 filter reducer,默认值:false enableFilterReducerInRenderStage?: boolean; }; + + /** + * 与 react-renderer 的 appHelper 一致, https://lowcode-engine.cn/docV2/nhilce#appHelper + */ + appHelper?: { + /** 全局公共函数 */ + utils?: Record; + /** 全局常量 */ + constants?: Record; + }; + [key: string]: any; } @@ -91,7 +102,7 @@ export class EngineConfig { string, Array<{ once?: boolean; - resolve:(data: any) => void; + resolve: (data: any) => void; }> >(); diff --git a/packages/react-simulator-renderer/src/renderer.ts b/packages/react-simulator-renderer/src/renderer.ts index 73c0126ba..20cdbeba2 100644 --- a/packages/react-simulator-renderer/src/renderer.ts +++ b/packages/react-simulator-renderer/src/renderer.ts @@ -31,6 +31,7 @@ import { createMemoryHistory, MemoryHistory } from 'history'; import Slot from './builtin-components/slot'; import Leaf from './builtin-components/leaf'; import { withQueryParams, parseQuery } from './utils/url'; +import { merge } from 'lodash'; const loader = new AssetLoader(); configure({ enforceActions: 'never' }); @@ -322,6 +323,7 @@ export class SimulatorRendererContainer implements BuiltinSimulatorRenderer { ...this._appContext, }; newCtx.utils.i18n.messages = data.i18n || {}; + merge(newCtx, data.appHelper || {}); this._appContext = newCtx; }); }