diff options
Diffstat (limited to 'includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js')
-rw-r--r-- | includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js b/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js new file mode 100644 index 0000000..f26c4fa --- /dev/null +++ b/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isTLSSocket(socket) { + return socket.encrypted; +} +const deferToConnect = (socket, fn) => { + let listeners; + if (typeof fn === 'function') { + const connect = fn; + listeners = { connect }; + } + else { + listeners = fn; + } + const hasConnectListener = typeof listeners.connect === 'function'; + const hasSecureConnectListener = typeof listeners.secureConnect === 'function'; + const hasCloseListener = typeof listeners.close === 'function'; + const onConnect = () => { + if (hasConnectListener) { + listeners.connect(); + } + if (isTLSSocket(socket) && hasSecureConnectListener) { + if (socket.authorized) { + listeners.secureConnect(); + } + else if (!socket.authorizationError) { + socket.once('secureConnect', listeners.secureConnect); + } + } + if (hasCloseListener) { + socket.once('close', listeners.close); + } + }; + if (socket.writable && !socket.connecting) { + onConnect(); + } + else if (socket.connecting) { + socket.once('connect', onConnect); + } + else if (socket.destroyed && hasCloseListener) { + listeners.close(socket._hadError); + } +}; +exports.default = deferToConnect; +// For CommonJS default export support +module.exports = deferToConnect; +module.exports.default = deferToConnect; |