react-native/local-cli
Eric Rozell a40bfa730e Enable platforms to configure CLI commands
Summary:
This change adds hooks via the `package.json` for a platform plugin to specify hooks for generating platform configurations. This change also adds hooks to allow platform plugins to participate in `link` and `unlink` commands. The goal is to move platform-specific code for platform plugins into their own repositories / node_modules.

<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

We need to be able to configure the CLI commands for plugin platforms (e.g., react-native-windows) in their own repositories.

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work. Bonus points for screenshots and videos!)

- All jest tests, including new tests, pass.
- `link` and `unlink` commands are successful on iOS and Android.

(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/react-native-website, and link to your PR here.)

https://github.com/Microsoft/react-native-windows/pull/1601

<!--
Help reviewers and the release process by writing your own release notes

**INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

  CATEGORY
[----------]        TYPE
[ CLI      ]   [-------------]      LOCATION
[ DOCS     ]   [ BREAKING    ]   [-------------]
[ GENERAL  ]   [ BUGFIX      ]   [-{Component}-]
[ INTERNAL ]   [ ENHANCEMENT ]   [ {File}      ]
[ IOS      ]   [ FEATURE     ]   [ {Directory} ]   |-----------|
[ ANDROID  ]   [ MINOR       ]   [ {Framework} ] - | {Message} |
[----------]   [-------------]   [-------------]   |-----------|

[CATEGORY] [TYPE] [LOCATION] - MESSAGE

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->

[CLI][FEATURE][local-cli/core/index.js] - Allow platform plugins to contribute to the RNConfig.
[CLI][FEATURE][local-cli/link/link.js] - Allow platform plugins to participate in the `link` command.
[CLI][FEATURE][local-cli/link/unlink.js] - Allow platform plugins to participate in the `unlink` command.
Closes https://github.com/facebook/react-native/pull/17745

Differential Revision: D6883558

Pulled By: hramos

fbshipit-source-id: ea32fe21cedd4cc02c5c0d48229f2cdb2ac8142b
2018-02-08 09:47:28 -08:00
..
__mocks__ Do not use Node 8.x specific Stream.final 2017-12-20 16:48:25 -08:00
__tests__ Fixing eslint-comments warnings 2018-01-08 17:04:29 -08:00
bundle Pass hasteImplModulePath to JestHasteMap and everywhere else 2018-01-30 11:30:54 -08:00
core Enable platforms to configure CLI commands 2018-02-08 09:47:28 -08:00
dependencies Pass hasteImplModulePath to JestHasteMap and everywhere else 2018-01-30 11:30:54 -08:00
eject Run eslint --fix 2017-10-09 17:46:44 -07:00
generator Typos in comments and log messages 2018-01-12 22:18:45 -08:00
info added info CLI command 2017-07-18 11:45:47 -07:00
init Change indentation of package.json including Jest to 2 spaces 2017-10-15 10:50:20 -07:00
install Use Yarn for Install/Uninstall CLI if available 2017-02-02 05:13:33 -08:00
library Reject local-cli promises with Error objects 2017-08-08 09:38:21 -07:00
link Enable platforms to configure CLI commands 2018-02-08 09:47:28 -08:00
logAndroid Use native Promise in local-cli 2016-11-21 10:28:34 -08:00
logIOS Use native Promise in local-cli 2016-11-21 10:28:34 -08:00
runAndroid adds --port option to `react-native run-ios` as well as patches port … 2018-01-04 20:11:10 -08:00
runIOS fixed issue with runIOS not being able to launch tvOS app 2018-01-29 13:48:13 -08:00
server Pass hasteImplModulePath to JestHasteMap and everywhere else 2018-01-30 11:30:54 -08:00
templates @allow-large-files [flow] upgrade to v0.65.0 2018-02-07 17:37:56 -08:00
upgrade New upgrading process, relying on Git 2016-11-28 08:28:35 -08:00
util Uses findMetroConfig and fetchMetroConfig in the internal RN cli 2018-02-02 05:05:36 -08:00
.eslintrc Disallow trailing commas in react-native-github 2017-08-17 16:20:04 -07:00
cli.js packager: centralize babelRegisterOnly callsites 2017-01-06 06:13:54 -08:00
cliEntry.js @allow-large-files Flow v0.54.0 2017-09-06 03:33:43 -07:00
commands.js added info CLI command 2017-07-18 11:45:47 -07:00
setup_env.bat Fix comments on .bat file 2015-10-28 21:36:07 -04:00
setup_env.sh CLI: Adding shebang to setup_env.sh script 2017-05-31 02:46:23 -07:00
wrong-react-native.js Fix local-cli's installedGlobally check to work on Windows platforms 2017-12-04 11:17:10 -08:00