UNPKG

sterfive-bonjour-service

Version:

A Bonjour/Zeroconf implementation in TypeScript

58 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DnsTxt = void 0; class DnsTxt { constructor(opts = {}) { this.binary = opts ? opts.binary : false; } /** * Encode the KeyValue to buffer * @param data * @returns */ encode(data = {}) { return Object.entries(data).map(([key, value]) => { let item = `${key}=${value}`; return Buffer.from(item); }); } /** * Decode the buffer to KeyValue * @param buffer * @returns */ decode(buffer) { const data = {}; // Format buffer to KeyValue try { let format = buffer.toString(); let parts = format.split(/=(.+)/); let key = parts[0]; let value = parts[1]; data[key] = value; } catch (_) { } // Return data a KeyValue return data; } /** * Decode all buffer items to KeyValye * @param buffers * @returns */ decodeAll(buffers) { return buffers .filter((i) => i.length > 1) .map((i) => this.decode(i)) .reduce((prev, curr) => { const obj = prev; let [key] = Object.keys(curr); let [value] = Object.values(curr); obj[key] = value; return obj; }, {}); } } exports.DnsTxt = DnsTxt; exports.default = DnsTxt; //# sourceMappingURL=dns-txt.js.map