Skip to content

Commit 264d57d

Browse files
authored
feat: implement visionos cli commands (#64)
1 parent 10ecc73 commit 264d57d

File tree

6 files changed

+137
-78
lines changed

6 files changed

+137
-78
lines changed

packages/community-cli-plugin/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
],
2424
"dependencies": {
2525
"@react-native/dev-middleware": "0.74.0",
26-
"@react-native-community/cli-server-api": "13.0.0",
27-
"@react-native-community/cli-tools": "13.0.0",
26+
"@react-native-community/cli-server-api": "13.5.0",
27+
"@react-native-community/cli-tools": "13.5.0",
2828
"@react-native/metro-babel-transformer": "0.74.0",
2929
"chalk": "^4.0.0",
3030
"execa": "^5.1.1",
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const {
2+
buildOptions,
3+
createBuild,
4+
createLog,
5+
createRun,
6+
logOptions,
7+
runOptions,
8+
} = require('@react-native-community/cli-platform-apple');
9+
10+
const run = {
11+
name: 'run-visionos',
12+
description: 'builds your app and starts it on visionOS simulator',
13+
func: createRun({platformName: 'visionos'}),
14+
examples: [
15+
{
16+
desc: 'Run on a specific simulator',
17+
cmd: 'npx @callstack/react-native-visionos run-visionos --simulator "Apple Vision Pro"',
18+
},
19+
],
20+
options: runOptions,
21+
};
22+
23+
const log = {
24+
name: 'log-visionos',
25+
description: 'starts visionOS device syslog tail',
26+
func: createLog({platformName: 'visionos'}),
27+
options: logOptions,
28+
};
29+
30+
const build = {
31+
name: 'build-visionos',
32+
description: 'builds your app for visionOS platform',
33+
func: createBuild({platformName: 'visionos'}),
34+
examples: [
35+
{
36+
desc: 'Build the app for all visionOS devices in Release mode',
37+
cmd: 'npx @callstack/react-native-visionos build-visionos --mode "Release"',
38+
},
39+
],
40+
options: buildOptions,
41+
};
42+
43+
module.exports = [run, log, build];

packages/react-native/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,10 @@
9595
},
9696
"dependencies": {
9797
"@jest/create-cache-key-function": "^29.6.3",
98-
"@react-native-community/cli": "13.0.0",
99-
"@react-native-community/cli-platform-android": "13.0.0",
100-
"@react-native-community/cli-platform-ios": "13.0.0",
98+
"@react-native-community/cli": "13.5.0",
99+
"@react-native-community/cli-platform-android": "13.5.0",
100+
"@react-native-community/cli-platform-ios": "13.5.0",
101+
"@react-native-community/cli-platform-apple": "13.5.0",
101102
"@react-native/assets-registry": "0.74.0",
102103
"@react-native/community-cli-plugin": "0.74.0",
103104
"@react-native/codegen": "0.74.0",

packages/react-native/react-native.config.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99

1010
'use strict';
1111

12+
const localCommands = require('./local-cli/localCommands');
1213
const android = require('@react-native-community/cli-platform-android');
14+
const {
15+
getDependencyConfig,
16+
getProjectConfig,
17+
} = require('@react-native-community/cli-platform-apple');
1318
const ios = require('@react-native-community/cli-platform-ios');
1419
const {
1520
bundleCommand,
@@ -52,12 +57,13 @@ module.exports = {
5257
ramBundleCommand,
5358
startCommand,
5459
codegenCommand,
60+
...localCommands,
5561
],
5662
platforms: {
5763
visionos: {
5864
npmPackageName: '@callstack/react-native-visionos',
59-
projectConfig: ios.projectConfig,
60-
dependencyConfig: ios.dependencyConfig,
65+
projectConfig: getProjectConfig({platformName: 'visionos'}),
66+
dependencyConfig: getDependencyConfig({platformName: 'visionos'}),
6167
},
6268
ios: {
6369
projectConfig: ios.projectConfig,

packages/react-native/template/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"scripts": {
66
"android": "react-native run-android",
77
"ios": "react-native run-ios",
8+
"visionos": "react-native run-visionos",
89
"lint": "eslint .",
910
"start": "react-native start",
1011
"test": "jest"

yarn.lock

Lines changed: 79 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2384,43 +2384,44 @@
23842384
optionalDependencies:
23852385
npmlog "2 || ^3.1.0 || ^4.0.0"
23862386

2387-
"@react-native-community/cli-clean@13.0.0":
2388-
version "13.0.0"
2389-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.0.0.tgz#5ac3b088f015965082bf3e286e2174c2595cc11a"
2390-
integrity sha512-ysOGB7Th2wuOnXuSdOZW/0eSlLCpyALHd7TpqKn11ykArfqrqzjwcjvO43MgiVG982DpYXbTMVt6ATEpLO65Ig==
2387+
"@react-native-community/cli-clean@13.5.0":
2388+
version "13.5.0"
2389+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.5.0.tgz#50525bd637251644b082d1aff7907474b3312899"
2390+
integrity sha512-68wYb7ICE0aBqaVxuDYO4wVupSGkkk52qru+uMKTYOUm0KyHoAX8Sa8FebO/LR40CxkpgKwbLsT4yDxDOp2g1Q==
23912391
dependencies:
2392-
"@react-native-community/cli-tools" "13.0.0"
2392+
"@react-native-community/cli-tools" "13.5.0"
23932393
chalk "^4.1.2"
23942394
execa "^5.0.0"
23952395

2396-
"@react-native-community/cli-config@13.0.0":
2397-
version "13.0.0"
2398-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.0.0.tgz#36607d480d3efa4a6c351b681626fd0ef41d6c91"
2399-
integrity sha512-u81kuajfbSp2gnDuM/YzE3zcdYFvDzIyL+wr/4hOGueCvSCP6ZhS0LxXMAezBx8hwjwutG+pPJG13tb371V6sQ==
2396+
"@react-native-community/cli-config@13.5.0":
2397+
version "13.5.0"
2398+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.5.0.tgz#2c12ba3d2842971825765acb734fe95bb0422b8a"
2399+
integrity sha512-THuIH5euLpDn+nRepu5xxdh8kqFKlduKxADWOxBzHNNPLX7PlNRWcEBihQHTkCcG642fup1fJQXwR9tLH69KkQ==
24002400
dependencies:
2401-
"@react-native-community/cli-tools" "13.0.0"
2401+
"@react-native-community/cli-tools" "13.5.0"
24022402
chalk "^4.1.2"
24032403
cosmiconfig "^5.1.0"
24042404
deepmerge "^4.3.0"
24052405
glob "^7.1.3"
24062406
joi "^17.2.1"
24072407

2408-
"@react-native-community/cli-debugger-ui@13.0.0":
2409-
version "13.0.0"
2410-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.0.0.tgz#dd362c957e8db9a94fda7317bf3385f1ce82b8b3"
2411-
integrity sha512-SsvVrLZBwvd8tRCWvsZwj8Kzaf1mQFQ+BUfZzt+oOztGZFXLFQ8eN13IPUZBHeyfFUtI62jteotse1X9BalRUQ==
2408+
"@react-native-community/cli-debugger-ui@13.5.0":
2409+
version "13.5.0"
2410+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.5.0.tgz#8fa46651604c8f0ef7d5d6a896340a167d280c75"
2411+
integrity sha512-I1Rj9ECQ75ItgdePy4gaDw8/PslbMwOrFVKhEaSf1Uxe4UEU5zAwovLYB09lBCvz+dAVT609Jo99L4y6zycDgA==
24122412
dependencies:
24132413
serve-static "^1.13.1"
24142414

2415-
"@react-native-community/cli-doctor@13.0.0":
2416-
version "13.0.0"
2417-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.0.0.tgz#89da6fffc25c4b67c1e0d4753f2d69f2b510c8e1"
2418-
integrity sha512-IxYhuGIPcvCTiccVzjw3dgb3YPvdn3iKwCPY4YzL9TeR4DLB+S5f+bfcVqrAwJWgj9F9EAldLYsQGteR7RWBCA==
2415+
"@react-native-community/cli-doctor@13.5.0":
2416+
version "13.5.0"
2417+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.5.0.tgz#e35e19c7b7292e63e3766a1477017de35aa0f40f"
2418+
integrity sha512-VNiA/Fw3SDShzN1xibAS39EqaeEa07aQPHn7RcJ+Pgn+SthGD4tKQcTLaRed/KEfFumQ9Tu/aismXPGLzfUKfw==
24192419
dependencies:
2420-
"@react-native-community/cli-config" "13.0.0"
2421-
"@react-native-community/cli-platform-android" "13.0.0"
2422-
"@react-native-community/cli-platform-ios" "13.0.0"
2423-
"@react-native-community/cli-tools" "13.0.0"
2420+
"@react-native-community/cli-config" "13.5.0"
2421+
"@react-native-community/cli-platform-android" "13.5.0"
2422+
"@react-native-community/cli-platform-apple" "13.5.0"
2423+
"@react-native-community/cli-platform-ios" "13.5.0"
2424+
"@react-native-community/cli-tools" "13.5.0"
24242425
chalk "^4.1.2"
24252426
command-exists "^1.2.8"
24262427
deepmerge "^4.3.0"
@@ -2435,53 +2436,60 @@
24352436
wcwidth "^1.0.1"
24362437
yaml "^2.2.1"
24372438

2438-
"@react-native-community/cli-hermes@13.0.0":
2439-
version "13.0.0"
2440-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.0.0.tgz#978e8304c95f4c0b2d31c9490b7f1d4e72e187e5"
2441-
integrity sha512-FN6Zs1fJ+CyR8war9QGxI+2dMeFbqmhR4W1n+XaBZA/QbNPR1kPD+zs87zalzSJuFlYoVyGaTHoVDJHGGpjKTQ==
2439+
"@react-native-community/cli-hermes@13.5.0":
2440+
version "13.5.0"
2441+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.5.0.tgz#b7bd71e1b2335097dd3e973d90acb3708297b4b8"
2442+
integrity sha512-wyvOg54DwO/1McWgIiVuN81qSPciPv2sgRkntB8sydkNINSjSEVXNwgl28uQyRY/CmMpMAclTzLSrlUOHFBmrQ==
24422443
dependencies:
2443-
"@react-native-community/cli-platform-android" "13.0.0"
2444-
"@react-native-community/cli-tools" "13.0.0"
2444+
"@react-native-community/cli-platform-android" "13.5.0"
2445+
"@react-native-community/cli-tools" "13.5.0"
24452446
chalk "^4.1.2"
24462447
hermes-profile-transformer "^0.0.6"
24472448
ip "^1.1.5"
24482449

2449-
"@react-native-community/cli-platform-android@13.0.0":
2450-
version "13.0.0"
2451-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.0.0.tgz#9ea8d9cd959d58b1ff0404030b15a2068c6cfbad"
2452-
integrity sha512-qpd6eOTtzL4MnHOhwvU1pVSr+Q2d/gy27T77Fx0Cc98YWz2Uy/KqEQ4d2Zch+4gNhmSBmE6ewQa1XIF767vCPA==
2450+
"@react-native-community/cli-platform-android@13.5.0":
2451+
version "13.5.0"
2452+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.5.0.tgz#004dd433d55f54d400748597ed34823877944174"
2453+
integrity sha512-pMcV9B5D2CH7kOeI2BCVL37MSnA1ZozZ6ZXgnkmuu0w3blTuN4QUp1fWxIhlfOSysuIB0Mribj7S34Dz0eg8Mw==
24532454
dependencies:
2454-
"@react-native-community/cli-tools" "13.0.0"
2455+
"@react-native-community/cli-tools" "13.5.0"
24552456
chalk "^4.1.2"
24562457
execa "^5.0.0"
24572458
fast-xml-parser "^4.2.4"
24582459
glob "^7.1.3"
24592460
logkitty "^0.7.1"
24602461

2461-
"@react-native-community/cli-platform-ios@13.0.0":
2462-
version "13.0.0"
2463-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.0.0.tgz#250d823174a7f3e6e46d03fabaf40c6f3c301e0b"
2464-
integrity sha512-x3fMunOlXbcw0zlRxwnvwSQMdQVnANqHlLDrd0neiLzf/dG094PqtCbyJSFmw+65+iViemnzfwGDmocrVPuiOA==
2462+
"@react-native-community/cli-platform-apple@13.5.0":
2463+
version "13.5.0"
2464+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.5.0.tgz#979ee99c8e1dc1059d0f1d35ced362e580aed3c7"
2465+
integrity sha512-I6NeL5pPxrgZEZmjemHL4fWK5Q4trMqWgCu0ffqK2XMC1OqiI5Iqj3nBHEGJU0xiv09KzzxfHy150yhOyOU+eA==
24652466
dependencies:
2466-
"@react-native-community/cli-tools" "13.0.0"
2467+
"@react-native-community/cli-tools" "13.5.0"
24672468
chalk "^4.1.2"
24682469
execa "^5.0.0"
24692470
fast-xml-parser "^4.0.12"
24702471
glob "^7.1.3"
24712472
ora "^5.4.1"
24722473

2473-
"@react-native-community/[email protected]":
2474-
version "13.0.0"
2475-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-13.0.0.tgz#4c3bfcd8f51a8c5212355c4110d5f81c9783c8ea"
2476-
integrity sha512-HcIF23/Af5ghqV5F1ksHVIwVjVtHFeKht4U14DbO85HWw19SwYJ8O+GdDafXy7wdpxE6s0H4ZZDFnNk3zoc/Hg==
2474+
"@react-native-community/[email protected]":
2475+
version "13.5.0"
2476+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.5.0.tgz#c55ec19553d98bb2fda6901bbfc8adeffc2a92f8"
2477+
integrity sha512-Z1KdRPIJGRi/iwHW2k5B3FVCy+1BtTAz45oYfGbqdP51GJqmbo0za7DcNQSy0cgbord9DHMSucFxVhrJKeRgvA==
2478+
dependencies:
2479+
"@react-native-community/cli-platform-apple" "13.5.0"
2480+
2481+
"@react-native-community/[email protected]":
2482+
version "13.5.0"
2483+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-13.5.0.tgz#2d3d431885650000e377630a192f5daca4180b34"
2484+
integrity sha512-1SBV0xT47TuM6tRxPmR86Bz0RdffoGFnJcfChM1M+reUNmFz92yKWNJ8x3K3db5+2gWsrER7LET27eETqzsM2w==
24772485

2478-
"@react-native-community/cli-server-api@13.0.0":
2479-
version "13.0.0"
2480-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.0.0.tgz#e937503c6fb3fa42e8380e2b35cb18f19e168c6d"
2481-
integrity sha512-PHg/dc4BQhMgV0LzrZ0JFus1hrYIOl2yOOb5SsHklQALhtQebAozEtMOJMmQ5G/yjRxKcfaLwTm+MoydC0fPlw==
2486+
"@react-native-community/cli-server-api@13.5.0":
2487+
version "13.5.0"
2488+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.5.0.tgz#5a862b4ff88ba97416548d0980c806eb7d44eb6c"
2489+
integrity sha512-B4LaShCnxhqm1klRFVEI/4evABhjPsCjwHAbDjFS4MZtnlS78kr249qSdwwDiU2GlezrKGNK5SN+mNZp1R5OYg==
24822490
dependencies:
2483-
"@react-native-community/cli-debugger-ui" "13.0.0"
2484-
"@react-native-community/cli-tools" "13.0.0"
2491+
"@react-native-community/cli-debugger-ui" "13.5.0"
2492+
"@react-native-community/cli-tools" "13.5.0"
24852493
compression "^1.7.1"
24862494
connect "^3.6.5"
24872495
errorhandler "^1.5.1"
@@ -2490,10 +2498,10 @@
24902498
serve-static "^1.13.1"
24912499
ws "^7.5.1"
24922500

2493-
"@react-native-community/cli-tools@13.0.0":
2494-
version "13.0.0"
2495-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.0.0.tgz#c3136dc3648f763f3eb6068df56ca14f12ace155"
2496-
integrity sha512-3C/GiFpIJbbuWgH+4T63vmL7K1OjYIs62rbGJp+BW6BbCTZpgMMk3EMZz1fNctaNcj+95jqmnd01PYTE1s/sIA==
2501+
"@react-native-community/cli-tools@13.5.0":
2502+
version "13.5.0"
2503+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.5.0.tgz#4a2fa67d27f579dacc6bfb06591b368632e5fc00"
2504+
integrity sha512-p47uy8Cqkhrso1Fog6zzdQ5edyg224uOdzfjsjl9bzSj2UqerAJafgQBFEdovP5teOdwxNyTrlzPCPTLLjKFvA==
24972505
dependencies:
24982506
appdirsjs "^1.2.4"
24992507
chalk "^4.1.2"
@@ -2506,27 +2514,27 @@
25062514
shell-quote "^1.7.3"
25072515
sudo-prompt "^9.0.0"
25082516

2509-
"@react-native-community/cli-types@13.0.0":
2510-
version "13.0.0"
2511-
resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.0.0.tgz#319c40479cbaee256c032583674da2b0571ed81e"
2512-
integrity sha512-YkxUKej10MBwlgcFs1ltV5ofsKbsdPMjAluIhVzTfU+paIqATSdyvUVOw/7wCqujQnBdm0xJlLyjXQy9qzpJeQ==
2517+
"@react-native-community/cli-types@13.5.0":
2518+
version "13.5.0"
2519+
resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.5.0.tgz#1a0cca901c5c78f43ee8e3924271f1db7943e961"
2520+
integrity sha512-8Cij8eYqXJNZl1j2//0Q2pzqWH/qTRBUaznCu2D5EXY6cJfplUsM/y7hKcrTam7KMbREP4c9EoZsbOftJJbfHw==
25132521
dependencies:
25142522
joi "^17.2.1"
25152523

2516-
"@react-native-community/cli@13.0.0":
2517-
version "13.0.0"
2518-
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.0.0.tgz#8c6b5337cc149b80c049b50ed3127862ff3357e7"
2519-
integrity sha512-keDK0pJDUhTqm0Wj7IibdeWecMmD/obUagf/eTC+pCmt5Pyqy/3S8mObKwvYUH1HZk6YHtFAgqF7qUMpBE05ww==
2520-
dependencies:
2521-
"@react-native-community/cli-clean" "13.0.0"
2522-
"@react-native-community/cli-config" "13.0.0"
2523-
"@react-native-community/cli-debugger-ui" "13.0.0"
2524-
"@react-native-community/cli-doctor" "13.0.0"
2525-
"@react-native-community/cli-hermes" "13.0.0"
2526-
"@react-native-community/cli-plugin-metro" "13.0.0"
2527-
"@react-native-community/cli-server-api" "13.0.0"
2528-
"@react-native-community/cli-tools" "13.0.0"
2529-
"@react-native-community/cli-types" "13.0.0"
2524+
"@react-native-community/cli@13.5.0":
2525+
version "13.5.0"
2526+
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.5.0.tgz#072bb19af4ed0f02f4f1b7684954d75e5da16393"
2527+
integrity sha512-f4ljPmnNG98su/sAG/wN9cGGsHi037w4ShrripjVBJf9LvkXcWI9T99+n+uVHH/UYydRsfJnihi2bNBCXQ31Hg==
2528+
dependencies:
2529+
"@react-native-community/cli-clean" "13.5.0"
2530+
"@react-native-community/cli-config" "13.5.0"
2531+
"@react-native-community/cli-debugger-ui" "13.5.0"
2532+
"@react-native-community/cli-doctor" "13.5.0"
2533+
"@react-native-community/cli-hermes" "13.5.0"
2534+
"@react-native-community/cli-plugin-metro" "13.5.0"
2535+
"@react-native-community/cli-server-api" "13.5.0"
2536+
"@react-native-community/cli-tools" "13.5.0"
2537+
"@react-native-community/cli-types" "13.5.0"
25302538
chalk "^4.1.2"
25312539
commander "^9.4.1"
25322540
deepmerge "^4.3.0"
@@ -7127,7 +7135,7 @@ [email protected]:
71277135
dependencies:
71287136
terser "^5.15.0"
71297137

7130-
[email protected], metro-resolver@^0.80.3:
7138+
[email protected], metro-resolver@^0.80.0, metro-resolver@^0.80.3:
71317139
version "0.80.3"
71327140
resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.3.tgz#f9676508583d81182c7afaabc908254dc928a345"
71337141
integrity sha512-zwa0i32rj/TI3NivcvMXHJwTG2gUgo2dXdcnAJlhEKKQvyN+7AfhNdQSlDdDqMQmU7FaLRdeWORnQJbYCrprQQ==

0 commit comments

Comments
 (0)