fix: handle import of ESM plugins

This commit is contained in:
Gregor Martynus 2023-01-14 13:49:42 -08:00
parent 0ff4dee493
commit f6c978cd9e

View File

@ -53,7 +53,19 @@ export async function loadPlugin({ cwd }, name, pluginsPath) {
: __dirname;
// See https://github.com/mysticatea/eslint-plugin-node/issues/250
return isFunction(name) ? name : (await import(resolveFrom.silent(basePath, name) || resolveFrom(cwd, name))).default;
if (isFunction(name)) {
return name;
}
const { default: cjsExport, ...esmNamedExports } = await import(
resolveFrom.silent(basePath, name) || resolveFrom(cwd, name)
);
if (cjsExport) {
return cjsExport;
}
return esmNamedExports;
}
export function parseConfig(plugin) {