1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 18:00:18 +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 Build - refactor background process to use html (#10769) 2021-03-31 11:12:28 +08:00
create-static-server.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
empty.js Build - refactor background process to use html (#10769) 2021-03-31 11:12:28 +08:00
generate-migration.sh Fixing migration script generation paths (#10664) 2021-03-17 12:21:46 +08:00
gource-viz.sh dev - move gource instructions from docs to development script 2019-09-10 22:05:16 +08:00
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 @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
mock-3box.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
mock-segment.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
README.md Rationalize build system arguments (#12047) 2021-09-09 12:44:57 -07:00
run-ganache.sh Use .sh file extension for all Bash scripts (#10499) 2021-02-23 12:56:41 -03:30
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 Add lint:shellcheck:package (#7568) 2019-12-11 15:52:08 -05:00
show-deps-install-scripts.js @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
source-map-explorer.sh Excluding sourcemaps comment in production builds (#10695) 2021-03-22 19:41:23 -07:00
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 @metamask/eslint config@5.0.0 (#10358) 2021-02-04 10:15:23 -08:00
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.