mirror of
				https://github.com/actions/setup-node.git
				synced 2025-10-26 07:16:44 +08:00 
			
		
		
		
	* Updates * Update * Update * Update * Update * Yarn sometimes prefers npmrc, so use same token * Description * Update readme * Feedback * Add type * new toolkit and scoped registries * npmrc in RUNNER_TEMP * Dont always auth * Try exporting blank token * Get auth working for now pending runner changes * Fix string interpolation for auth token. * Don't export both userconfigs * Update authutil.js * Add single quotes for authString * Fix the registry string. * Use userconfig and append trailing slash * Keep in root of repo * Try just adding auth token * Remove auth token * Try changes again * Add tests * Npm and GPR samples * Add types
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var fs = require('fs')
 | |
| var core
 | |
| if (process.platform === 'win32' || global.TESTING_WINDOWS) {
 | |
|   core = require('./windows.js')
 | |
| } else {
 | |
|   core = require('./mode.js')
 | |
| }
 | |
| 
 | |
| module.exports = isexe
 | |
| isexe.sync = sync
 | |
| 
 | |
| function isexe (path, options, cb) {
 | |
|   if (typeof options === 'function') {
 | |
|     cb = options
 | |
|     options = {}
 | |
|   }
 | |
| 
 | |
|   if (!cb) {
 | |
|     if (typeof Promise !== 'function') {
 | |
|       throw new TypeError('callback not provided')
 | |
|     }
 | |
| 
 | |
|     return new Promise(function (resolve, reject) {
 | |
|       isexe(path, options || {}, function (er, is) {
 | |
|         if (er) {
 | |
|           reject(er)
 | |
|         } else {
 | |
|           resolve(is)
 | |
|         }
 | |
|       })
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   core(path, options || {}, function (er, is) {
 | |
|     // ignore EACCES because that just means we aren't allowed to run it
 | |
|     if (er) {
 | |
|       if (er.code === 'EACCES' || options && options.ignoreErrors) {
 | |
|         er = null
 | |
|         is = false
 | |
|       }
 | |
|     }
 | |
|     cb(er, is)
 | |
|   })
 | |
| }
 | |
| 
 | |
| function sync (path, options) {
 | |
|   // my kingdom for a filtered catch
 | |
|   try {
 | |
|     return core.sync(path, options || {})
 | |
|   } catch (er) {
 | |
|     if (options && options.ignoreErrors || er.code === 'EACCES') {
 | |
|       return false
 | |
|     } else {
 | |
|       throw er
 | |
|     }
 | |
|   }
 | |
| }
 |