in src/connector.ts [221:274]
async getOptions(opts: ConnectionOptions): Promise<DriverOptions> {
const {instances} = this;
await instances.loadInstance(opts);
return {
stream() {
const cloudSqlInstance = instances.getInstance(opts);
const {
instanceInfo,
ephemeralCert,
host,
port,
privateKey,
serverCaCert,
dnsName,
} = cloudSqlInstance;
if (
instanceInfo &&
ephemeralCert &&
host &&
port &&
privateKey &&
serverCaCert
) {
const tlsSocket = getSocket({
instanceInfo,
ephemeralCert,
host,
port,
privateKey,
serverCaCert,
instanceDnsName: dnsName,
serverName: instanceInfo.domainName || dnsName, // use the configured domain name, or the instance dnsName.
});
tlsSocket.once('error', () => {
cloudSqlInstance.forceRefresh();
});
tlsSocket.once('secureConnect', async () => {
cloudSqlInstance.setEstablishedConnection();
});
cloudSqlInstance.addSocket(tlsSocket);
return tlsSocket;
}
throw new CloudSQLConnectorError({
message: 'Invalid Cloud SQL Instance info',
code: 'EBADINSTANCEINFO',
});
},
};
}