diff --git a/packages/node-resolve/package.json b/packages/node-resolve/package.json index f06f248d0..36edd99e0 100644 --- a/packages/node-resolve/package.json +++ b/packages/node-resolve/package.json @@ -64,7 +64,6 @@ "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, diff --git a/packages/node-resolve/src/index.js b/packages/node-resolve/src/index.js index 1ed3989e4..aea29e779 100644 --- a/packages/node-resolve/src/index.js +++ b/packages/node-resolve/src/index.js @@ -3,7 +3,6 @@ import { dirname, normalize, resolve, sep } from 'path'; import { builtinModules } from 'module'; -import deepMerge from 'deepmerge'; import isModule from 'is-module'; import { version, peerDependencies } from '../package.json'; @@ -27,6 +26,19 @@ const deepFreeze = (object) => { return object; }; +const deepClone = (object) => { + const result = Object.assign({}, object); + + for (const [key, value] of Object.entries(result)) { + if (Array.isArray(value)) { + result[key] = Array.from(value); + } else if (typeof value === 'object') { + result[key] = deepClone(value); + } + } + + return result; +}; const baseConditions = ['default', 'module']; const baseConditionsEsm = [...baseConditions, 'import']; @@ -45,7 +57,7 @@ const defaults = { }; const nodeImportPrefix = /^node:/; -export const DEFAULTS = deepFreeze(deepMerge({}, defaults)); +export const DEFAULTS = deepFreeze(deepClone(defaults)); export function nodeResolve(opts = {}) { const { warnings } = handleDeprecatedOptions(opts); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8cbba389d..d8145b011 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -511,9 +511,6 @@ importers: '@types/resolve': specifier: 1.20.2 version: 1.20.2 - deepmerge: - specifier: ^4.2.2 - version: 4.2.2 is-module: specifier: ^1.0.0 version: 1.0.0