From c5946f3ac84a498de42926be7c7b43512089ca3c Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Wed, 13 Mar 2024 14:35:52 +0000 Subject: [PATCH] refactor: tighten up cloudflare detection The previous approach to detecting whether to use Cloudflare's sockets was to check for missing polyfills. But as we improve the polyfills that Wrangler can provide these checks are no longer valid. Now we just try to use the Cloudflare API first and fallback to Node.js if those are not available. --- packages/pg/lib/stream.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/pg/lib/stream.js b/packages/pg/lib/stream.js index 67b1b3c81..0cba52e30 100644 --- a/packages/pg/lib/stream.js +++ b/packages/pg/lib/stream.js @@ -3,12 +3,12 @@ * @returns {Duplex} */ module.exports.getStream = function getStream(ssl) { - const net = require('net') - if (typeof net.Socket === 'function') { - return new net.Socket() - } else { + try { const { CloudflareSocket } = require('pg-cloudflare') return new CloudflareSocket(ssl) + } catch { + const net = require('net') + return new net.Socket() } } @@ -18,11 +18,11 @@ module.exports.getStream = function getStream(ssl) { * @returns {Duplex} */ module.exports.getSecureStream = function getSecureStream(options) { - var tls = require('tls') - if (tls.connect) { - return tls.connect(options) - } else { + try { options.socket.startTls(options) return options.socket + } catch { + var tls = require('tls') + return tls.connect(options) } }