@rnv/engine-core
Version:
ReNative Engine Core
174 lines • 7.93 kB
JavaScript
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
;