microsoft/vscode-react-native

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fix-ts-error1

Branches

Tags

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

Clone

HTTPS

Download ZIP

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

77lines · modeblame

c7856462Heniker4 years ago1// 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
8609d701AndreiLobanovich4 years ago8import * as semver from "semver";
60d51474AndreiLobanovich4 years ago9import { PromiseUtil } from "../../../../common/node/promise";
8609d701AndreiLobanovich4 years ago10import { PackageVersion } from "../../../../common/projectVersionHelper";
c7856462Heniker4 years ago11import { 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";
60d51474AndreiLobanovich4 years ago21import { xcodeBuild, xcodeBuildVersionRNmacOS } from "./xcodebuild";
c7856462Heniker4 years ago22import expoCli from "./expoCli";
62af5fc4Samriel4 years ago23import devmode from "./devmode";
24import visualStudio from "./visualStudio";
25import longPath from "./longPath";
26import windows from "./windows";
27import dotnet from "./dotnet";
60d51474AndreiLobanovich4 years ago28import xcodecli from "./xcodecli";
29import macos from "./macos";
62af5fc4Samriel4 years ago30
c7856462Heniker4 years ago31import { IValidation } from "./types";
32
8609d701AndreiLobanovich4 years ago33export const getChecks = (versions: PackageVersion[] = []): IValidation[] => {
c7856462Heniker4 years ago34// if some checks become obsolete (e.g. no need to check both npm and yarn) - write logic here
35
8609d701AndreiLobanovich4 years ago36const checks: IValidation[] = [
c7856462Heniker4 years ago37iosDeploy,
38adbAndroid,
39adbExpo,
40emulator,
41androidHome,
42java,
43nodeJs,
44gradle,
45cocoaPods,
46npm,
47watchman,
48expoCli,
62af5fc4Samriel4 years ago49devmode,
50visualStudio,
51longPath,
52windows,
53dotnet,
60d51474AndreiLobanovich4 years ago54xcodecli,
55macos,
56xcodeBuild,
57xcodeBuildVersionRNmacOS,
8609d701AndreiLobanovich4 years ago58];
59
60const rnVersionContainer = versions.find(it => Object.keys(it).includes("reactNativeVersion"));
61if (
62rnVersionContainer &&
63semver.gte(rnVersionContainer.reactNativeVersion, "0.68.0") &&
64["linux", "darwin"].includes(process.platform)
65) {
66const androidEnvCheck = checks.find(it => it.label === "Android Env");
67if (androidEnvCheck) {
68androidEnvCheck.exec = androidEnvCheck.exec.bind(null, "ANDROID_SDK_ROOT");
69}
70}
c7856462Heniker4 years ago71
60d51474AndreiLobanovich4 years ago72checks.forEach(it => {
73it.exec = PromiseUtil.promiseCacheDecorator(it.exec);
74});
75
c7856462Heniker4 years ago76return checks.filter(it => (it.platform ? it.platform.includes(process.platform) : true));
77};