diff options
Diffstat (limited to 'includes/external/addressbook/node_modules/defer-to-connect')
5 files changed, 187 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/defer-to-connect/LICENSE b/includes/external/addressbook/node_modules/defer-to-connect/LICENSE new file mode 100644 index 0000000..15ad2e8 --- /dev/null +++ b/includes/external/addressbook/node_modules/defer-to-connect/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Szymon Marczak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/includes/external/addressbook/node_modules/defer-to-connect/README.md b/includes/external/addressbook/node_modules/defer-to-connect/README.md new file mode 100644 index 0000000..4dd36c2 --- /dev/null +++ b/includes/external/addressbook/node_modules/defer-to-connect/README.md @@ -0,0 +1,38 @@ +# defer-to-connect + +> The safe way to handle the `connect` socket event + +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/defer-to-connect/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/defer-to-connect?branch=master) + +Once you receive the socket, it may be already connected (or disconnected).<br> +To avoid checking that, use `defer-to-connect`. It'll do that for you. + +## Usage + +```js +const deferToConnect = require('defer-to-connect'); + +deferToConnect(socket, () => { + console.log('Connected!'); +}); +``` + +## API + +### deferToConnect(socket, connectListener) + +Calls `connectListener()` when connected. + +### deferToConnect(socket, listeners) + +#### listeners + +An object representing `connect`, `secureConnect` and `close` properties. + +Calls `connect()` when the socket is connected.<br> +Calls `secureConnect()` when the socket is securely connected.<br> +Calls `close()` when the socket is destroyed. + +## License + +MIT diff --git a/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.d.ts b/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.d.ts new file mode 100644 index 0000000..8db8dbb --- /dev/null +++ b/includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.d.ts @@ -0,0 +1,10 @@ +/// <reference types="node" /> +import { Socket } from 'net'; +import { TLSSocket } from 'tls'; +interface Listeners { + connect?: () => void; + secureConnect?: () => void; + close?: (hadError: boolean) => void; +} +declare const deferToConnect: (socket: TLSSocket | Socket, fn: Listeners | (() => void)) => void; +export default deferToConnect; 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; diff --git a/includes/external/addressbook/node_modules/defer-to-connect/package.json b/includes/external/addressbook/node_modules/defer-to-connect/package.json new file mode 100644 index 0000000..4dbd1c6 --- /dev/null +++ b/includes/external/addressbook/node_modules/defer-to-connect/package.json @@ -0,0 +1,71 @@ +{ + "name": "defer-to-connect", + "version": "2.0.1", + "description": "The safe way to handle the `connect` socket event", + "main": "dist/source", + "files": [ + "dist/source" + ], + "engines": { + "node": ">=10" + }, + "scripts": { + "build": "del-cli dist && tsc", + "prepare": "npm run build", + "test": "xo && tsc --noEmit && nyc ava", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "keywords": [ + "socket", + "connect", + "event" + ], + "author": "Szymon Marczak", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/defer-to-connect.git" + }, + "bugs": { + "url": "https://github.com/szmarczak/defer-to-connect/issues" + }, + "homepage": "https://github.com/szmarczak/defer-to-connect#readme", + "xo": { + "extends": "xo-typescript", + "extensions": [ + "ts" + ] + }, + "devDependencies": { + "@ava/typescript": "^1.1.0", + "@sindresorhus/tsconfig": "^0.7.0", + "@types/node": "^13.5.0", + "@typescript-eslint/eslint-plugin": "^2.18.0", + "@typescript-eslint/parser": "^2.18.0", + "ava": "^3.2.0", + "coveralls": "^3.0.9", + "create-cert": "^1.0.6", + "del-cli": "^3.0.0", + "eslint-config-xo-typescript": "^0.24.1", + "nyc": "^15.0.0", + "p-event": "^4.1.0", + "typescript": "^3.7.5", + "xo": "^0.25.3" + }, + "nyc": { + "include": [ + "dist/source" + ], + "extension": [ + ".ts" + ] + }, + "ava": { + "typescript": { + "rewritePaths": { + "tests/": "dist/tests/" + } + } + }, + "types": "dist/source/index.d.ts" +} |