import appIndex from '../../index.json'; import { IEpochWindow } from '../interface/IEpochWindow'; const appCode = appIndex.app; const epochWindow: IEpochWindow = window as any; export function getBaseComponent(ctx, ...components) { const out = {}; components.forEach((name) => { out[name] = ctx.context.getComponentDefinition(name); }); return out; } export function registerPage(Page, pageCode) { const Engine = epochWindow.LatticeEngine; if (!Engine || !pageCode || !Page) { return; } // register page as a component const typeName = `${pageCode}@${appCode}`; Engine.registerNativePage(Page, typeName); // local development if ( process.env.NODE_ENV !== 'production' && !epochWindow.pageJson && !epochWindow.epochPage ) { const pageJson = { schemaVersion: '1.1', componentCode: 'MgHKvtaU', data: { layout: [{ id: 'vHKlnJHg' }], request: {}, component: { vHKlnJHg: { componentType: 'code', id: 'vHKlnJHg', type: `epoch_native.${typeName}`, props: {}, }, }, data: {}, module: {}, rule: [], action: '', model: {}, style: '', }, schemaType: 'pc', componentName: 'world', }; const LatticeEngineConfig = epochWindow.LatticeEngineConfig || { appCode }; const engine = new epochWindow.LatticeEngine(LatticeEngineConfig); engine.render(pageJson); } }