summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/defer-to-connect
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/defer-to-connect')
-rw-r--r--includes/external/addressbook/node_modules/defer-to-connect/LICENSE21
-rw-r--r--includes/external/addressbook/node_modules/defer-to-connect/README.md38
-rw-r--r--includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.d.ts10
-rw-r--r--includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js47
-rw-r--r--includes/external/addressbook/node_modules/defer-to-connect/package.json71
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"
+}