MACHIN
This commit is contained in:
		
							
								
								
									
										59
									
								
								32/node_modules/cross-spawn/lib/enoent.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								32/node_modules/cross-spawn/lib/enoent.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
'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, 'spawn');
 | 
			
		||||
 | 
			
		||||
            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,
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user