42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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
 |