26 lines
		
	
	
		
			705 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			705 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var semverCompare = require('semver-compare')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function pleaseUpgradeNode(pkg, opts) {
							 | 
						||
| 
								 | 
							
								  var opts = opts || {}
							 | 
						||
| 
								 | 
							
								  var requiredVersion = pkg.engines.node.replace('>=', '')
							 | 
						||
| 
								 | 
							
								  var currentVersion = process.version.replace('v', '')
							 | 
						||
| 
								 | 
							
								  if (semverCompare(currentVersion, requiredVersion) === -1) {
							 | 
						||
| 
								 | 
							
								    if (opts.message) {
							 | 
						||
| 
								 | 
							
								      console.error(opts.message(requiredVersion))
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      console.error(
							 | 
						||
| 
								 | 
							
								        pkg.name +
							 | 
						||
| 
								 | 
							
								          ' requires at least version ' +
							 | 
						||
| 
								 | 
							
								          requiredVersion +
							 | 
						||
| 
								 | 
							
								          ' of Node, please upgrade'
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (opts.hasOwnProperty('exitCode')) {
							 | 
						||
| 
								 | 
							
								      process.exit(opts.exitCode)
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      process.exit(1)
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |