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.
		
		
		
		
		
			
		
			
				
					35 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					35 lines
				
				1.2 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | const npg = require('..'); | ||
|  | const versioning = require('../lib/util/versioning.js'); | ||
|  | const napi = require('../lib/util/napi.js'); | ||
|  | const existsSync = require('fs').existsSync || require('path').existsSync; | ||
|  | const path = require('path'); | ||
|  | 
 | ||
|  | module.exports = exports; | ||
|  | 
 | ||
|  | exports.usage = 'Finds the require path for the node-pre-gyp installed module'; | ||
|  | 
 | ||
|  | exports.validate = function(package_json, opts) { | ||
|  |   versioning.validate_config(package_json, opts); | ||
|  | }; | ||
|  | 
 | ||
|  | exports.find = function(package_json_path, opts) { | ||
|  |   if (!existsSync(package_json_path)) { | ||
|  |     throw new Error(package_json_path + 'does not exist'); | ||
|  |   } | ||
|  |   const prog = new npg.Run({ package_json_path, argv: process.argv }); | ||
|  |   prog.setBinaryHostProperty(); | ||
|  |   const package_json = prog.package_json; | ||
|  | 
 | ||
|  |   versioning.validate_config(package_json, opts); | ||
|  |   let napi_build_version; | ||
|  |   if (napi.get_napi_build_versions(package_json, opts)) { | ||
|  |     napi_build_version = napi.get_best_napi_build_version(package_json, opts); | ||
|  |   } | ||
|  |   opts = opts || {}; | ||
|  |   if (!opts.module_root) opts.module_root = path.dirname(package_json_path); | ||
|  |   const meta = versioning.evaluate(package_json, opts, napi_build_version); | ||
|  |   return meta.module; | ||
|  | }; |