@react-native/core-cli-utils
Version:
React Native CLI library for Frameworks to build on
52 lines (50 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.assertDependencies = assertDependencies;
exports.isMacOS = void 0;
exports.isOnPath = isOnPath;
exports.isWindows = void 0;
exports.task = task;
exports.toPascalCase = void 0;
var _execa = _interopRequireDefault(require("execa"));
var _os = _interopRequireDefault(require("os"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : { default: e };
}
function task(order, label, action) {
return {
action,
label,
order,
};
}
const isWindows = (exports.isWindows = _os.default.platform() === "win32");
const isMacOS = (exports.isMacOS = _os.default.platform() === "darwin");
const toPascalCase = (label) =>
label.length === 0 ? "" : label[0].toUpperCase() + label.slice(1);
exports.toPascalCase = toPascalCase;
function isOnPath(dep, description) {
const cmd = isWindows ? ["where", [dep]] : ["command", ["-v", dep]];
try {
return {
dep,
description,
found: _execa.default.sync(...cmd).exitCode === 0,
};
} catch {
return {
dep,
description,
found: false,
};
}
}
function assertDependencies(...deps) {
for (const { found, dep, description } of deps) {
if (!found) {
throw new Error(`"${dep}" not found, ${description}`);
}
}
}