Files
react-native/packages/rn-tester/cli.flow.js
T
Riccardo Cipolleschi 140b3b38df Add prepare-ios script (#48799)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/48799

This change moves the same scripts we have to prepare the HelloWorld project to RNTester.
This is something we forgot to do when we were decoupling the reacrt-native from the community CLI.
This is also the base to start deprecating cocoapods and add more configuration steps for the project.

## Changelog:
[Internal] - Copy cli.js script from HelloWorld to RNTester

Reviewed By: cortinico

Differential Revision: D68413419

fbshipit-source-id: 7cf19d86bd3c1beb0c1e7f3380331174352a1651
2025-01-20 12:20:36 -08:00

64 lines
1.5 KiB
JavaScript

/**
* 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
* @oncall react_native
*/
import {run} from './scripts/utils';
import {apple} from '@react-native/core-cli-utils';
import {Option, program} from 'commander';
import {readFileSync} from 'fs';
program.version(JSON.parse(readFileSync('./package.json', 'utf8')).version);
const bootstrap = program.command('bootstrap');
type BootstrapOptions = {
arch: 'old' | 'new',
jsvm: 'hermes' | 'jsc',
frameworks?: 'static' | 'dynamic',
};
bootstrap
.command('ios')
.description('Bootstrap iOS')
.addOption(
new Option('--arch <arch>', "Choose React Native's architecture")
.choices(['new', 'old'])
.default('new'),
)
.addOption(
new Option(
'--frameworks <linkage>',
'Use frameworks instead of static libraries',
)
.choices(['static', 'dynamic'])
.default(undefined),
)
.addOption(
new Option('--jsvm <vm>', 'Choose VM used on device')
.choices(['jsc', 'hermes'])
.default('hermes'),
)
.action(async ({jsvm, arch, frameworks}: BootstrapOptions) => {
await run(
apple.bootstrap({
cwd: __dirname,
frameworks,
hermes: jsvm === 'hermes',
newArchitecture: arch === 'new',
}),
);
});
if (require.main === module) {
program.parse();
}
export default program;