UNPKG

bit-bin

Version:

<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b

199 lines (152 loc) 6.2 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.installPackages = installPackages; exports.installNpmPackagesForComponents = installNpmPackagesForComponents; exports.getAllRootDirectoriesFor = getAllRootDirectoriesFor; function _bluebird() { const data = require("bluebird"); _bluebird = function () { return data; }; return data; } function _ramda() { const data = _interopRequireDefault(require("ramda")); _ramda = function () { return data; }; return data; } function _fsExtra() { const data = _interopRequireDefault(require("fs-extra")); _fsExtra = function () { return data; }; return data; } function path() { const data = _interopRequireWildcard(require("path")); path = function () { return data; }; return data; } function _() { const data = _interopRequireDefault(require(".")); _ = function () { return data; }; return data; } function _loader() { const data = _interopRequireDefault(require("../cli/loader")); _loader = function () { return data; }; return data; } function _loaderMessages() { const data = require("../cli/loader/loader-messages"); _loaderMessages = function () { return data; }; return data; } function _filterAsync() { const data = _interopRequireDefault(require("../utils/array/filter-async")); _filterAsync = function () { return data; }; return data; } function _constants() { const data = require("../constants"); _constants = function () { return data; }; return data; } function installPackages(_x, _x2, _x3) { return _installPackages.apply(this, arguments); } function _installPackages() { _installPackages = (0, _bluebird().coroutine)(function* (consumer, dirs, verbose, // true shows all messages, false shows only a successful message installRootPackageJson = false, silentPackageManagerResult = false, // don't shows packageManager results at all installPeerDependencies = false, // also install peer dependencies installProdPackagesOnly = false) { var _consumer$config$depe, _consumer$config$depe2; const dirsWithPkgJson = yield filterDirsWithoutPackageJson(dirs); const packageManager = consumer.config.packageManager || _constants().DEFAULT_PACKAGE_MANAGER; const packageManagerArgs = consumer.packageManagerArgs.length ? consumer.packageManagerArgs : ((_consumer$config$depe = consumer.config.dependencyResolver) === null || _consumer$config$depe === void 0 ? void 0 : _consumer$config$depe.extraArgs) || []; const packageManagerProcessOptions = ((_consumer$config$depe2 = consumer.config.dependencyResolver) === null || _consumer$config$depe2 === void 0 ? void 0 : _consumer$config$depe2.packageManagerProcessOptions) || {}; const useWorkspaces = consumer.config._useWorkspaces; _loader().default.start(_loaderMessages().BEFORE_INSTALL_NPM_DEPENDENCIES); // don't pass the packages to npmClient.install function. // otherwise, it'll try to npm install the packages in one line 'npm install packageA packageB' and when // there are mix of public and private packages it fails with 404 error. // passing an empty array, results in installing packages from the package.json file let results = yield _().default.install({ modules: [], packageManager, packageManagerArgs, packageManagerProcessOptions, useWorkspaces: !!useWorkspaces, dirs: dirsWithPkgJson, rootDir: consumer.getPath(), installRootPackageJson, installPeerDependencies, installProdPackagesOnly, verbose }); _loader().default.stop(); if (!Array.isArray(results)) { results = [results]; } if (!silentPackageManagerResult || verbose) { results.forEach(result => { if (result) _().default.printResults(result); }); } }); return _installPackages.apply(this, arguments); } function installNpmPackagesForComponents(_x4) { return _installNpmPackagesForComponents.apply(this, arguments); } function _installNpmPackagesForComponents() { _installNpmPackagesForComponents = (0, _bluebird().coroutine)(function* ({ consumer, basePath, componentsWithDependencies, verbose = false, silentPackageManagerResult = false, installPeerDependencies = false, installProdPackagesOnly = false }) { const componentDirsRelative = getAllRootDirectoriesFor(componentsWithDependencies); const componentDirs = componentDirsRelative.map(dir => basePath ? path().join(basePath, dir) : dir); return installPackages(consumer, componentDirs, verbose, false, silentPackageManagerResult, installPeerDependencies, installProdPackagesOnly); }); return _installNpmPackagesForComponents.apply(this, arguments); } function getAllRootDirectoriesFor(componentsWithDependencies) { // if dependencies are installed as bit-components, go to each one of the dependencies and install npm packages // otherwise, if the dependencies are installed as npm packages, npm already takes care of that const componentsWithDependenciesFlatten = _ramda().default.flatten(componentsWithDependencies.map(oneComponentWithDependencies => { return oneComponentWithDependencies.component.dependenciesSavedAsComponents ? [oneComponentWithDependencies.component, ...oneComponentWithDependencies.dependencies] : [oneComponentWithDependencies.component]; })); const componentDirsRelative = componentsWithDependenciesFlatten.map(component => component.writtenPath); return _ramda().default.uniq(componentDirsRelative); } function filterDirsWithoutPackageJson(_x5) { return _filterDirsWithoutPackageJson.apply(this, arguments); } function _filterDirsWithoutPackageJson() { _filterDirsWithoutPackageJson = (0, _bluebird().coroutine)(function* (dirs) { return (0, _filterAsync().default)(dirs, dir => _fsExtra().default.pathExists(path().join(dir, _constants().PACKAGE_JSON))); }); return _filterDirsWithoutPackageJson.apply(this, arguments); }