UNPKG

@cliz/inlets

Version:
44 lines (43 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const net = require("net"); const doreamon_1 = require("@zodash/doreamon"); const utils_1 = require("../../../utils"); const debug = require('debug')('inlets:client:http'); const logger = doreamon_1.default.logger.getLogger('client:http'); async function http(port, host, socket, { id, data: _data }) { const data = await utils_1.dataProcessor.client.onRequest(_data); debug('request:', data); const req = new utils_1.Request(data); request(req, port, host, data, async (response, status, statusText) => { debug('response:', response.toString('utf8')); if (typeof status !== 'undefined') { logger.info(`${req.method} ${req.path} ${status} ${statusText}`); } const data = response.toString('base64'); socket.emit('response', { id, data: await utils_1.dataProcessor.client.response(data), }); }, () => { debug('request end'); }); } exports.default = http; function request(req, port, host, data, onData, onEnd) { const client = new net.Socket(); client.connect(+port, host, () => { }); client.on('data', data => { const _res = new utils_1.Response(data.toString('utf8')); onData(data, _res.status, _res.statusText); }); client.on('close', () => { onEnd(); }); client.on('error', (error) => { console.log('request error:', error); }); client.write(data); } ;