From f6c978cd9eb0fdf2b76d7ae221e2cec02cf8c1fa Mon Sep 17 00:00:00 2001 From: Gregor Martynus <39992+gr2m@users.noreply.github.com> Date: Sat, 14 Jan 2023 13:49:42 -0800 Subject: [PATCH] fix: handle import of ESM plugins --- lib/plugins/utils.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/plugins/utils.js b/lib/plugins/utils.js index 86061717..1fbc4875 100644 --- a/lib/plugins/utils.js +++ b/lib/plugins/utils.js @@ -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) {