123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const tls_1 = require("tls");
- 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 (socket instanceof tls_1.TLSSocket && 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;
|