mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
3de3765425
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>
49 lines
1.2 KiB
YAML
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"
|
|
|