| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- 'use strict';
 
- const isWin = process.platform === 'win32';
 
- function notFoundError(original, syscall) {
 
-     return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
 
-         code: 'ENOENT',
 
-         errno: 'ENOENT',
 
-         syscall: `${syscall} ${original.command}`,
 
-         path: original.command,
 
-         spawnargs: original.args,
 
-     });
 
- }
 
- function hookChildProcess(cp, parsed) {
 
-     if (!isWin) {
 
-         return;
 
-     }
 
-     const originalEmit = cp.emit;
 
-     cp.emit = function (name, arg1) {
 
-         // 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') {
 
-             const err = verifyENOENT(arg1, parsed);
 
-             if (err) {
 
-                 return originalEmit.call(cp, 'error', err);
 
-             }
 
-         }
 
-         return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params
 
-     };
 
- }
 
- 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');
 
-     }
 
-     return null;
 
- }
 
- module.exports = {
 
-     hookChildProcess,
 
-     verifyENOENT,
 
-     verifyENOENTSync,
 
-     notFoundError,
 
- };
 
 
  |