export async function resolveTxtRecord()

in src/dns-lookup.ts [18:50]


export async function resolveTxtRecord(name: string): Promise<string> {
  return new Promise((resolve, reject) => {
    dns.resolveTxt(name, (err, addresses) => {
      if (err) {
        reject(
          new CloudSQLConnectorError({
            code: 'EDOMAINNAMELOOKUPERROR',
            message: 'Error looking up TXT record for domain ' + name,
            errors: [err],
          })
        );
        return;
      }

      if (!addresses || addresses.length === 0) {
        reject(
          new CloudSQLConnectorError({
            code: 'EDOMAINNAMELOOKUPFAILED',
            message: 'No records returned for domain ' + name,
          })
        );
        return;
      }

      // Each result may be split into multiple strings. Join the strings.
      const joinedAddresses = addresses.map(strs => strs.join(''));
      // Sort the results alphabetically for consistency,
      joinedAddresses.sort((a, b) => a.localeCompare(b));
      // Return the first result.
      resolve(joinedAddresses[0]);
    });
  });
}