Commit Graph

1544 Commits

Author SHA1 Message Date
Rafael Oleza eefb8e9fc5 Make the runBeforeMainModule config param to RN repo and make it absolute
Reviewed By: davidaurelio

Differential Revision: D5880700

fbshipit-source-id: 5df6781026030395900388c561283abadefa6511
2017-09-26 13:07:13 -07:00
Caleb Meredith f9246bcbb3 Update typings for Promise.all() for D5827319
Reviewed By: samwgoldman

Differential Revision: D5830645

fbshipit-source-id: db2bb0715aab58d3601712ee0b080abaa9f8f131
2017-09-26 11:26:27 -07:00
Rafael Oleza 7ba76a32e1 Change format of dependencyPairs param received by wrapModule()
Reviewed By: jeanlauliac

Differential Revision: D5880766

fbshipit-source-id: ef9f0ec2d7dcc4e47f5dacb9d899b5f1fde18e8f
2017-09-26 07:09:21 -07:00
Rafael Oleza 24be572cf5 Fix integration snapshots + add emails to test
Reviewed By: davidaurelio

Differential Revision: D5910903

fbshipit-source-id: 2d7d95db99303ce1106203f6146173b0030c4096
2017-09-26 06:53:41 -07:00
Jean Lauliac 21eef9ebb1 RN buck: add bundle splitting
Reviewed By: davidaurelio

Differential Revision: D5854013

fbshipit-source-id: 97e706d2e40ccb18397950f3d09763dd2498aee8
2017-09-26 04:21:38 -07:00
David Aurelio afb91bccd3 Don’t save original source code
Reviewed By: jeanlauliac

Differential Revision: D5901918

fbshipit-source-id: 68332b07f34ac4fd5491868cbc9f81283dae8d91
2017-09-25 18:06:58 -07:00
Jean Lauliac 0c2e414337 RN: add bundleId to nativeRequire() call
Reviewed By: davidaurelio

Differential Revision: D5863569

fbshipit-source-id: 62f65032f103b5bd20252343c771d0cd01950109
2017-09-25 09:06:49 -07:00
Jean Lauliac c4f9ee5720 metro-bundler: fix jest-haste-map require
Summary:
Addresses https://github.com/facebook/metro-bundler/issues/62

Apparently with some versions of `jest-haste-map`, the nested source file returns the module wrapped with `default` instead of the exports themselves (due to some ES6 babel transform, I am guessing). I wasn't able to reproduce this myself yet, but I think a good first step is to avoid using nested library files in the first place, ie. only use what's exported at the top-level.

Reviewed By: rafeca

Differential Revision: D5890757

fbshipit-source-id: 1196264b5626eda65c4aae222db2a1620f901c55
2017-09-25 07:20:58 -07:00
Jean Lauliac 3b6fddc746 RN buck: move asset work into transform worker
Reviewed By: davidaurelio

Differential Revision: D5872268

fbshipit-source-id: 829a0d26930f8893b93a5f42ef7026350dc01f29
2017-09-22 07:25:03 -07:00
Rafael Oleza e736518c43 Remove unneeded params from `getTransformOptions()`
Reviewed By: jeanlauliac

Differential Revision: D5880687

fbshipit-source-id: ef9683b1272133a9b38005cb8ba43d80b9ac6ec8
2017-09-21 09:27:05 -07:00
Sina Sabet f700c9e54d Removing unnecessary eslint enable/disable comments (round 2)
Reviewed By: TheSavior

Differential Revision: D5865725

fbshipit-source-id: 92d5e4376956a05c23aeeb84a4996626d82e0fb6
2017-09-20 23:39:49 -07:00
Jean Lauliac 39238acb78 RN: add some test to module system
Reviewed By: davidaurelio

Differential Revision: D5862757

fbshipit-source-id: cf5c88c4bb9d65368df07f6e85b207c90565bad9
2017-09-20 11:05:49 -07:00
Jean Lauliac 7d92dd2b5d RN buck: fix Flow error
Reviewed By: davidaurelio

Differential Revision: D5871509

fbshipit-source-id: 91bd020b95d33a854b5649daea1a0b8d7782706d
2017-09-20 09:22:56 -07:00
Lee Byron 9f4ca4a541 Synchronize all relay packages
Reviewed By: mjmahone

Differential Revision: D5842774

fbshipit-source-id: 40c57619901e15b0baa62c59837fc887c100652b
2017-09-19 22:56:43 -07:00
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