1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 02:10:12 +01:00
metamask-extension/.depcheckrc.yml
Erik Marks 3de3765425
Add build-time code exclusion using code fencing (#12060)
This PR adds build-time code exclusion by means of code fencing. For details, please see the README in `./development/build/transforms`. Note that linting of transformed files as a form of validation is added in a follow-up, #12075.

Hopefully exhaustive tests are added to ensure that the transform works according to its specification. Since these tests are Node-only, they required their own Jest config. The recommended way to work with multiple Jest configs is using the `projects` field in the Jest config, however [that feature breaks coverage collection](https://github.com/facebook/jest/issues/9628). That being the case, I had to set up two separate Jest configs. In order to get both test suites to run in parallel, Jest is now invoked via a script, `./test/run-jest.sh`.

By way of example, this build system feature allows us to add fences like this:

```javascript
this.store.updateStructure({
  ...,
  GasFeeController: this.gasFeeController,
  TokenListController: this.tokenListController,
  ///: BEGIN:ONLY_INCLUDE_IN(beta)
  PluginController: this.pluginController,
  ///: END:ONLY_INCLUDE_IN
});
```

Which at build time are transformed to the following if the build type is not `beta`:

```javascript
this.store.updateStructure({
  ...,
  GasFeeController: this.gasFeeController,
  TokenListController: this.tokenListController,
});
```

Co-authored-by: Mark Stacey <markjstacey@gmail.com>
2021-09-14 10:00:04 -07:00

49 lines
1.2 KiB
YAML

# things that *are* used, that depcheck is wrong about
ignores:
#
# webapp deps
#
- "@babel/runtime"
- "@fortawesome/fontawesome-free"
- "punycode"
#
# dev deps
#
# safety fallback for npm lifecycle scripts, not used normally
- "@lavamoat/preinstall-always-fail"
# used in testing + ci
- "@metamask/auto-changelog" # invoked as `auto-changelog`
- "@metamask/forwarder"
- "@metamask/test-dapp"
- "@sentry/cli" # invoked as `sentry-cli`
- "chromedriver"
- "depcheck" # ooo meta
- "ganache-cli"
- "geckodriver"
- "jest"
- "lavamoat-viz"
- "prettier-plugin-sort-json" # automatically imported by prettier
- "source-map-explorer"
# development tool
- "yarn-deduplicate"
# storybook
- "@storybook/core"
- "@storybook/addon-backgrounds"
- "@storybook/addon-toolbars"
- "style-loader"
- "css-loader"
- "sass-loader"
- "resolve-url-loader"
# files depcheck should not parse
ignorePatterns:
# seems to incorrectly parse scss @include pragmas?
- "**/*.scss"
# self-contained bundle used for testing
- "**/send-eth-with-private-key-test/web3js.js"
- "**/send-eth-with-private-key-test/ethereumjs-tx.js"