Skip to content

Commit 29d1495

Browse files
committed
feat: visionos prompt
1 parent aba6463 commit 29d1495

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

packages/nx/src/schemas/base.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { COMMANDS } from '../utils/commands';
22
import { KeysOfProperty } from '../utils/types';
33

4-
export type Platform = 'ios' | 'android';
4+
export type Platform = 'ios' | 'android' | 'visionos';
55

66
export interface BaseSchema {
77
command: COMMANDS;

packages/nx/src/utils/executors.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,17 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
3030
const platformCheck = [context.configurationName, options.platform].concat(options?.['_']);
3131
let isIos = platformCheck.some((overrides) => overrides === 'ios');
3232
let isAndroid = platformCheck.some((overrides) => overrides === 'android');
33+
let isVision = platformCheck.some((overrides) => overrides === 'vision' || overrides === 'visionos');
3334

34-
if (!isClean && !isSilent && !isIos && !isAndroid) {
35+
if (!isClean && !isSilent && !isIos && !isAndroid && !isVision) {
3536
const platform = await selectPlatform(options);
3637
isIos = platform === 'ios';
3738
isAndroid = platform === 'android';
39+
isVision = platform === 'visionos';
3840
}
3941

4042
if (!isClean) {
41-
options.platform = isAndroid ? 'android' : 'ios';
43+
options.platform = isAndroid ? 'android' : (isIos ? 'ios' : 'visionos');
4244
}
4345

4446
const projectConfig = context.projectsConfigurations.projects[context.projectName];
@@ -64,7 +66,7 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
6466
}
6567

6668
if (options.android?.xmlUpdates) updateXml(options.android.xmlUpdates, 'android');
67-
if (options.ios?.plistUpdates) updateXml(options.ios.plistUpdates, 'android');
69+
if (options.ios?.plistUpdates) updateXml(options.ios.plistUpdates, 'ios');
6870

6971
await checkOptions();
7072

@@ -84,7 +86,7 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
8486
return 'ios';
8587
}
8688

87-
const platformChoices: Platform[] = ['ios', 'android'];
89+
const platformChoices: Platform[] = ['ios', 'android', 'visionos'];
8890
const { platform } = await prompt<{ platform: Platform }>({
8991
type: 'select',
9092
name: 'platform',
@@ -166,6 +168,8 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
166168
let defaultDir: string[];
167169
if (type === 'ios') {
168170
defaultDir = ['App_Resources', 'iOS'];
171+
} else if (type === 'visionos') {
172+
defaultDir = ['App_Resources', 'visionOS'];
169173
} else if (type === 'android') {
170174
defaultDir = ['App_Resources', 'Android'];
171175
}
@@ -176,7 +180,7 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
176180
const fileContent = readFileSync(xmlFilePath, 'utf8');
177181
const xmlUpdates = xmlUpdatesConfig[filePathKeys];
178182

179-
if (type === 'ios') {
183+
if (type === 'ios' || type === 'visionos') {
180184
xmlFileContent = parse(fileContent);
181185
} else if (type === 'android') {
182186
const parser = new XMLParser({
@@ -212,7 +216,7 @@ export function commonExecutor(options: ExecutorSchema, context: ExecutorContext
212216

213217
if (needsUpdate) {
214218
let newXmlFileContent;
215-
if (type === 'ios') {
219+
if (type === 'ios' || type === 'visionos') {
216220
newXmlFileContent = build(xmlFileContent, { pretty: true, indent: '\t' });
217221
} else if (type === 'android') {
218222
const builder = new XMLBuilder({

0 commit comments

Comments
 (0)