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]);
});
});
}