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
		
	
| 
											9 months ago
										 | "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
 |