fix: 调整 editor-setters 的加载时机

fix: 导出的 Project 不要去修改引擎内部的 project
This commit is contained in:
力皓 2021-01-14 15:50:02 +08:00
parent 9a1178d826
commit 8e667934e4
5 changed files with 11 additions and 8 deletions

View File

@ -1,6 +1,6 @@
import { Editor, Hotkey, hotkey } from '@ali/lowcode-editor-core';
import { Skeleton } from '@ali/lowcode-editor-skeleton';
import { ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext, IDesignerCabin, ILowCodePlugin } from '@ali/lowcode-types';
import { ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext, IDesignerCabin } from '@ali/lowcode-types';
import { getLogger, Logger } from '../utils';
import {
registerMetadataTransducer,

View File

@ -24,7 +24,7 @@ export class LowCodePluginManager implements ILowCodePluginManager {
register(
pluginConfig: (ctx: ILowCodePluginContext, options: CompositeObject) => ILowCodePluginConfig,
options: CompositeObject,
options: CompositeObject = {},
): void {
const ctx = this._getLowCodePluginContext();
const config = pluginConfig(ctx, options);

View File

@ -2,7 +2,8 @@ import { designer } from './editor';
const { project } = designer;
Object.assign(project, {
const visionProject = {};
Object.assign(visionProject, project, {
getSchema(): any {
return this.schema || {};
},
@ -16,4 +17,4 @@ Object.assign(project, {
},
});
export default project;
export default visionProject;

View File

@ -11,7 +11,6 @@ import { Skeleton, SettingsPrimaryPane, registerDefaults } from '@ali/lowcode-ed
import * as skeletonCabin from '@ali/lowcode-editor-skeleton';
import Outline, { OutlineBackupPane, getTreeMaster } from '@ali/lowcode-plugin-outline-pane';
import DesignerPlugin from '@ali/lowcode-plugin-designer';
import builtinSetters from '@ali/lowcode-editor-setters';
import './modules/live-editing';
export * from './modules/editor-types';
@ -20,7 +19,6 @@ export * from './modules/designer-types';
export * from './modules/lowcode-types';
const { hotkey, monitor, getSetter, registerSetter } = editorCabin;
registerSetter(builtinSetters as any);
registerDefaults();
const editor = new Editor();
@ -132,6 +130,9 @@ const getSelection = () => designer.currentDocument?.selection;
};
export async function init(container?: Element) {
// 因为这里的 setter 可能已经用到了 VisualEngine 的 API所以延迟到此加载而不是一开始就加载
const builtinSetters = require('@ali/lowcode-editor-setters').default;
registerSetter(builtinSetters as any);
let engineContainer = container;
if (!engineContainer) {
engineContainer = document.createElement('div');

View File

@ -2,7 +2,8 @@ import { designer } from '@ali/lowcode-engine';
const { project } = designer;
Object.assign(project, {
const visionProject = {};
Object.assign(visionProject, project, {
getSchema(): any {
return this.schema || {};
},
@ -16,4 +17,4 @@ Object.assign(project, {
},
});
export default project;
export default visionProject;