Skip to content

Commit ec5bde6

Browse files
robhoganfacebook-github-bot
authored andcommitted
Breaking: Use named exports in metro-babel-register (#52564)
Summary: Pull Request resolved: #52564 Currently, `metro-babel-register` has a function as its default export, to which we've tagged on various properties. This tidies that up to a more idiomatic object of named exports, with `register` as a new one of them. This also serves to make it more compatible with automatic TypeScript generation. This is semver breaking, but `metro-babel-register` has very little usage outside Meta projects so isn't expected to be disruptive. Changelog: [Internal] Metro changelog: ``` - **[Breaking]**: Move metro-babel-register's main function to a named export `register` ``` Reviewed By: huntie Differential Revision: D78157559 fbshipit-source-id: c59c9820e9895007345561fed9ccec2273b925c8
1 parent bb3ef78 commit ec5bde6

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

scripts/shared/babelRegister.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,15 @@ function registerForMonorepo() {
4141
// $FlowExpectedError[cannot-resolve-module] - Won't resolve in OSS
4242
require('@fb-tools/babel-register');
4343
} else {
44-
require('metro-babel-register')([
44+
// Temporarily allow the default export to be a function (Metro <= 0.82),
45+
// or contain a `register` function (Metro >= 0.83). Remove shim once Metro
46+
// is bumped in OSS.
47+
const metroBabelRegister = require('metro-babel-register') /*:: as $FlowFixMe */;
48+
const registerFunction =
49+
typeof metroBabelRegister.register === 'function'
50+
? metroBabelRegister.register
51+
: metroBabelRegister;
52+
registerFunction([
4553
PACKAGES_DIR,
4654
PRIVATE_DIR,
4755
SCRIPTS_DIR,

0 commit comments

Comments
 (0)