You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
'use strict'; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.DnsTxt = void 0; |
|
class DnsTxt { |
|
constructor(opts = {}) { |
|
this.binary = opts ? opts.binary : false; |
|
} |
|
encode(data = {}) { |
|
return Object.entries(data) |
|
.map(([key, value]) => { |
|
let item = `${key}=${value}`; |
|
return Buffer.from(item); |
|
}); |
|
} |
|
decode(buffer) { |
|
var data = {}; |
|
try { |
|
let format = buffer.toString(); |
|
let parts = format.split(/=(.+)/); |
|
let key = parts[0]; |
|
let value = parts[1]; |
|
data[key] = value; |
|
} |
|
catch (_) { } |
|
return data; |
|
} |
|
decodeAll(buffer) { |
|
return buffer |
|
.filter(i => i.length > 1) |
|
.map(i => this.decode(i)) |
|
.reduce((prev, curr) => { |
|
var 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
|