@@ -4,13 +4,21 @@ const browserslist = require('browserslist');
44
55/**
66 * Babel preset for React Native Builder Bob
7+ *
8+ * @param {Boolean } options.supportsStaticESM - Whether to preserve ESM imports/exports, defaults to `false`
9+ * @param {Boolean } options.rewriteImportExtensions - Whether to rewrite import extensions to '.js', defaults to `false`
10+ * @param {Boolean } options.staticViewConfigsCodegen - Whether to enable the React Native codegen plugin, defaults to `false`
11+ * @param {'automatic' | 'classic' } options.jsxRuntime - Which JSX runtime to use, defaults to 'automatic'
712 */
813module . exports = function ( api , options , cwd ) {
914 const opt = ( name ) =>
10- api . caller ( ( caller ) => ( caller != null ? caller [ name ] : undefined ) ) ;
15+ options [ name ] !== undefined
16+ ? options [ name ]
17+ : api . caller ( ( caller ) => ( caller != null ? caller [ name ] : undefined ) ) ;
1118
1219 const supportsStaticESM = opt ( 'supportsStaticESM' ) ;
1320 const rewriteImportExtensions = opt ( 'rewriteImportExtensions' ) ;
21+ const staticViewConfigsCodegen = opt ( 'staticViewConfigsCodegen' ) ;
1422 const jsxRuntime = opt ( 'jsxRuntime' ) ;
1523
1624 return {
@@ -47,7 +55,13 @@ module.exports = function (api, options, cwd) {
4755 require . resolve ( '@babel/preset-flow' ) ,
4856 ] ,
4957 plugins : [
50- require . resolve ( '@react-native/babel-plugin-codegen' ) ,
58+ ...( staticViewConfigsCodegen
59+ ? [
60+ require . resolve ( '@react-native/babel-plugin-codegen' , {
61+ paths : [ cwd ] ,
62+ } ) ,
63+ ]
64+ : [ ] ) ,
5165 require . resolve ( '@babel/plugin-transform-strict-mode' ) ,
5266 [
5367 require . resolve ( './lib/babel' ) ,
0 commit comments