UNPKG

homebridge-gsh

Version:
50 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseMessage = void 0; exports.createConnection = createConnection; const node_net_1 = require("node:net"); const node_url_1 = require("node:url"); const httpParser_1 = require("./httpParser"); exports.parseMessage = httpParser_1.default; function createConnection(instance, pin, body) { const client = (0, node_net_1.createConnection)({ host: instance.ipAddress, port: instance.port, }); client.write(_buildMessage({ method: 'PUT', url: 'http://' + instance.ipAddress + ':' + instance.port + '/characteristics', maxAttempts: 1, headers: { 'Content-Type': 'Application/json', 'authorization': pin, 'connection': 'keep-alive', }, body: JSON.stringify(body), })); return client; } function _headersToString(headers) { let response = ''; for (const header of Object.keys(headers)) { response = response + header + ': ' + headers[header] + '\r\n'; } return (response); } function _buildMessage(request) { const context = (0, node_url_1.parse)(request.url); let message; message = request.method + ' ' + context.pathname; if (context.search) { message = message + context.search; } message = message + ' HTTP/1.1\r\nHost: ' + context.host + '\r\n' + _headersToString(request.headers); if (request.body) { message = message + 'Content-Length: ' + request.body.length + '\r\n\r\n' + request.body + '\r\n\r\n'; } else { message = message + '\r\n\r\n'; } return (message); } //# sourceMappingURL=index.js.map