MetaMask / eth-token-tracker

A JS module for tracking Ethereum token balances over block changes
ISC License
76 stars 43 forks source link

fix: add @babel/runtime to peerDeps and devDeps #120

Closed legobeat closed 5 months ago

legobeat commented 5 months ago

This package has an undeclared peerDependency on @babel/runtime. When trying to require('@metamask/eth-method-registry') as a module from an otherwise empty test project we get the following error (and can see the corresponding usage at top of the bundled entrypoint):

$ node index.js
node:internal/modules/cjs/loader:1031
  throw err;
  ^

Error: Cannot find module '@babel/runtime/helpers/interopRequireDefault'
Require stack:
- node_modules/@metamask/eth-token-tracker/dist/index.js
- index.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
    at Function.Module._load (node:internal/modules/cjs/loader:873:27)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (node_modules/@metamask/eth-token-tracker/dist/index.js:3:30)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Module.require (node:internal/modules/cjs/loader:1100:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'node_modules/@metamask/eth-token-tracker/dist/index.js',
    'index.js'
  ]
}

This is the case for version 4.0.1 through 7.0.1. In 4.0.0 and lower, we don't see the error because @babel/runtime@^7.5.5 got pulled in separately as a transitive runtime dependency from older versions of eth-block-tracker, which removed it as of v5.0.0. (#86)

I picked ^7.21.0, since @babel/runtime@7.21.0 is what's already present in the lockfile of this package and used in tests as of #95 (see as for why not lower).

Fixed