1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/development
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
..
build Add build-time code exclusion using code fencing (#12060) 2021-09-14 10:00:04 -07:00
lib Fix 'yarn setup' on M1 Macs (#11887) 2021-09-01 10:40:40 -06:00
announcer.js Migrate version from _base manifest to package.json (#11029) 2021-05-10 14:16:03 -07:00
chromereload.js
create-static-server.js
empty.js
generate-migration.sh
gource-viz.sh
jest.config.js Add build-time code exclusion using code fencing (#12060) 2021-09-14 10:00:04 -07:00
metamaskbot-build-announce.js Making bundle viz links collapsable (#11542) 2021-07-16 11:23:31 -07:00
missing-locale-strings.js
mock-3box.js
mock-segment.js
README.md Rationalize build system arguments (#12047) 2021-09-09 12:44:57 -07:00
run-ganache.sh
sentry-publish.js Show Sentry CLI output when uploading artifacts (#11100) 2021-05-19 14:54:45 -02:30
sentry-upload-artifacts.sh Show Sentry CLI output when uploading artifacts (#11100) 2021-05-19 14:54:45 -02:30
shellcheck.sh
show-deps-install-scripts.js
source-map-explorer.sh
sourcemap-validator.js Using a normal bundle instead of a factored bundle for phishing-detect (build sys) (#11972) 2021-08-30 17:58:50 -10:00
static-server.js
stream-flat-map.js Build - refactor for bundle factoring and swappable runtime (#11080) 2021-07-15 10:59:34 -07:00
verify-locale-strings.js remove the ui/app and ui/lib folders (#10911) 2021-04-28 14:53:59 -05:00

Development

Several files which are needed for developing on(!) MetaMask.

Usually each files contains information about its scope / usage.