You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|     value: true
 | |
| });
 | |
| Object.defineProperty(exports, "install", {
 | |
|     enumerable: true,
 | |
|     get: function() {
 | |
|         return install;
 | |
|     }
 | |
| });
 | |
| const _picocolors = require("../picocolors");
 | |
| const _crossspawn = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/cross-spawn"));
 | |
| function _interop_require_default(obj) {
 | |
|     return obj && obj.__esModule ? obj : {
 | |
|         default: obj
 | |
|     };
 | |
| }
 | |
| function install(root, dependencies, { packageManager, isOnline, devDependencies }) {
 | |
|     /**
 | |
|    * (p)npm-specific command-line flags.
 | |
|    */ const npmFlags = [];
 | |
|     /**
 | |
|    * Yarn-specific command-line flags.
 | |
|    */ const yarnFlags = [];
 | |
|     /**
 | |
|    * Return a Promise that resolves once the installation is finished.
 | |
|    */ return new Promise((resolve, reject)=>{
 | |
|         let args;
 | |
|         let command = packageManager;
 | |
|         const useYarn = packageManager === "yarn";
 | |
|         if (dependencies && dependencies.length) {
 | |
|             /**
 | |
|        * If there are dependencies, run a variation of `{packageManager} add`.
 | |
|        */ if (useYarn) {
 | |
|                 /**
 | |
|          * Call `yarn add --exact (--offline)? (-D)? ...`.
 | |
|          */ args = [
 | |
|                     "add",
 | |
|                     "--exact"
 | |
|                 ];
 | |
|                 if (!isOnline) args.push("--offline");
 | |
|                 args.push("--cwd", root);
 | |
|                 if (devDependencies) args.push("--dev");
 | |
|                 args.push(...dependencies);
 | |
|             } else {
 | |
|                 /**
 | |
|          * Call `(p)npm install [--save|--save-dev] ...`.
 | |
|          */ args = [
 | |
|                     "install",
 | |
|                     "--save-exact"
 | |
|                 ];
 | |
|                 args.push(devDependencies ? "--save-dev" : "--save");
 | |
|                 args.push(...dependencies);
 | |
|             }
 | |
|         } else {
 | |
|             /**
 | |
|        * If there are no dependencies, run a variation of `{packageManager}
 | |
|        * install`.
 | |
|        */ args = [
 | |
|                 "install"
 | |
|             ];
 | |
|             if (!isOnline) {
 | |
|                 console.log((0, _picocolors.yellow)("You appear to be offline."));
 | |
|                 if (useYarn) {
 | |
|                     console.log((0, _picocolors.yellow)("Falling back to the local Yarn cache."));
 | |
|                     console.log();
 | |
|                     args.push("--offline");
 | |
|                 } else {
 | |
|                     console.log();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         /**
 | |
|      * Add any package manager-specific flags.
 | |
|      */ if (useYarn) {
 | |
|             args.push(...yarnFlags);
 | |
|         } else {
 | |
|             args.push(...npmFlags);
 | |
|         }
 | |
|         /**
 | |
|      * Spawn the installation process.
 | |
|      */ const child = (0, _crossspawn.default)(command, args, {
 | |
|             stdio: "inherit",
 | |
|             env: {
 | |
|                 ...process.env,
 | |
|                 ADBLOCK: "1",
 | |
|                 // we set NODE_ENV to development as pnpm skips dev
 | |
|                 // dependencies when production
 | |
|                 NODE_ENV: "development",
 | |
|                 DISABLE_OPENCOLLECTIVE: "1"
 | |
|             }
 | |
|         });
 | |
|         child.on("close", (code)=>{
 | |
|             if (code !== 0) {
 | |
|                 reject({
 | |
|                     command: `${command} ${args.join(" ")}`
 | |
|                 });
 | |
|                 return;
 | |
|             }
 | |
|             resolve();
 | |
|         });
 | |
|     });
 | |
| }
 | |
| 
 | |
| //# sourceMappingURL=install.js.map
 |