Skip to content

Commit

Permalink
fix: handle import of ESM plugins
Browse files Browse the repository at this point in the history
Co-authored-by: Matt Travi <programmer@travi.org>
  • Loading branch information
gr2m and travi committed Jan 25, 2023
1 parent 8f73eee commit 6d1d818
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions lib/plugins/utils.js
Expand Up @@ -52,14 +52,19 @@ export async function loadPlugin({cwd}, name, pluginsPath) {
? dirname(resolveFrom.silent(__dirname, pluginsPath[name]) || resolveFrom(cwd, pluginsPath[name]))
: __dirname;

if (!isFunction(name)) {
const file = resolveFrom.silent(basePath, name) || resolveFrom(cwd, name);
// See https://github.com/mysticatea/eslint-plugin-node/issues/250
// eslint-disable-next-line node/no-unsupported-features/es-syntax
name = (await import(`file://${file}`)).default;
// See https://github.com/mysticatea/eslint-plugin-node/issues/250
if (isFunction(name)) {
return name;
}

return name;
const file = resolveFrom.silent(basePath, name) || resolveFrom(cwd, name);
const { default: cjsExport, ...esmNamedExports } = await import(`file://${file}`);

if (cjsExport) {
return cjsExport;
}

return esmNamedExports;
}

export function parseConfig(plugin) {
Expand Down

0 comments on commit 6d1d818

Please sign in to comment.