Commit Graph

1480 Commits

Author SHA1 Message Date
Jan Kassens 2635363e97 Add version to .flowconfig
Summary:
**Summary**

Without this editors or a globally installed flow would use the latest version.
This ensures that flow uses the right version when checking the code.

**Test plan**
```
$ flow
```
Closes https://github.com/facebook/metro-bundler/pull/53

Reviewed By: jeanlauliac

Differential Revision: D5831038

Pulled By: kassens

fbshipit-source-id: c4a7cac7961b1176e940d86419f7a495e98baf23
2017-09-19 15:40:05 -07:00
Ian Levesque 522a0460a1 Revert D5841425: Removing unnecessary eslint enable/disable comments
Differential Revision: D5841425

fbshipit-source-id: 5a5bb73eafce9e09c89fe9f0cf57676cfc962a5a
2017-09-19 13:26:30 -07:00
Sina Sabet 114b00ee34 Removing unnecessary eslint enable/disable comments
Reviewed By: TheSavior

Differential Revision: D5841425

fbshipit-source-id: cf30e47e0a544230595b8298c6bca67cbee2fb08
2017-09-19 12:52:15 -07:00
David Aurelio ad927b93dc Upgrade uglify to v3 + es support
Summary: Upgrades uglify to version 3 with (experimental) ES6 support turned on.

Reviewed By: jeanlauliac

Differential Revision: D5842410

fbshipit-source-id: 1c8ccea15785bc5bb1c68d7a83b75881432d0ce2
2017-09-19 12:23:53 -07:00
David Aurelio 025e1841d9 Get rid of `async/queue`
Summary:
This replaces `async/queue` with a hand-rolled queue that does not yield to the event loop if a unit of work can be run synchronously.

Anecdotally, this leads to a > 11x speedup for the graph traversal when all data is available synchronously, e.g. from an in-memory cache.

Reviewed By: jeanlauliac

Differential Revision: D5861763

fbshipit-source-id: f7cf5f916a13adf9ca418d7522cd2f19df596fba
2017-09-19 09:21:40 -07:00
David Aurelio c546349da4 `GraphFn` returns promise rather than taking callback
Summary: Changes `GraphFn` to return a promise rather than taking a callback. This is more in line with call sites, which so far have been using `denodeify`.

Reviewed By: jeanlauliac

Differential Revision: D5857192

fbshipit-source-id: 61bbbef4fbf24b0b91c4a3008541eaa5a1af0f7a
2017-09-19 09:21:40 -07:00
David Aurelio 5aaf148179 `@format` for `Graph-test.js`
Reviewed By: jeanlauliac

Differential Revision: D5857069

fbshipit-source-id: 38e58f11579161a94d5201d016cf8b0ba3681eb4
2017-09-19 09:21:37 -07:00
David Aurelio 6062a9bd34 `LoadFn`/`ResolveFn` without callbacks
Summary:
Changes `LoadFn` to be synchronous or return a promise, and `ResolveFn` to be synchronsous.

This makes for a nicer API, without losing the property of not yielding to the event loop for synchronous work.

Reviewed By: jeanlauliac

Differential Revision: D5855963

fbshipit-source-id: 4b3c3363f4e49a9890586462925e8e400872feb2
2017-09-19 09:21:32 -07:00
David Aurelio 3f2b200e01 Fix creation of indexed RAM bundles
Reviewed By: jeanlauliac

Differential Revision: D5852737

fbshipit-source-id: 98e16fbd69d9ad3666acfc86e5de308175102643
2017-09-18 11:08:44 -07:00
Rafael Oleza f6e2e17900 HMR: Include updated modules in the correct order
Reviewed By: davidaurelio

Differential Revision: D5852269

fbshipit-source-id: 519564a4899b22d16a2ab3be4b466e21783e8f86
2017-09-18 09:06:43 -07:00
Jean Lauliac a7ad7502aa RN buck: ModuleGraph: get rid of callbacks, async/await for the best
Reviewed By: davidaurelio

Differential Revision: D5842855

fbshipit-source-id: 71f9e799db4ad312213a20c1b1a93280e934d1e7
2017-09-18 04:21:14 -07:00
Rafael Oleza 539885386a Remove unneeded await in sync method
Reviewed By: cpojer

Differential Revision: D5851184

fbshipit-source-id: 4a6f5cbd9d1237843c349b5944bd17767f84f625
2017-09-18 03:53:19 -07:00
Rafael Oleza 77f6ac080d Handle renames/deletes of modules correctly
Reviewed By: cpojer

Differential Revision: D5845030

fbshipit-source-id: a33af56bf5a479768eaf64b42ec3251a724c0315
2017-09-16 09:07:40 -07:00
Rafael Oleza f9526cf486 Fix issue when there is transform errors
Reviewed By: mjesun

Differential Revision: D5843842

fbshipit-source-id: a9c5efde86248a5e4b188012360d8830d2049985
2017-09-15 17:24:56 -07:00
David Aurelio d56cef3493 Don’t use unnecessary transforms for node 8
Summary: When running with node 8, the babel plugins `async-to-generator` and `syntax-trailing-function-commas` are unnecessary. Removing them makes runtime transpilation faster, and the resulting code is closer to the original (useful with debugging: less unmapped code areas, better breakpoint support, less renamed variables).

Reviewed By: mjesun

Differential Revision: D5842305

fbshipit-source-id: d99f719794e4a8f48fd10b0349fbb36f2994666e
2017-09-15 12:06:42 -07:00
Christoph Nakazawa 2a64bd390e Use the Config type from Metro
Reviewed By: davidaurelio

Differential Revision: D5832633

fbshipit-source-id: 8e4e0e6a2907e485a5627c87161af2d0672b4f56
2017-09-15 05:10:08 -07:00
Christoph Nakazawa 34b1fb6abf Add Config object and loading mechanism
Summary:
This copies the basic loading mechanism and default config from the RN local cli into Metro and exposes it under `metro-bundler`, and switches internal scripts over to it.

davidaurelio: I changed the packager-worker-for-buck to hardcode the rn.cli file, like we do in other files. I would like to pull the "find" mechanism that traverses up to find a config into Metro at some point, but for now I'd prefer to keep it lean until we need it. Let me know if that doesn't work for you.

The next diff will switch the RN cli over to these functions also.

Reviewed By: davidaurelio

Differential Revision: D5832596

fbshipit-source-id: a3e167644d96c8831e5a83378e8ba143e62426db
2017-09-15 01:39:30 -07:00
Christoph Nakazawa 37a7a3b018 Add ConfigT type
Summary: As a first step in defining a new public API and CLI for Metro, I'd like to pull the generally useful pieces from the RN cli into Metro. This diff makes it as a non-breaking change (so we don't have to bump the version of Metro for RN) by updating only the imports outside of the react-native-github folder.

Reviewed By: davidaurelio

Differential Revision: D5832464

fbshipit-source-id: 11b00b5517665441763c2207d577ae0e110c681b
2017-09-15 01:39:30 -07:00
Christoph Nakazawa 80a3306448 Bump metro-bundler dependency to 0.17
Reviewed By: davidaurelio

Differential Revision: D5834180

fbshipit-source-id: 121efc7000bff7aff121d44e6b0b8eed1d4e81ae
2017-09-14 22:09:13 -07:00
Alexander Gugel db7ea0b5f7 Add hook for accessing aggregated resolution cache
Reviewed By: mjesun

Differential Revision: D5775425

fbshipit-source-id: 9e1855d9a161f60d7163a208c5539264ba67d3fd
2017-09-14 18:53:57 -07:00
Rafael Oleza 300cd924e0 Add logging for HMR changes
Reviewed By: davidaurelio

Differential Revision: D5833673

fbshipit-source-id: 5cfc9e7de6b761130093f785f2f9b829093571d0
2017-09-14 16:43:53 -07:00
Rafael Oleza bfa19e9db0 Do not include polyfills in the inlineRequiresBlacklistFiles transform option
Reviewed By: davidaurelio

Differential Revision: D5834728

fbshipit-source-id: 7c531b2464fb0bda50fdfa527112313060f11a0c
2017-09-14 14:08:34 -07:00
Rafael Oleza 4f31807cf8 Add multipart response functionality to the full bundler created by Delta Bunlder
Reviewed By: jeanlauliac

Differential Revision: D5825701

fbshipit-source-id: 481d36420396e2fcb457397905c69fb5720f43b2
2017-09-14 10:21:12 -07:00
Rafael Oleza 61fb142520 Bump babel-preset-react-native dependency in metro bundler
Reviewed By: jeanlauliac

Differential Revision: D5833281

fbshipit-source-id: 42a62e71b77467973d15d60419a33c310082d015
2017-09-14 09:05:52 -07:00
Rafael Oleza 9294f5a46a Multiple requests to the Delta Bundler when there is an error should produce an Error
Reviewed By: jeanlauliac

Differential Revision: D5814215

fbshipit-source-id: 9a72057078819d07ddbd5d4f949d7bdf13aff29e
2017-09-14 08:25:36 -07:00
David Aurelio 3401cfe768 disable all dev settings for base transform
Reviewed By: fkgozali

Differential Revision: D5824578

fbshipit-source-id: 7503700b82dc2b4de4c2d941829ba837ddcd5f3c
2017-09-13 16:53:45 -07:00
Rafael Oleza 0a1e79a820 Replace the ETag header by the Last-Modified to improve performance
Reviewed By: mjesun

Differential Revision: D5823545

fbshipit-source-id: 57eac5548e626eeed05f9b454e3f54b114193eb0
2017-09-13 13:08:05 -07:00
Rafael Oleza b64a07e38b Make DeltaBundler HMR handle errors correctly
Reviewed By: jeanlauliac

Differential Revision: D5814107

fbshipit-source-id: 2bcc52901eff5f2330453c7dc948a0b4ac0332db
2017-09-13 10:12:55 -07:00
Christoph Nakazawa 5422f802f5 Use hasteImpl in the Buck worker
Reviewed By: davidaurelio

Differential Revision: D5803422

fbshipit-source-id: de3aa40ab8ea9ec54e61173b3d6556351394089f
2017-09-13 00:09:09 -07:00
Kevin Gozali 8654b558ca fix output path for the UNBUNDLE magic file
Summary: Fixed the UNBUNDLE magic file location to match what JniJSModulesUnbundle.cpp expects.

Reviewed By: sahrens

Differential Revision: D5821637

fbshipit-source-id: 4342e4bb4d139b4eba77dd92a53b1683041fc7e9
2017-09-12 22:43:13 -07:00
Rafael Oleza 449e943d91 Add 'bundler' column to metro bundler logs
Reviewed By: davidaurelio

Differential Revision: D5809350

fbshipit-source-id: 7e1b9dcda26f3c199ff1723e21c670659d9cf747
2017-09-12 09:11:14 -07:00
Miguel Jimenez Esun 090df5c104 Make cache method public
Reviewed By: jeanlauliac

Differential Revision: D5804391

fbshipit-source-id: 8da732a440111ca5d89d51fa9e4c2727d386bbff
2017-09-12 08:11:29 -07:00
Rafael Oleza 5fa193bdee Move createModuleIdFactory() to a separate module
Reviewed By: jeanlauliac

Differential Revision: D5813714

fbshipit-source-id: 17ae2cf1751d30f6f18bb896576747871b8a0b68
2017-09-12 08:11:29 -07:00
Rafael Oleza bd51bc3c2f Use getModuleForPath() method from Resolver instead of Bundler
Reviewed By: davidaurelio

Differential Revision: D5813534

fbshipit-source-id: dbd005c2f9b478be58f33bd30df16e94159509da
2017-09-12 07:11:30 -07:00
Christoph Nakazawa d9ff4fa1dc Apply @format to root level files
Reviewed By: davidaurelio

Differential Revision: D5803464

fbshipit-source-id: e250a3ada33790b989f1e70990438c300bfb6d52
2017-09-12 01:06:05 -07:00
Rafael Oleza c51161d209 Fix issue calculating dependencyPairs when adding a new dependency
Reviewed By: cpojer

Differential Revision: D5812028

fbshipit-source-id: ced2cb19e87b3622d16f4c59d58d6711ce5161df
2017-09-12 01:06:05 -07:00
Christoph Nakazawa b3e817285b Remove HasteMap
Reviewed By: davidaurelio

Differential Revision: D5803275

fbshipit-source-id: 2e64733d8ef400a61d116b21cd53185934dd3d57
2017-09-11 23:54:09 -07:00
Christoph Nakazawa 61a0116dd4 Prevent logspew in symbolication worker-test
Reviewed By: mjesun

Differential Revision: D5803050

fbshipit-source-id: b585d073191ae521e8bc8cabb90a15d2a176d6da
2017-09-11 19:44:11 -07:00
Christoph Nakazawa 92fa17f70e Fix DependencyGraph-test log-spew
Reviewed By: mjesun

Differential Revision: D5803016

fbshipit-source-id: fc94590331fb77796cb5d2bbc96f963b7b5f8c7c
2017-09-11 19:44:11 -07:00
Christoph Nakazawa 86a943bbcd Branding: "packager" -> "Metro Bundler"
Summary:
This diff renames all the stragglers in comments and strings from variations of "packager" to "Metro Bundler". I did one of three:

* Rename "packager" to "Metro Bundler"
* Rename "react-native-packager" to "Metro Bundler"
* Remove "packager" when code inside of Metro implies that it's about Metro

I also removed `Glossary.md` because it is unmaintained and very old. mjesun is currently starting to write documentation for Metro which will supersede whatever was there before.

Reviewed By: mjesun

Differential Revision: D5802993

fbshipit-source-id: ba99cb5ed04d84b0f7b7a8a0bf28ed99280a940a
2017-09-11 19:44:11 -07:00
Miguel Jimenez Esun 467fa563fe Migrate tests away from "jsdom" environment
Reviewed By: leebyron

Differential Revision: D5748304

fbshipit-source-id: c66df45f1f35333f994c41eb8ff4cfccc1bb04d4
2017-09-11 09:52:43 -07:00
Rafael Oleza 8e2252d35d Implement end() method in DeltaBundler
Reviewed By: jeanlauliac

Differential Revision: D5803466

fbshipit-source-id: 78a29cd943774506694513987d97d9f37be04485
2017-09-11 08:27:56 -07:00
Rafael Oleza 197d885ec1 Add X-Metro-Files-Changed-Count HTTP header to the response when using Delta Bundler
Reviewed By: mjesun

Differential Revision: D5793977

fbshipit-source-id: 9e0783356ca7574077d4eb06489e9837f033d986
2017-09-11 08:27:56 -07:00
Rafael Oleza bf64ba58d3 Integrate the Source Map generator from Delta Bundler into the metro server
Reviewed By: mjesun

Differential Revision: D5793423

fbshipit-source-id: a26b6d67405d6ec0d59479cfe5091159a29018d1
2017-09-11 08:27:56 -07:00
Rafael Oleza e57e0002d1 Add Source Maps support to Delta Bundler
Reviewed By: jeanlauliac

Differential Revision: D5793499

fbshipit-source-id: 67e49ed5f5bc9ccae2fb4982cd506fc03259589a
2017-09-11 08:27:56 -07:00
Rafael Oleza dcf30322a5 Do not minify a bundle when calling wrapModule()
Reviewed By: jeanlauliac

Differential Revision: D5791079

fbshipit-source-id: 942d2963e17153508b4a7c5bd48e11b7cb3fdcd4
2017-09-11 08:27:56 -07:00
Rafael Oleza 2593ea2ad4 Make the sourcemaps generation module independent of ModuleTransport
Reviewed By: jeanlauliac

Differential Revision: D5789998

fbshipit-source-id: a460ccb0baa62d0edb4e0da2b6f4d4abaa7fe222
2017-09-11 08:27:56 -07:00
Rafael Oleza 5ee6de217d Disable using babel-generated sourcemaps from the metro bundler server
Reviewed By: jeanlauliac

Differential Revision: D5785354

fbshipit-source-id: be1a5c114b12af356804ff3b4ed6c4263d66fa0c
2017-09-11 08:27:56 -07:00
Jean Lauliac 36b2f8d67f RN packager: wrap-worker-fn.js: syncify
Reviewed By: davidaurelio

Differential Revision: D5803796

fbshipit-source-id: d6b7d169a2c17864e8ce68d82df8e898d966e404
2017-09-11 07:41:44 -07:00
Jean Lauliac 69eb3430b6 RN packager: transform-module.js: syncify everything
Reviewed By: davidaurelio

Differential Revision: D5803768

fbshipit-source-id: 06c28e6c30fce347780d953312646a449d0026d9
2017-09-11 07:41:44 -07:00