amis/schemas/convert.js

196 lines
8.4 KiB
JavaScript
Raw Normal View History

2020-05-27 14:57:40 +08:00
// page SubRenderer 类型
(function() {
const renderers = [
'https://houtai.baidu.com/v2/schemas/action.json#',
'https://houtai.baidu.com/v2/schemas/button-group.json#',
'https://houtai.baidu.com/v2/schemas/cards.json#',
'https://houtai.baidu.com/v2/schemas/chart.json#',
'https://houtai.baidu.com/v2/schemas/collapse.json#',
'https://houtai.baidu.com/v2/schemas/divider.json#',
'https://houtai.baidu.com/v2/schemas/crud.json#',
'https://houtai.baidu.com/v2/schemas/date.json#',
// 'https://houtai.baidu.com/v2/schemas/dialog.json#',
// 'https://houtai.baidu.com/v2/schemas/drawer.json#',
'https://houtai.baidu.com/v2/schemas/dropdown-button.json#',
'https://houtai.baidu.com/v2/schemas/form.json#',
'https://houtai.baidu.com/v2/schemas/grid.json#',
'https://houtai.baidu.com/v2/schemas/hbox.json#',
'https://houtai.baidu.com/v2/schemas/iframe.json#',
'https://houtai.baidu.com/v2/schemas/image.json#',
'https://houtai.baidu.com/v2/schemas/json.json#',
'https://houtai.baidu.com/v2/schemas/list.json#',
'https://houtai.baidu.com/v2/schemas/mapping.json#',
'https://houtai.baidu.com/v2/schemas/nav.json#',
'https://houtai.baidu.com/v2/schemas/operation.json#',
// 自己不能放在其他地方 'https://houtai.baidu.com/v2/schemas/page.json#',
'https://houtai.baidu.com/v2/schemas/panel.json#',
'https://houtai.baidu.com/v2/schemas/plain.json#',
'https://houtai.baidu.com/v2/schemas/progress.json#',
'https://houtai.baidu.com/v2/schemas/service.json#',
'https://houtai.baidu.com/v2/schemas/status.json#',
'https://houtai.baidu.com/v2/schemas/switch.json#',
'https://houtai.baidu.com/v2/schemas/table.json#',
'https://houtai.baidu.com/v2/schemas/tabs.json#',
'https://houtai.baidu.com/v2/schemas/tasks.json#',
'https://houtai.baidu.com/v2/schemas/tpl.json#',
'https://houtai.baidu.com/v2/schemas/video.json#',
'https://houtai.baidu.com/v2/schemas/wizard.json#',
'https://houtai.baidu.com/v2/schemas/wrapper.json#',
'https://houtai.baidu.com/v2/schemas/page.json#/definitions/customRenderer'
];
const root = {};
let last = renderers.pop();
let current = root;
while(renderers.length) {
const renderer = renderers.shift().replace(/#$/, '');
current.if = {
'$ref': `${renderer}#/definitions/test`
};
current.then = {
'$ref': `${renderer}#/definitions/common`
};
current = current.else = {};
}
current['$ref'] = last;
console.log(JSON.stringify(root, null, 4));
})();
// Cards 里面 field 类型
(function() {
const renderers = [
'https://houtai.baidu.com/v2/schemas/tpl.json#',
'https://houtai.baidu.com/v2/schemas/image.json#',
'https://houtai.baidu.com/v2/schemas/date.json#',
'https://houtai.baidu.com/v2/schemas/status.json#',
'https://houtai.baidu.com/v2/schemas/mapping.json#',
'https://houtai.baidu.com/v2/schemas/progress.json#',
'https://houtai.baidu.com/v2/schemas/switch.json#',
'https://houtai.baidu.com/v2/schemas/hbox.json#',
'https://houtai.baidu.com/v2/schemas/grid.json#',
'https://houtai.baidu.com/v2/schemas/json.json#',
'https://houtai.baidu.com/v2/schemas/list.json#',
'https://houtai.baidu.com/v2/schemas/operation.json#',
'https://houtai.baidu.com/v2/schemas/plain.json#'
];
const root = {};
let last = renderers.pop().replace(/#$/, '');
let current = root;
while(renderers.length) {
const renderer = renderers.shift().replace(/#$/, '');
current.if = {
'$ref': `${renderer}#/definitions/test`
};
current.then = {
'$ref': `${renderer}#/definitions/common`
};
current = current.else = {};
}
current['$ref'] = `${last}#/definitions/common`;
console.log(JSON.stringify(root, null, 4));
})();
// Control 里面各种类型
(function() {
const renderers = [
'https://houtai.baidu.com/v2/schemas/form/array.json#',
'https://houtai.baidu.com/v2/schemas/form/button-group.json#',
'https://houtai.baidu.com/v2/schemas/form/button-toolbar.json#',
'https://houtai.baidu.com/v2/schemas/form/button.json#',
'https://houtai.baidu.com/v2/schemas/form/chained-select.json#',
'https://houtai.baidu.com/v2/schemas/form/checkbox.json#',
'https://houtai.baidu.com/v2/schemas/form/checkboxes.json#',
'https://houtai.baidu.com/v2/schemas/form/color.json#',
'https://houtai.baidu.com/v2/schemas/form/combo.json#',
'https://houtai.baidu.com/v2/schemas/form/control.json#',
'https://houtai.baidu.com/v2/schemas/form/date-range.json#',
'https://houtai.baidu.com/v2/schemas/form/date.json#',
'https://houtai.baidu.com/v2/schemas/form/datetime.json#',
'https://houtai.baidu.com/v2/schemas/form/editor.json#',
'https://houtai.baidu.com/v2/schemas/form/email.json#',
'https://houtai.baidu.com/v2/schemas/form/fieldSet.json#',
'https://houtai.baidu.com/v2/schemas/form/file.json#',
'https://houtai.baidu.com/v2/schemas/form/formula.json#',
'https://houtai.baidu.com/v2/schemas/form/grid.json#',
'https://houtai.baidu.com/v2/schemas/form/group.json#',
'https://houtai.baidu.com/v2/schemas/form/hbox.json#',
'https://houtai.baidu.com/v2/schemas/form/hidden.json#',
'https://houtai.baidu.com/v2/schemas/form/image.json#',
'https://houtai.baidu.com/v2/schemas/form/list.json#',
'https://houtai.baidu.com/v2/schemas/form/matrix.json#',
'https://houtai.baidu.com/v2/schemas/form/number.json#',
'https://houtai.baidu.com/v2/schemas/form/tag.json#',
'https://houtai.baidu.com/v2/schemas/form/panel.json#',
'https://houtai.baidu.com/v2/schemas/form/password.json#',
'https://houtai.baidu.com/v2/schemas/form/picker.json#',
'https://houtai.baidu.com/v2/schemas/form/radios.json#',
'https://houtai.baidu.com/v2/schemas/form/range.json#',
'https://houtai.baidu.com/v2/schemas/form/repeat.json#',
'https://houtai.baidu.com/v2/schemas/form/reset.json#',
'https://houtai.baidu.com/v2/schemas/form/rich-text.json#',
'https://houtai.baidu.com/v2/schemas/form/select.json#',
'https://houtai.baidu.com/v2/schemas/form/service.json#',
'https://houtai.baidu.com/v2/schemas/form/static.json#',
'https://houtai.baidu.com/v2/schemas/form/sub-form.json#',
'https://houtai.baidu.com/v2/schemas/form/submit.json#',
'https://houtai.baidu.com/v2/schemas/form/switch.json#',
'https://houtai.baidu.com/v2/schemas/form/table.json#',
'https://houtai.baidu.com/v2/schemas/form/tabs.json#',
'https://houtai.baidu.com/v2/schemas/form/text.json#',
'https://houtai.baidu.com/v2/schemas/form/textarea.json#',
'https://houtai.baidu.com/v2/schemas/form/time.json#',
'https://houtai.baidu.com/v2/schemas/form/tree-select.json#',
'https://houtai.baidu.com/v2/schemas/form/tree.json#',
'https://houtai.baidu.com/v2/schemas/form/url.json#',
// 其他 renderers
'https://houtai.baidu.com/v2/schemas/divider.json#',
'https://houtai.baidu.com/v2/schemas/cards.json#',
'https://houtai.baidu.com/v2/schemas/chart.json#',
'https://houtai.baidu.com/v2/schemas/collapse.json#',
'https://houtai.baidu.com/v2/schemas/crud.json#',
'https://houtai.baidu.com/v2/schemas/iframe.json#',
'https://houtai.baidu.com/v2/schemas/nav.json#',
'https://houtai.baidu.com/v2/schemas/tasks.json#',
'https://houtai.baidu.com/v2/schemas/video.json#',
'https://houtai.baidu.com/v2/schemas/wrapper.json#',
'https://houtai.baidu.com/v2/schemas/form.json#/definitions/customControlItem'
];
const root = {};
let last = renderers.pop().replace(/#$/, '');
let current = root;
while(renderers.length) {
const renderer = renderers.shift().replace(/#$/, '');
current.if = {
'$ref': `${renderer}#/definitions/test`
};
current.then = {
'$ref': `${renderer}#/definitions/common`
};
current = current.else = {};
}
current['$ref'] = `${last}`;
console.log(JSON.stringify(root, null, 4));
})();