Issues (2242)

node_modules/isexe/index.js (2 issues)

1
var fs = require('fs')
2
var core
3
if (process.platform === 'win32' || global.TESTING_WINDOWS) {
4
  core = require('./windows.js')
5
} else {
6
  core = require('./mode.js')
7
}
8
9
module.exports = isexe
10
isexe.sync = sync
11
12
function isexe (path, options, cb) {
13
  if (typeof options === 'function') {
14
    cb = options
15
    options = {}
16
  }
17
18
  if (!cb) {
19
    if (typeof Promise !== 'function') {
20
      throw new TypeError('callback not provided')
21
    }
22
23
    return new Promise(function (resolve, reject) {
24
      isexe(path, options || {}, function (er, is) {
25
        if (er) {
26
          reject(er)
27
        } else {
28
          resolve(is)
29
        }
30
      })
31
    })
32
  }
33
34
  core(path, options || {}, function (er, is) {
35
    // ignore EACCES because that just means we aren't allowed to run it
36
    if (er) {
37
      if (er.code === 'EACCES' || options && options.ignoreErrors) {
38
        er = null
39
        is = false
40
      }
41
    }
42
    cb(er, is)
43
  })
44
}
0 ignored issues
show
There is no return statement in this branch, but you do return something in other branches. Did you maybe miss it? If you do not want to return anything, consider adding return undefined; explicitly.
Loading history...
45
46
function sync (path, options) {
47
  // my kingdom for a filtered catch
48
  try {
49
    return core.sync(path, options || {})
50
  } catch (er) {
51
    if (options && options.ignoreErrors || er.code === 'EACCES') {
52
      return false
53
    } else {
0 ignored issues
show
Comprehensibility introduced by
else is not necessary here since all if branches return, consider removing it to reduce nesting and make code more readable.
Loading history...
54
      throw er
55
    }
56
  }
57
}
58