@haul-bundler/babel-preset-react-native

0.16.0 • Public • Published

@haul-bundler/babel-preset-react-native

Version

PRs Welcome MIT License Chat Code of Conduct

Babel preset for React Native >=0.59.x with Haul - Webpack-based React Native bundler.

You can read more about Haul here: https://github.com/callstack/haul.

API

For easier extendability, @haul-bundler/babel-preset-react-native exports a list of functions for getting plugins and default options for them.

Each of the functions below returns an array of PluginSpec which is an tuple with plugin name and plugin default options or undefined:

type PluginSpec = [string] | [string, object];
// plugin[0] => plugin name
// plugin[1] => plugin default options

To get list of plugins use the following:

  • getDefaultPrePlugins(): PluginSpec[] - Get list of default plugins to include at the very beginning.
  • getDefaultPostPlugins(): PluginSpec[] - Get list of default plugins to include at the end, after all other plugins are included.
  • getHermesPlugins(): PluginSpec[] - Get list of plugins to include when targeting Hermes.
  • getChakraPlugins(): PluginSpec[] - Get list of plugins to include when targeting ChakraCore.
  • getHaulPlugins(opts: { platform: string }): PluginSpec[] - Get list of plugins used in Haul.
  • getTsPlugins(opts: { isTSX: boolean }): PluginSpec[] - Get list of plugins for transpiling TypeScript files (TS/TSX depending on isTSX option).
  • getReactNativePlugins(): PluginSpec[] - Get list of plugins for React Native.
  • getDevelopmentEnvPlugins(): PluginSpec[] - Get list of plugins for development mode - intended to be used in env.development in Babel preset.
  • getTestEnvPlugins(): PluginSpec[]- Get list of plugins for test mode - intended to be used in env.test in Babel preset.

For convenience, the following util functions are exported as well:

  • isTypeScriptSource(fileName: string): boolean - returns true if the filename is regular TS file (without TSX).
  • isTSXSource(fileName: string): boolean - returns true if the filename is a TSX file.
  • isReactNative(fileName: string): boolean - returns true if the filename is pointing to react-native in node_modules.

Readme

Keywords

none

Package Sidebar

Install

npm i @haul-bundler/babel-preset-react-native

Weekly Downloads

36

Version

0.16.0

License

MIT

Unpacked Size

37.6 kB

Total Files

16

Last publish

Collaborators

  • dratwas
  • thymikee
  • zamotany