// deno-fmt-ignore-file // deno-lint-ignore-file // Copyright Joyent and Node contributors. All rights reserved. MIT license. // Taken from Node 18.12.1 // This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually 'use strict'; const common = require('../common'); const net = require('net'); const http = require('http'); class Agent extends http.Agent { createConnection() { const socket = new net.Socket(); socket.on('error', function() { socket.push('HTTP/1.1 200\r\n\r\n'); }); let onNewListener; socket.on('newListener', onNewListener = (name) => { if (name !== 'error') return; socket.removeListener('newListener', onNewListener); // Let other listeners to be set up too process.nextTick(() => { this.breakSocket(socket); }); }); return socket; } breakSocket(socket) { socket.emit('error', new Error('Intentional error')); } } const agent = new Agent(); http.request({ agent }).once('error', function() { console.log('ignore'); this.on('data', common.mustNotCall()); });