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
2 years ago
|
'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
|