| 12345678910111213141516171819202122232425262728293031 | 'use strict';var path = require('path');var which = require('which');var LRU = require('lru-cache');var commandCache = new LRU({ max: 50, maxAge: 30 * 1000 });  // Cache just for 30secfunction resolveCommand(command, noExtension) {    var resolved;    noExtension = !!noExtension;    resolved = commandCache.get(command + '!' + noExtension);    // Check if its resolved in the cache    if (commandCache.has(command)) {        return commandCache.get(command);    }    try {        resolved = !noExtension ?            which.sync(command) :            which.sync(command, { pathExt: path.delimiter + (process.env.PATHEXT || '') });    } catch (e) { /* empty */ }    commandCache.set(command + '!' + noExtension, resolved);    return resolved;}module.exports = resolveCommand;
 |