You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							45 lines
						
					
					
						
							1.4 KiB
						
					
					
				var path = require('path'); | 
						|
 | 
						|
var versionArray = process.version | 
						|
  .substr(1) | 
						|
  .replace(/-.*$/, '') | 
						|
  .split('.') | 
						|
  .map(function(item) { | 
						|
    return +item; | 
						|
  }); | 
						|
 | 
						|
// TODO: Check if the main node semantic version is within multiple ranges, | 
						|
// or detect presence of built-in N-API by some other mechanism TBD. | 
						|
 | 
						|
// We know which version of Node.js first shipped the incarnation of the API | 
						|
// available in *this* package. So, if we find that the Node.js version is below | 
						|
// that, we indicate that the API is missing from Node.js. | 
						|
var isNodeApiBuiltin = ( | 
						|
  versionArray[0] > 8 || | 
						|
  (versionArray[0] == 8 && versionArray[1] >= 6) || | 
						|
  (versionArray[0] == 6 && versionArray[1] >= 15) || | 
						|
  (versionArray[0] == 6 && versionArray[1] >= 14 && versionArray[2] >= 2)); | 
						|
 | 
						|
// The flag is not needed when the Node version is not 8, nor if the API is | 
						|
// built-in, because we removed the flag at the same time as creating the final | 
						|
// incarnation of the built-in API. | 
						|
var needsFlag = (!isNodeApiBuiltin && versionArray[0] == 8); | 
						|
 | 
						|
var include = [__dirname]; | 
						|
var gyp = path.join(__dirname, 'src', 'node_api.gyp'); | 
						|
 | 
						|
if (isNodeApiBuiltin) { | 
						|
  gyp += ':nothing'; | 
						|
} else { | 
						|
  gyp += ':node-api'; | 
						|
  include.unshift(path.join(__dirname, 'external-napi')); | 
						|
} | 
						|
 | 
						|
module.exports = { | 
						|
  include: include.map(function(item) { | 
						|
    return '"' + item + '"'; | 
						|
  }).join(' '), | 
						|
  gyp: gyp, | 
						|
  isNodeApiBuiltin: isNodeApiBuiltin, | 
						|
  needsFlag: needsFlag | 
						|
};
 | 
						|
 |