microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
1.11.2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/extension/services/validationService/checks/index.ts

77lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4// also check out this cool things
5// https://www.npmjs.com/package/envinfo // does not list all required info
6// https://www.npmjs.com/package/command-exists // might find its use later on
7
8import * as semver from "semver";
9import { PromiseUtil } from "../../../../common/node/promise";
10import { PackageVersion } from "../../../../common/projectVersionHelper";
11import { adbAndroid, adbExpo } from "./adb";
12import cocoaPods from "./cocoaPods";
13import emulator from "./emulator";
14import { androidHome } from "./env";
15import gradle from "./gradle";
16import java from "./java";
17import nodeJs from "./nodeJS";
18import npm from "./npm";
19import watchman from "./watchman";
20import iosDeploy from "./iosDeploy";
21import { xcodeBuild, xcodeBuildVersionRNmacOS } from "./xcodebuild";
22import expoCli from "./expoCli";
23import devmode from "./devmode";
24import visualStudio from "./visualStudio";
25import longPath from "./longPath";
26import windows from "./windows";
27import dotnet from "./dotnet";
28import xcodecli from "./xcodecli";
29import macos from "./macos";
30
31import { IValidation } from "./types";
32
33export const getChecks = (versions: PackageVersion[] = []): IValidation[] => {
34 // if some checks become obsolete (e.g. no need to check both npm and yarn) - write logic here
35
36 const checks: IValidation[] = [
37 iosDeploy,
38 adbAndroid,
39 adbExpo,
40 emulator,
41 androidHome,
42 java,
43 nodeJs,
44 gradle,
45 cocoaPods,
46 npm,
47 watchman,
48 expoCli,
49 devmode,
50 visualStudio,
51 longPath,
52 windows,
53 dotnet,
54 xcodecli,
55 macos,
56 xcodeBuild,
57 xcodeBuildVersionRNmacOS,
58 ];
59
60 const rnVersionContainer = versions.find(it => Object.keys(it).includes("reactNativeVersion"));
61 if (
62 rnVersionContainer &&
63 semver.gte(rnVersionContainer.reactNativeVersion, "0.68.0") &&
64 ["linux", "darwin"].includes(process.platform)
65 ) {
66 const androidEnvCheck = checks.find(it => it.label === "Android Env");
67 if (androidEnvCheck) {
68 androidEnvCheck.exec = androidEnvCheck.exec.bind(null, "ANDROID_SDK_ROOT");
69 }
70 }
71
72 checks.forEach(it => {
73 it.exec = PromiseUtil.promiseCacheDecorator(it.exec);
74 });
75
76 return checks.filter(it => (it.platform ? it.platform.includes(process.platform) : true));
77};
78