Files
react-native/packages/rn-tester/package.json
Riccardo Cipolleschi fe1057afcd Let lib maintainer be explicit with componentProvider mapping (#47520)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47520

Right now, when a 3p library needs to register a component in the component system, we have to crawl the library to try and get the mappng, best effort.

With this approach, we are enriching the `codegenConfig` property to allow library developers to define the mapping themselves.

For example:
```json
//...
"codegenConfig": {
    //..
    "ios": {
      "componentProvider": {
        "RNTMyNativeView": "RNTMyNativeViewComponentView"
      }
    }
  },
```
means that the JS component `RNTMyNativeView` will be mapped to the `RNTMyNativeViewComponentView` class.

This also work for local apps, and it warns the users about what libraries are using the deprecated approach, so they can open an issue or a PR to those libraries.

## Changelog:
[iOS][Added] - Allow 3p developers to specify the association between components and classes in Fabric

Reviewed By: dmytrorykun

Differential Revision: D65666061

fbshipit-source-id: 692e753635873ff9260e131d2d18ed226b2378c2
2024-11-12 07:38:03 -08:00

59 lines
2.0 KiB
JSON

{
"name": "@react-native/tester",
"version": "0.77.0-main",
"private": true,
"description": "React Native tester app.",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/facebook/react-native.git",
"directory": "packages/rn-tester"
},
"engines": {
"node": ">=18"
},
"scripts": {
"start": "react-native start",
"android": "react-native run-android --mode HermesDebug",
"install-android-jsc": "../../gradlew :packages:rn-tester:android:app:installJscDebug",
"install-android-hermes": "../../gradlew :packages:rn-tester:android:app:installHermesDebug",
"clean-android": "rm -rf android/app/build",
"setup-ios-jsc": "bundle install && USE_HERMES=0 bundle exec pod install",
"setup-ios-hermes": "bundle install && USE_HERMES=1 bundle exec pod install",
"clean-ios": "rm -rf build/generated/ios Pods Podfile.lock",
"e2e-build-android": "../../gradlew :packages:rn-tester:android:app:installHermesRelease -PreactNativeArchitectures=arm64-v8a",
"e2e-build-ios": "./scripts/maestro-build-ios.sh",
"e2e-test-android": "maestro test .maestro/ -e APP_ID=com.facebook.react.uiapp",
"e2e-test-ios": "./scripts/maestro-test-ios.sh"
},
"dependencies": {
"@react-native/oss-library-example": "0.77.0-main",
"@react-native/popup-menu-android": "0.77.0-main",
"flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
"nullthrows": "^1.1.1"
},
"peerDependencies": {
"react": "18.3.1",
"react-native": "*"
},
"codegenConfig": {
"name": "AppSpecs",
"type": "all",
"jsSrcsDir": ".",
"android": {
"javaPackageName": "com.facebook.fbreact.specs"
},
"ios": {
"componentProvider": {
"RNTMyNativeView": "RNTMyNativeViewComponentView"
}
}
},
"devDependencies": {
"@react-native-community/cli": "15.0.0-alpha.2",
"@react-native-community/cli-platform-android": "15.0.0-alpha.2",
"@react-native-community/cli-platform-ios": "15.0.0-alpha.2"
}
}