80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getYarnVersionIfAvailable = getYarnVersionIfAvailable;
|
|
exports.isProjectUsingYarn = isProjectUsingYarn;
|
|
function _child_process() {
|
|
const data = require("child_process");
|
|
_child_process = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _semver() {
|
|
const data = _interopRequireDefault(require("semver"));
|
|
_semver = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _cliTools() {
|
|
const data = require("@react-native-community/cli-tools");
|
|
_cliTools = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _findUp() {
|
|
const data = _interopRequireDefault(require("find-up"));
|
|
_findUp = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Use Yarn if available, it's much faster than the npm client.
|
|
* Return the version of yarn installed on the system, null if yarn is not available.
|
|
*/
|
|
function getYarnVersionIfAvailable() {
|
|
let yarnVersion;
|
|
try {
|
|
// execSync returns a Buffer -> convert to string
|
|
yarnVersion = ((0, _child_process().execSync)('yarn --version', {
|
|
stdio: [0, 'pipe', 'ignore']
|
|
}).toString() || '').trim();
|
|
} catch (error) {
|
|
return null;
|
|
}
|
|
// yarn < 0.16 has a 'missing manifest' bug
|
|
try {
|
|
if (_semver().default.gte(yarnVersion, '0.16.0')) {
|
|
return yarnVersion;
|
|
}
|
|
return null;
|
|
} catch (error) {
|
|
_cliTools().logger.error(`Cannot parse yarn version: ${yarnVersion}`);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if project is using Yarn (has `yarn.lock` in the tree)
|
|
*/
|
|
function isProjectUsingYarn(cwd) {
|
|
return _findUp().default.sync('yarn.lock', {
|
|
cwd
|
|
});
|
|
}
|
|
|
|
//# sourceMappingURL=yarn.ts.map
|