Sha256: f4de5181dd17fa2ee56db8dee6278de6020b7a0e2843086dc1f2e908e3396162

Contents?: true

Size: 1.24 KB

Versions: 7

Compression:

Stored size: 1.24 KB

Contents

var fs = require('fs')
var core
if (process.platform === 'win32' || global.TESTING_WINDOWS) {
  core = require('./windows.js')
} else if (typeof fs.access === 'function') {
  core = require('./access.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
    }
  }
}

Version data entries

7 entries across 6 versions & 3 rubygems

Version Path
lanes-0.8.0 node_modules/isexe/index.js
node-compiler-0.9.1 vendor/node/deps/npm/node_modules/which/node_modules/isexe/index.js
node-compiler-0.9.0 vendor/node-v7.2.1/deps/npm/node_modules/which/node_modules/isexe/index.js
node-compiler-0.8.0 vendor/node-v7.2.0/deps/npm/node_modules/which/node_modules/isexe/index.js
node-compiler-0.7.0 vendor/node-v7.1.0/deps/npm/node_modules/which/node_modules/isexe/index.js
node-compiler-0.7.0 vendor/node-v6.9.1/deps/npm/node_modules/which/node_modules/isexe/index.js
blackboard-3.1.9 lib/site_template/node_modules/isexe/index.js