Skip to content

Remove src/* exports mapping (#57484)#57484

Closed
huntie wants to merge 3 commits into
react:mainfrom
huntie:export-D111034634
Closed

Remove src/* exports mapping (#57484)#57484
huntie wants to merge 3 commits into
react:mainfrom
huntie:export-D111034634

Conversation

@huntie

@huntie huntie commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary:

Follows up #57277, going further to remove this entry point mapping entirely — D110911864 further supports that these import paths were never used externally (and in the first case, src/private/ has always been an explicit name).

One caveat

rn-tester includes some runtime and Fantom test references to 'react-native/src/private/...'.

  • This happens to continue working because we've not enabled "exports" resolution under Flow.
  • These can be classified as repo-local — motivation is simplifying/tightening the root package.json for open source.

Changelog:
[Internal] - (Covered by #57277)

Reviewed By: rubennorte

Differential Revision: D111034634

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 8, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Jul 8, 2026
@meta-codesync

meta-codesync Bot commented Jul 8, 2026

Copy link
Copy Markdown

@huntie has exported this pull request. If you are a Meta employee, you can view the originating Diff in D111034634.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Warning

JavaScript API change detected

This PR commits an update to ReactNativeApi.d.ts, indicating a change to React Native's public JavaScript API.

  • Please include a clear changelog message.
  • This change will be subject to additional review.

This change was flagged as: BREAKING

huntie added 3 commits July 8, 2026 08:07
Summary:

NOTE: Resubmission of D110890810.


Replace `'react-native/Libraries/Core/InitializeCore'` with an explicit `'react-native/setup-env'` secondary export.

This was previously a special-case path excluded from our ESLint warnings. It is now formalised.

**Changes**

- Add new `src/setup-env.js` entry point and `package.json` mapping.
- Replace references in `packages/metro-config/` and `packages/community-cli-plugin/`.
- Update `warn-on-deep-imports` ESLint rule.

Changelog:  
[General][Added] - Add `'react-native/setup-env'` entry point. This replaces the previous side-effectful `'react-native/Libraries/Core/InitializeCore'`.  
[General][Deprecated] - Deprecate `'react-native/Libraries/Core/InitializeCore'`. Use `'react-native/setup-env'` instead.

Reviewed By: rubennorte

Differential Revision: D111022546
Summary:

NOTE: Resubmission of D110488985.


**Motivation**

The public type for `Touchable` has zero overlap with its runtime value. This is an internal implementation object which is undocumented.

https://www.internalfb.com/code/fbsource/[86267213ee84]/xplat/js/react-native-github/packages/react-native/Libraries/Components/Touchable/Touchable.d.ts?lines=18-24

https://www.internalfb.com/code/fbsource/[86267213ee84]/xplat/js/react-native-github/packages/react-native/Libraries/Components/Touchable/Touchable.js?lines=966-986

Replaces D110483989 / react#57419.

**Impact**

This is a **breaking change** with few open source consumers. The `onTouchStart` etc prop typings are part of `ViewProps` today, which is a suitable replacement.

Across projects I've been testing for the Strict TypeScript API rollout, the only load bearing consumer was Uniwind — where I've sent a PR to address this.

- uni-stack/uniwind#592.

Changelog:  
[General][Breaking] - The `Touchable` root export (undocumented) is removed. If you are extending `Touchable` as a type, please use `ViewProps` instead.

Reviewed By: rubennorte

Differential Revision: D111022549
Summary:

Follows up react#57277, going further to remove this entry point mapping entirely — D110911864 further supports that these import paths were never used externally (and in the first case, `src/private/` has always been an explicit name).

**One caveat**

`rn-tester` includes some runtime and Fantom test references to `'react-native/src/private/...'`.

- This happens to continue working because we've not enabled `"exports"` resolution under Flow.
- These can be classified as repo-local — motivation is simplifying/tightening the root `package.json` for open source.

Changelog:
[Internal] - (Covered by react#57277)

Reviewed By: rubennorte

Differential Revision: D111034634
@meta-codesync meta-codesync Bot changed the title Remove src/* exports mapping Remove src/* exports mapping (#57484) Jul 8, 2026
@huntie huntie force-pushed the export-D111034634 branch from e2ce0fa to f0bb9de Compare July 8, 2026 15:07
@meta-codesync meta-codesync Bot closed this in c165265 Jul 8, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Jul 8, 2026
@meta-codesync

meta-codesync Bot commented Jul 8, 2026

Copy link
Copy Markdown

This pull request has been merged in c165265.

@huntie huntie deleted the export-D111034634 branch July 8, 2026 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant