From 1678253d9331563b9fb7deb23f1da48f72e8d6ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E6=9D=A8?= Date: Thu, 8 Apr 2021 11:53:16 +0800 Subject: [PATCH] fix(type): fix options type --- index.d.ts | 243 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 240 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 32b3681..fbfc418 100644 --- a/index.d.ts +++ b/index.d.ts @@ -58,12 +58,249 @@ export interface VueSocketOptions { } }, // type declarations for optional options - options?:{ - path?: string; - } + options?: ConnectOpts } export default class VueSocketIO implements PluginObject { constructor (options: VueSocketOptions); install: PluginFunction } + +/** + * Options we can pass to the socket when connecting + */ + interface ConnectOpts { + + /** + * Should we force a new Manager for this connection? + * @default false + */ + forceNew?: boolean; + + /** + * Should we multiplex our connection (reuse existing Manager) ? + * @default true + */ + multiplex?: boolean; + + /** + * The path to get our client file from, in the case of the server + * serving it + * @default '/socket.io' + */ + path?: string; + + /** + * Should we allow reconnections? + * @default true + */ + reconnection?: boolean; + + /** + * How many reconnection attempts should we try? + * @default Infinity + */ + reconnectionAttempts?: number; + + /** + * The time delay in milliseconds between reconnection attempts + * @default 1000 + */ + reconnectionDelay?: number; + + /** + * The max time delay in milliseconds between reconnection attempts + * @default 5000 + */ + reconnectionDelayMax?: number; + + /** + * Used in the exponential backoff jitter when reconnecting + * @default 0.5 + */ + randomizationFactor?: number; + + /** + * The timeout in milliseconds for our connection attempt + * @default 20000 + */ + timeout?: number; + + /** + * Should we automically connect? + * @default true + */ + autoConnect?: boolean; + + /** + * The host that we're connecting to. Set from the URI passed when connecting + */ + host?: string; + + /** + * The hostname for our connection. Set from the URI passed when connecting + */ + hostname?: string; + + /** + * If this is a secure connection. Set from the URI passed when connecting + */ + secure?: boolean; + + /** + * The port for our connection. Set from the URI passed when connecting + */ + port?: string; + + /** + * Any query parameters in our uri. Set from the URI passed when connecting + */ + query?: Object; + + /** + * `http.Agent` to use, defaults to `false` (NodeJS only) + */ + agent?: string|boolean; + + /** + * Whether the client should try to upgrade the transport from + * long-polling to something better. + * @default true + */ + upgrade?: boolean; + + /** + * Forces JSONP for polling transport. + */ + forceJSONP?: boolean; + + /** + * Determines whether to use JSONP when necessary for polling. If + * disabled (by settings to false) an error will be emitted (saying + * "No transports available") if no other transports are available. + * If another transport is available for opening a connection (e.g. + * WebSocket) that transport will be used instead. + * @default true + */ + jsonp?: boolean; + + /** + * Forces base 64 encoding for polling transport even when XHR2 + * responseType is available and WebSocket even if the used standard + * supports binary. + */ + forceBase64?: boolean; + + /** + * Enables XDomainRequest for IE8 to avoid loading bar flashing with + * click sound. default to `false` because XDomainRequest has a flaw + * of not sending cookie. + * @default false + */ + enablesXDR?: boolean; + + /** + * The param name to use as our timestamp key + * @default 't' + */ + timestampParam?: string; + + /** + * Whether to add the timestamp with each transport request. Note: this + * is ignored if the browser is IE or Android, in which case requests + * are always stamped + * @default false + */ + timestampRequests?: boolean; + + /** + * A list of transports to try (in order). Engine.io always attempts to + * connect directly with the first one, provided the feature detection test + * for it passes. + * @default ['polling','websocket'] + */ + transports?: string[]; + + /** + * The port the policy server listens on + * @default 843 + */ + policyPort?: number; + + /** + * If true and if the previous websocket connection to the server succeeded, + * the connection attempt will bypass the normal upgrade process and will + * initially try websocket. A connection attempt following a transport error + * will use the normal upgrade process. It is recommended you turn this on + * only when using SSL/TLS connections, or if you know that your network does + * not block websockets. + * @default false + */ + rememberUpgrade?: boolean; + + /** + * Are we only interested in transports that support binary? + */ + onlyBinaryUpgrades?: boolean; + + /** + * Transport options for Node.js client (headers etc) + */ + transportOptions?: Object; + + /** + * (SSL) Certificate, Private key and CA certificates to use for SSL. + * Can be used in Node.js client environment to manually specify + * certificate information. + */ + pfx?: string; + + /** + * (SSL) Private key to use for SSL. Can be used in Node.js client + * environment to manually specify certificate information. + */ + key?: string; + + /** + * (SSL) A string or passphrase for the private key or pfx. Can be + * used in Node.js client environment to manually specify certificate + * information. + */ + passphrase?: string + + /** + * (SSL) Public x509 certificate to use. Can be used in Node.js client + * environment to manually specify certificate information. + */ + cert?: string; + + /** + * (SSL) An authority certificate or array of authority certificates to + * check the remote host against.. Can be used in Node.js client + * environment to manually specify certificate information. + */ + ca?: string|string[]; + + /** + * (SSL) A string describing the ciphers to use or exclude. Consult the + * [cipher format list] + * (http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT) for + * details on the format.. Can be used in Node.js client environment to + * manually specify certificate information. + */ + ciphers?: string; + + /** + * (SSL) If true, the server certificate is verified against the list of + * supplied CAs. An 'error' event is emitted if verification fails. + * Verification happens at the connection level, before the HTTP request + * is sent. Can be used in Node.js client environment to manually specify + * certificate information. + */ + rejectUnauthorized?: boolean; + + /** + * Credentials that are sent when accessing a namespace + */ + auth?: Object; +} \ No newline at end of file