Fix legacy build

The build process failed because webpack does not allow failed imports
when it is run as a module.
This detects modules with default exports and only generates import
statements for default exports where they are available.
This commit is contained in:
Maximilian Krög
2021-05-02 23:18:19 +02:00
parent 8ff40c40e8
commit 40f8e69675
12 changed files with 77 additions and 63 deletions

View File

@@ -0,0 +1,39 @@
/* eslint-disable import/no-commonjs */
const events = {};
exports.handlers = {
newDoclet: function (e) {
const doclet = e.doclet;
if (doclet.kind !== 'event') {
return;
}
const cls = doclet.longname.split('#')[0];
if (!(cls in events)) {
events[cls] = [];
}
events[cls].push(doclet.longname);
},
parseComplete: function (e) {
const doclets = e.doclets;
for (let i = 0, ii = doclets.length - 1; i < ii; ++i) {
const doclet = doclets[i];
if (doclet.fires) {
if (doclet.kind == 'class') {
const fires = [];
for (let j = 0, jj = doclet.fires.length; j < jj; ++j) {
const event = doclet.fires[j].replace('event:', '');
if (events[event]) {
fires.push.apply(fires, events[event]);
} else if (doclet.fires[j] !== 'event:ObjectEvent') {
fires.push(doclet.fires[j]);
}
}
doclet.fires = fires;
}
}
}
},
};