UNPKG

@rnv/engine-core

Version:
174 lines 7.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var core_1 = require("@rnv/core"); var envinfo_1 = tslib_1.__importDefault(require("envinfo")); var semver_1 = tslib_1.__importDefault(require("semver")); exports.default = (0, core_1.createTask)({ description: 'Get relevant version info about OS, toolchain and libraries', fn: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var parsedInfo; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, _getEnvironmentInfo()]; case 1: parsedInfo = _a.sent(); return [4 /*yield*/, _checkAndConfigureSdks()]; case 2: _a.sent(); return [4 /*yield*/, _getCliVersions(parsedInfo)]; case 3: _a.sent(); (0, core_1.logToSummary)(_formatObject(parsedInfo)); return [2 /*return*/, true]; } }); }); }, task: core_1.RnvTaskName.info, isGlobalScope: true, }); var _checkAndConfigureSdks = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var moduleConfigs, _i, moduleConfigs_1, config, moduleName, configureFunction; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: moduleConfigs = [ { moduleName: 'sdk-tizen', configureFunction: 'checkAndConfigureTizenSdks' }, { moduleName: 'sdk-webos', configureFunction: 'checkAndConfigureWebosSdks' }, ]; _i = 0, moduleConfigs_1 = moduleConfigs; _a.label = 1; case 1: if (!(_i < moduleConfigs_1.length)) return [3 /*break*/, 4]; config = moduleConfigs_1[_i]; moduleName = config.moduleName, configureFunction = config.configureFunction; return [4 /*yield*/, _checkAndConfigureTargetSdk(moduleName, configureFunction)]; case 2: _a.sent(); _a.label = 3; case 3: _i++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }); }; var _checkAndConfigureTargetSdk = function (moduleName, configureFunction) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var SDKModule, e_1; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); SDKModule = require("@rnv/".concat(moduleName)); return [4 /*yield*/, SDKModule[configureFunction]()]; case 1: _a.sent(); return [3 /*break*/, 3]; case 2: e_1 = _a.sent(); (0, core_1.logDebug)("Error configuring ".concat(moduleName, " SDK: "), e_1); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }; var _getCliVersions = function (parsedInfo) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var c, cliVersions, addCliVersion; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: c = (0, core_1.getContext)(); cliVersions = {}; addCliVersion = function (cli, command, path, cliName) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var cliVersionOutput, cliVersionNumber, e_2; var _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); return [4 /*yield*/, (0, core_1.execCLI)(cli, command)]; case 1: cliVersionOutput = _b.sent(); cliVersionNumber = (_a = semver_1.default.coerce(cliVersionOutput)) === null || _a === void 0 ? void 0 : _a.version; if (cliVersionNumber) { cliVersions["".concat(cliName.replace('-', ' ').toUpperCase())] = { version: cliVersionNumber, path: path }; } return [3 /*break*/, 3]; case 2: e_2 = _b.sent(); (0, core_1.logDebug)("Error getting version for ".concat(cliName, ": "), e_2); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }; if (!c.cli.webosAres) return [3 /*break*/, 2]; return [4 /*yield*/, addCliVersion('webosAres', '--version', c.cli.webosAres, 'WEBOS CLI')]; case 1: _a.sent(); _a.label = 2; case 2: if (!c.cli.tizen) return [3 /*break*/, 4]; return [4 /*yield*/, addCliVersion('tizen', 'version', c.cli.tizen, 'TIZEN CLI')]; case 3: _a.sent(); _a.label = 4; case 4: if (Object.keys(cliVersions).length) { parsedInfo.CLI = cliVersions; } return [2 /*return*/]; } }); }); }; var _formatObject = function (obj, indent) { if (indent === void 0) { indent = 0; } var formattedString = ''; if (indent === 0) formattedString += '\n'; for (var key in obj) { if (obj[key] && typeof obj[key] === 'object' && obj[key].version) { formattedString += ' '.repeat(indent) + "".concat(key, ": ").concat(obj[key].version, " ").concat(obj[key].path ? "- ".concat(obj[key].path) : '', "\n"); } else if (Array.isArray(obj[key])) { formattedString += ' '.repeat(indent) + "".concat(key, ": ").concat(obj[key].join(', '), "\n"); } else if (typeof obj[key] === 'object') { formattedString += ' '.repeat(indent) + "".concat(key, ":\n"); formattedString += _formatObject(obj[key], indent + 2); } else { formattedString += ' '.repeat(indent) + "".concat(key, ": ").concat(obj[key], "\n"); } } return formattedString; }; var _getEnvironmentInfo = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var output, e_3; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, envinfo_1.default.run({ System: ['OS', 'CPU', 'Memory', 'Shell'], Binaries: ['Node', 'Yarn', 'npm', 'Watchman'], Managers: ['CocoaPods'], Languages: ['Ruby', 'Java'], IDEs: ['Xcode', 'Android Studio'], SDKs: ['iOS SDK', 'Android SDK'], npmPackages: ['react', 'react-native', '@react-native-community/cli', 'rnv'], npmGlobalPackages: ['*react-native*', 'rnv', 'lerna'], }, { json: true, duplicates: false })]; case 1: output = _a.sent(); return [2 /*return*/, JSON.parse(output)]; case 2: e_3 = _a.sent(); (0, core_1.logError)(e_3); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }; //# sourceMappingURL=taskInfo.js.map