"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.toString = toString;
exports.toType = toType;
function toString(type) {
  switch (type) {
    case 1:
      return 'A';
    case 10:
      return 'NULL';
    case 28:
      return 'AAAA';
    case 18:
      return 'AFSDB';
    case 42:
      return 'APL';
    case 257:
      return 'CAA';
    case 60:
      return 'CDNSKEY';
    case 59:
      return 'CDS';
    case 37:
      return 'CERT';
    case 5:
      return 'CNAME';
    case 49:
      return 'DHCID';
    case 32769:
      return 'DLV';
    case 39:
      return 'DNAME';
    case 48:
      return 'DNSKEY';
    case 43:
      return 'DS';
    case 55:
      return 'HIP';
    case 13:
      return 'HINFO';
    case 45:
      return 'IPSECKEY';
    case 25:
      return 'KEY';
    case 36:
      return 'KX';
    case 29:
      return 'LOC';
    case 15:
      return 'MX';
    case 35:
      return 'NAPTR';
    case 2:
      return 'NS';
    case 47:
      return 'NSEC';
    case 50:
      return 'NSEC3';
    case 51:
      return 'NSEC3PARAM';
    case 12:
      return 'PTR';
    case 46:
      return 'RRSIG';
    case 17:
      return 'RP';
    case 24:
      return 'SIG';
    case 6:
      return 'SOA';
    case 99:
      return 'SPF';
    case 33:
      return 'SRV';
    case 44:
      return 'SSHFP';
    case 32768:
      return 'TA';
    case 249:
      return 'TKEY';
    case 52:
      return 'TLSA';
    case 250:
      return 'TSIG';
    case 16:
      return 'TXT';
    case 252:
      return 'AXFR';
    case 251:
      return 'IXFR';
    case 41:
      return 'OPT';
    case 255:
      return 'ANY';
  }
  return 'UNKNOWN_' + type;
}
function toType(name) {
  switch (name.toUpperCase()) {
    case 'A':
      return 1;
    case 'NULL':
      return 10;
    case 'AAAA':
      return 28;
    case 'AFSDB':
      return 18;
    case 'APL':
      return 42;
    case 'CAA':
      return 257;
    case 'CDNSKEY':
      return 60;
    case 'CDS':
      return 59;
    case 'CERT':
      return 37;
    case 'CNAME':
      return 5;
    case 'DHCID':
      return 49;
    case 'DLV':
      return 32769;
    case 'DNAME':
      return 39;
    case 'DNSKEY':
      return 48;
    case 'DS':
      return 43;
    case 'HIP':
      return 55;
    case 'HINFO':
      return 13;
    case 'IPSECKEY':
      return 45;
    case 'KEY':
      return 25;
    case 'KX':
      return 36;
    case 'LOC':
      return 29;
    case 'MX':
      return 15;
    case 'NAPTR':
      return 35;
    case 'NS':
      return 2;
    case 'NSEC':
      return 47;
    case 'NSEC3':
      return 50;
    case 'NSEC3PARAM':
      return 51;
    case 'PTR':
      return 12;
    case 'RRSIG':
      return 46;
    case 'RP':
      return 17;
    case 'SIG':
      return 24;
    case 'SOA':
      return 6;
    case 'SPF':
      return 99;
    case 'SRV':
      return 33;
    case 'SSHFP':
      return 44;
    case 'TA':
      return 32768;
    case 'TKEY':
      return 249;
    case 'TLSA':
      return 52;
    case 'TSIG':
      return 250;
    case 'TXT':
      return 16;
    case 'AXFR':
      return 252;
    case 'IXFR':
      return 251;
    case 'OPT':
      return 41;
    case 'ANY':
      return 255;
    case '*':
      return 255;
  }
  if (name.toUpperCase().startsWith('UNKNOWN_')) return parseInt(name.slice(8));
  return 0;
}