Skip to content

Commit 3718f62

Browse files
rubennortemeta-codesync[bot]
authored andcommitted
Reject deep imports in GitHub Flow (#58574)
Summary: Pull Request resolved: #58574 Redirect React Native implementation-path imports to an unresolved module in the GitHub Flow configuration so new deep imports fail type checking while supported package entry points remain available. Changelog: [Internal] Reviewed By: javache Differential Revision: D120543258 fbshipit-source-id: 70f086b80e54b2c210ee84bf648f2b149cfb100f
1 parent 7d136d6 commit 3718f62

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

.flowconfig

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,17 @@ experimental.multi_platform.extensions=.android
5353
munge_underscores=true
5454

5555
module.name_mapper='^react-native$' -> '<PROJECT_ROOT>/packages/react-native/index.js'
56+
module.name_mapper='^react-native/asset-registry$' -> '<PROJECT_ROOT>/packages/react-native/src/asset-registry.js'
57+
module.name_mapper='^react-native/package.json$' -> '<PROJECT_ROOT>/packages/react-native/package.json'
5658
module.name_mapper='^react-native/react-private-interface$' -> '<PROJECT_ROOT>/packages/react-native/src/react-private-interface.js'
5759
module.name_mapper='^react-native/setup-env$' -> '<PROJECT_ROOT>/packages/react-native/src/setup-env.js'
58-
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/packages/react-native/\1'
60+
module.name_mapper='^react-native/unstable-internals-do-not-use$' -> '<PROJECT_ROOT>/packages/react-native/src/unstable-internals-do-not-use.js'
61+
module.name_mapper='^react-native/scripts/\(.*\)$' -> '<PROJECT_ROOT>/packages/react-native/scripts/\1'
62+
module.name_mapper='^react-native/src/fb_internal/\(.*\)$' -> '<PROJECT_ROOT>/packages/react-native/src/fb_internal/\1'
63+
# Deep imports under React Native's implementation directories are redirected
64+
# to a module that does not exist. Package roots, secondary entry points, and
65+
# `src/fb_internal/*` stay importable.
66+
module.name_mapper='^react-native/\(Libraries\|src/private\|src/types\)/.*$' -> 'react-native-deep-import-is-not-part-of-the-public-api'
5967
module.name_mapper='^@react-native/dev-middleware$' -> '<PROJECT_ROOT>/packages/dev-middleware'
6068
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\|xml\|ktx\|heic\|heif\)$' -> '<PROJECT_ROOT>/packages/react-native/Libraries/Image/RelativeImageStub'
6169

0 commit comments

Comments
 (0)