slightning-coco-widget
Version:
SLIGHTNING 的 CoCo 控件框架。
37 lines (36 loc) • 1.64 kB
JavaScript
import { getDefaultAdapter } from "./adapters/adapter";
import { standardizeTypes } from "./convert/standardize-types";
export function decorate(types, widget, config, platforms) {
var _a, _b, _c;
for (const decorator of (_a = config === null || config === void 0 ? void 0 : config.decorators) !== null && _a !== void 0 ? _a : []) {
if (typeof decorator == "object") {
for (const [appliedPlatforms, platformDecorator] of Object.entries(decorator)) {
if (platformDecorator == null ||
appliedPlatforms.split("|").every((platform) => !platforms.includes(platform))) {
continue;
}
if (Array.isArray(platformDecorator)) {
for (const decorator of platformDecorator) {
[types, widget] = decorator(types, widget);
}
}
else {
[types, widget] = platformDecorator(types, widget);
}
}
}
else {
[types, widget] = decorator(types, widget);
}
}
for (const platform of platforms) {
for (const decorator of (_c = (_b = config === null || config === void 0 ? void 0 : config[platform]) === null || _b === void 0 ? void 0 : _b.decorators) !== null && _c !== void 0 ? _c : []) {
[types, widget] = decorator(types, widget);
}
}
return [types, widget];
}
export function exportWidget(types, widget, config) {
const adapter = getDefaultAdapter();
adapter.exportWidget(standardizeTypes(types), widget, config);
}