Skip to content

Commit 3d176cb

Browse files
fxxjdeddLeoYuan
authored andcommitted
chore: convert devMode to standard spec format using metadataTransducer
fix: alibaba#283
1 parent 0c6bca3 commit 3d176cb

File tree

18 files changed

+112
-82
lines changed

18 files changed

+112
-82
lines changed

packages/designer/src/component-meta.ts

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
import { deprecate } from '@alilc/lowcode-utils';
1717
import { computed, engineConfig } from '@alilc/lowcode-editor-core';
1818
import EventEmitter from 'events';
19-
19+
import { componentDefaults, legacyIssues } from './transducers';
2020
import { isNode, Node, ParentalNode } from './document';
2121
import { Designer } from './designer';
2222
import { intlNode } from './locale';
@@ -397,47 +397,6 @@ export function getRegisteredMetadataTransducers(): MetadataTransducer[] {
397397
return metadataTransducers;
398398
}
399399

400-
registerMetadataTransducer((metadata) => {
401-
const { configure, componentName } = metadata;
402-
const { component = {} } = configure;
403-
if (!component.nestingRule) {
404-
let m;
405-
// uri match xx.Group set subcontrolling: true, childWhiteList
406-
// eslint-disable-next-line no-cond-assign
407-
if ((m = /^(.+)\.Group$/.exec(componentName))) {
408-
// component.subControlling = true;
409-
if (!component.nestingRule) {
410-
component.nestingRule = {
411-
childWhitelist: [`${m[1]}`],
412-
};
413-
}
414-
// eslint-disable-next-line no-cond-assign
415-
} else if ((m = /^(.+)\.Node$/.exec(componentName))) {
416-
// uri match xx.Node set selfControlled: false, parentWhiteList
417-
// component.selfControlled = false;
418-
component.nestingRule = {
419-
parentWhitelist: [`${m[1]}`, componentName],
420-
};
421-
// eslint-disable-next-line no-cond-assign
422-
} else if ((m = /^(.+)\.(Item|Node|Option)$/.exec(componentName))) {
423-
// uri match .Item .Node .Option set parentWhiteList
424-
component.nestingRule = {
425-
parentWhitelist: [`${m[1]}`],
426-
};
427-
}
428-
}
429-
// if (component.isModal == null && /Dialog/.test(componentName)) {
430-
// component.isModal = true;
431-
// }
432-
return {
433-
...metadata,
434-
configure: {
435-
...configure,
436-
component,
437-
},
438-
};
439-
});
440-
441400
const builtinComponentActions: ComponentAction[] = [
442401
{
443402
name: 'remove',
@@ -544,3 +503,6 @@ export function modifyBuiltinComponentAction(
544503
handle(builtinAction);
545504
}
546505
}
506+
507+
registerMetadataTransducer(legacyIssues, 2, 'legacy-issues'); // should use a high level priority, eg: 2
508+
registerMetadataTransducer(componentDefaults, 100, 'component-defaults');

packages/designer/src/designer/designer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ export class Designer {
521521
const designer = this;
522522
designer._componentMetasMap.forEach((config, key) => {
523523
const metaData = config.getMetadata();
524-
if (metaData.devMode === 'lowcode') {
524+
if (metaData.devMode === 'lowCode') {
525525
maps[key] = metaData.schema;
526526
} else {
527527
const view = metaData.configure.advanced?.view;

packages/designer/src/document/document-model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export interface ComponentMap {
2626
destructuring?: boolean;
2727
exportName?: string;
2828
subName?: string;
29-
devMode?: 'lowcode' | 'procode';
29+
devMode?: 'lowCode' | 'proCode';
3030
}
3131

3232
export class DocumentModel {
@@ -667,7 +667,7 @@ export class DocumentModel {
667667
});
668668
} else {
669669
componentsMap.push({
670-
devMode: 'lowcode',
670+
devMode: 'lowCode',
671671
componentName,
672672
});
673673
}

packages/designer/src/document/node/node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1189,7 +1189,7 @@ export function isRootNode(node: Node): node is RootNode {
11891189
}
11901190

11911191
export function isLowCodeComponent(node: Node): boolean {
1192-
return node.componentMeta?.getMetadata().devMode === 'lowcode';
1192+
return node.componentMeta?.getMetadata().devMode === 'lowCode';
11931193
}
11941194

11951195
export function getZLevelTop(child: Node, zLevel: number): Node | null {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { TransformedComponentMetadata as Metadata } from '@alilc/lowcode-types';
2+
3+
export function legacyIssues(metadata: Metadata): Metadata {
4+
const { devMode } = metadata;
5+
return {
6+
...metadata,
7+
devMode: devMode?.replace(/(low|pro)code/, '$1Code') as Metadata['devMode'],
8+
};
9+
}
10+
11+
export function componentDefaults(metadata: Metadata): Metadata {
12+
const { configure, componentName } = metadata;
13+
const { component = {} } = configure;
14+
if (!component.nestingRule) {
15+
let m;
16+
// uri match xx.Group set subcontrolling: true, childWhiteList
17+
// eslint-disable-next-line no-cond-assign
18+
if ((m = /^(.+)\.Group$/.exec(componentName))) {
19+
// component.subControlling = true;
20+
component.nestingRule = {
21+
childWhitelist: [`${m[1]}`],
22+
};
23+
// eslint-disable-next-line no-cond-assign
24+
} else if ((m = /^(.+)\.Node$/.exec(componentName))) {
25+
// uri match xx.Node set selfControlled: false, parentWhiteList
26+
// component.selfControlled = false;
27+
component.nestingRule = {
28+
parentWhitelist: [`${m[1]}`, componentName],
29+
};
30+
// eslint-disable-next-line no-cond-assign
31+
} else if ((m = /^(.+)\.(Item|Node|Option)$/.exec(componentName))) {
32+
// uri match .Item .Node .Option set parentWhiteList
33+
component.nestingRule = {
34+
parentWhitelist: [`${m[1]}`],
35+
};
36+
}
37+
}
38+
// if (component.isModal == null && /Dialog/.test(componentName)) {
39+
// component.isModal = true;
40+
// }
41+
return {
42+
...metadata,
43+
configure: {
44+
...configure,
45+
component,
46+
},
47+
};
48+
}

packages/designer/tests/document/document-model/__snapshots__/document-model.test.ts.snap

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,59 +5,59 @@ Object {
55
"componentsMap": Array [
66
Object {
77
"componentName": "PageHeader",
8-
"devMode": "lowcode",
8+
"devMode": "lowCode",
99
},
1010
Object {
1111
"componentName": "RootHeader",
12-
"devMode": "lowcode",
12+
"devMode": "lowCode",
1313
},
1414
Object {
1515
"componentName": "TextField",
16-
"devMode": "lowcode",
16+
"devMode": "lowCode",
1717
},
1818
Object {
1919
"componentName": "Column",
20-
"devMode": "lowcode",
20+
"devMode": "lowCode",
2121
},
2222
Object {
2323
"componentName": "SelectField",
24-
"devMode": "lowcode",
24+
"devMode": "lowCode",
2525
},
2626
Object {
2727
"componentName": "ColumnsLayout",
28-
"devMode": "lowcode",
28+
"devMode": "lowCode",
2929
},
3030
Object {
3131
"componentName": "CardContent",
32-
"devMode": "lowcode",
32+
"devMode": "lowCode",
3333
},
3434
Object {
3535
"componentName": "Card",
36-
"devMode": "lowcode",
36+
"devMode": "lowCode",
3737
},
3838
Object {
3939
"componentName": "Button",
40-
"devMode": "lowcode",
40+
"devMode": "lowCode",
4141
},
4242
Object {
4343
"componentName": "Div",
44-
"devMode": "lowcode",
44+
"devMode": "lowCode",
4545
},
4646
Object {
4747
"componentName": "Form",
48-
"devMode": "lowcode",
48+
"devMode": "lowCode",
4949
},
5050
Object {
5151
"componentName": "RootContent",
52-
"devMode": "lowcode",
52+
"devMode": "lowCode",
5353
},
5454
Object {
5555
"componentName": "RootFooter",
56-
"devMode": "lowcode",
56+
"devMode": "lowCode",
5757
},
5858
Object {
5959
"componentName": "Page",
60-
"devMode": "lowcode",
60+
"devMode": "lowCode",
6161
},
6262
],
6363
"componentsTree": Array [

packages/designer/tests/document/document-model/document-model.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ describe('document-model 测试', () => {
175175
{ componentName: 'Other', package: '@ali/vc-other' }
176176
);
177177
expect(comps.find(comp => comp.componentName === 'Page')).toEqual(
178-
{ componentName: 'Page', devMode: 'lowcode' }
178+
{ componentName: 'Page', devMode: 'lowCode' }
179179
);
180180
});
181181

packages/designer/tests/fixtures/component-metadata/button.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ComponentMetadata } from "@alilc/lowcode-types";
12
export default {
23
componentName: 'Button',
34
npm: {
@@ -6,7 +7,7 @@ export default {
67
},
78
title: '按钮',
89
docUrl: 'https://github.com/alibaba/lowcode-materials/tree/main/docs',
9-
devMode: 'procode',
10+
devMode: 'proCode',
1011
tags: ['布局'],
1112
configure: {
1213
props: [
@@ -304,4 +305,4 @@ export default {
304305
],
305306
autoruns: [],
306307
},
307-
};
308+
} as ComponentMetadata;

packages/designer/tests/fixtures/component-metadata/dialog.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ComponentMetadata } from "@alilc/lowcode-types";
12
export default {
23
componentName: 'Dialog',
34
npm: {
@@ -6,7 +7,7 @@ export default {
67
},
78
title: '容器',
89
docUrl: 'https://github.com/alibaba/lowcode-materials/tree/main/docs',
9-
devMode: 'procode',
10+
devMode: 'proCode',
1011
tags: ['布局'],
1112
configure: {
1213
props: [
@@ -273,4 +274,4 @@ export default {
273274
],
274275
autoruns: [],
275276
},
276-
};
277+
} as ComponentMetadata;

packages/designer/tests/fixtures/component-metadata/div.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ComponentMetadata } from "@alilc/lowcode-types";
12
export default {
23
componentName: 'Div',
34
npm: {
@@ -6,7 +7,7 @@ export default {
67
},
78
title: '容器',
89
docUrl: 'https://github.com/alibaba/lowcode-materials/tree/main/docs',
9-
devMode: 'procode',
10+
devMode: 'proCode',
1011
tags: ['布局'],
1112
configure: {
1213
props: [
@@ -279,4 +280,4 @@ export default {
279280
],
280281
autoruns: [],
281282
},
282-
};
283+
} as ComponentMetadata;

0 commit comments

Comments
 (0)