2022-12-22 12:37:33 +08:00

49 lines
1.5 KiB
TypeScript

import { IPublicTypeTransformedComponentMetadata as Metadata } from '@alilc/lowcode-types';
export function legacyIssues(metadata: Metadata): Metadata {
const { devMode } = metadata;
return {
...metadata,
devMode: devMode?.replace(/(low|pro)code/, '$1Code') as Metadata['devMode'],
};
}
export function componentDefaults(metadata: Metadata): Metadata {
const { configure, componentName } = metadata;
const { component = {} } = configure;
if (!component.nestingRule) {
let m;
// uri match xx.Group set subcontrolling: true, childWhiteList
// eslint-disable-next-line no-cond-assign
if ((m = /^(.+)\.Group$/.exec(componentName))) {
// component.subControlling = true;
component.nestingRule = {
childWhitelist: [`${m[1]}`],
};
// eslint-disable-next-line no-cond-assign
} else if ((m = /^(.+)\.Node$/.exec(componentName))) {
// uri match xx.Node set selfControlled: false, parentWhiteList
// component.selfControlled = false;
component.nestingRule = {
parentWhitelist: [`${m[1]}`, componentName],
};
// eslint-disable-next-line no-cond-assign
} else if ((m = /^(.+)\.(Item|Node|Option)$/.exec(componentName))) {
// uri match .Item .Node .Option set parentWhiteList
component.nestingRule = {
parentWhitelist: [`${m[1]}`],
};
}
}
// if (component.isModal == null && /Dialog/.test(componentName)) {
// component.isModal = true;
// }
return {
...metadata,
configure: {
...configure,
component,
},
};
}