From 85d734b48238b9374df8e26eda97deb071c3e2fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sun, 3 Jan 2021 22:38:29 +0100 Subject: [PATCH] Use native require.resolve when available --- .../src/dependencies.js | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/babel-helper-define-polyfill-provider/src/dependencies.js b/packages/babel-helper-define-polyfill-provider/src/dependencies.js index 46349af2..56a24347 100644 --- a/packages/babel-helper-define-polyfill-provider/src/dependencies.js +++ b/packages/babel-helper-define-polyfill-provider/src/dependencies.js @@ -1,8 +1,10 @@ // @flow -import requireResolve from "resolve"; import path from "path"; import debounce from "lodash.debounce"; +import requireResolve from "resolve"; + +const nativeRequireResolve = parseFloat(process.versions.node) >= 8.9; export function resolve( dirname: string, @@ -32,9 +34,15 @@ export function resolve( } try { - const pkg = requireResolve.sync(`${modulePackage}/package.json`, { - basedir, - }); + let pkg; + if (nativeRequireResolve) { + // $FlowIgnore + pkg = require.resolve(`${modulePackage}/package.json`, { + paths: [basedir], + }); + } else { + pkg = requireResolve.sync(`${modulePackage}/package.json`, { basedir }); + } return path.dirname(pkg) + moduleNestedPath; } catch (err) { if (err.code !== "MODULE_NOT_FOUND") throw err; @@ -53,7 +61,12 @@ export function resolve( export function has(basedir: string, name: string) { try { - requireResolve.sync(name, { basedir }); + if (nativeRequireResolve) { + // $FlowIgnore + require.resolve(name, { paths: [basedir] }); + } else { + requireResolve.sync(name, { basedir }); + } return true; } catch { return false;