mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Reorganise shared script utils (#52473)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/52473 Shared utils that were located in the root of `scripts/` are now colocated closer to their dependencies or moved to `scripts/shared/` — simplifying the root directory layout. Changelog: [Internal] Reviewed By: robhogan Differential Revision: D77873875 fbshipit-source-id: e04dba41a1ef811d32793931033fdfa93afad0cd
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6dfe59e1df
commit
fc5e33b582
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow strict-local
|
||||
* @format
|
||||
*/
|
||||
|
||||
const {
|
||||
PACKAGES_DIR,
|
||||
PRIVATE_DIR,
|
||||
RN_INTEGRATION_TESTS_RUNNER_DIR,
|
||||
SCRIPTS_DIR,
|
||||
} = require('./consts');
|
||||
|
||||
let isRegisteredForMonorepo = false;
|
||||
|
||||
/**
|
||||
* Calling this function enables all Node.js packages to run from source when
|
||||
* developing in the React Native repo.
|
||||
*
|
||||
* A call should located in each entry point file in a package (i.e. for all
|
||||
* paths in "exports"), inside a special `if` condition that will be compiled
|
||||
* away on build.
|
||||
*
|
||||
* ```js
|
||||
* // Place in a package entry point
|
||||
* if (!process.env.BUILD_EXCLUDE_BABEL_REGISTER) {
|
||||
* require('../../../scripts/shared/babelRegister').registerForMonorepo();
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
function registerForMonorepo() {
|
||||
if (isRegisteredForMonorepo) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (process.env.FBSOURCE_ENV === '1') {
|
||||
// $FlowExpectedError[cannot-resolve-module] - Won't resolve in OSS
|
||||
require('@fb-tools/babel-register');
|
||||
} else {
|
||||
require('metro-babel-register')([
|
||||
PACKAGES_DIR,
|
||||
PRIVATE_DIR,
|
||||
SCRIPTS_DIR,
|
||||
RN_INTEGRATION_TESTS_RUNNER_DIR,
|
||||
]);
|
||||
}
|
||||
|
||||
isRegisteredForMonorepo = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calling this function enables entry points under scripts/ to run from source.
|
||||
*
|
||||
* ```js
|
||||
* // Place in a script entry point
|
||||
* require('../shared/babelRegister').registerForScript();
|
||||
* ```
|
||||
*/
|
||||
function registerForScript() {
|
||||
registerForMonorepo();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
registerForMonorepo,
|
||||
registerForScript,
|
||||
};
|
||||
Reference in New Issue
Block a user