| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- 'use strict';
 
- var isWin = process.platform === 'win32';
 
- var resolveCommand = require('./util/resolveCommand');
 
- var isNode10 = process.version.indexOf('v0.10.') === 0;
 
- function notFoundError(command, syscall) {
 
-     var err;
 
-     err = new Error(syscall + ' ' + command + ' ENOENT');
 
-     err.code = err.errno = 'ENOENT';
 
-     err.syscall = syscall + ' ' + command;
 
-     return err;
 
- }
 
- function hookChildProcess(cp, parsed) {
 
-     var originalEmit;
 
-     if (!isWin) {
 
-         return;
 
-     }
 
-     originalEmit = cp.emit;
 
-     cp.emit = function (name, arg1) {
 
-         var err;
 
-         // If emitting "exit" event and exit code is 1, we need to check if
 
-         // the command exists and emit an "error" instead
 
-         // See: https://github.com/IndigoUnited/node-cross-spawn/issues/16
 
-         if (name === 'exit') {
 
-             err = verifyENOENT(arg1, parsed, 'spawn');
 
-             if (err) {
 
-                 return originalEmit.call(cp, 'error', err);
 
-             }
 
-         }
 
-         return originalEmit.apply(cp, arguments);
 
-     };
 
- }
 
- function verifyENOENT(status, parsed) {
 
-     if (isWin && status === 1 && !parsed.file) {
 
-         return notFoundError(parsed.original, 'spawn');
 
-     }
 
-     return null;
 
- }
 
- function verifyENOENTSync(status, parsed) {
 
-     if (isWin && status === 1 && !parsed.file) {
 
-         return notFoundError(parsed.original, 'spawnSync');
 
-     }
 
-     // If we are in node 10, then we are using spawn-sync; if it exited
 
-     // with -1 it probably means that the command does not exist
 
-     if (isNode10 && status === -1) {
 
-         parsed.file = isWin ? parsed.file : resolveCommand(parsed.original);
 
-         if (!parsed.file) {
 
-             return notFoundError(parsed.original, 'spawnSync');
 
-         }
 
-     }
 
-     return null;
 
- }
 
- module.exports.hookChildProcess = hookChildProcess;
 
- module.exports.verifyENOENT = verifyENOENT;
 
- module.exports.verifyENOENTSync = verifyENOENTSync;
 
- module.exports.notFoundError = notFoundError;
 
 
  |