itty-sockets 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/connect.d.ts +19 -8
  2. package/package.json +1 -1
package/connect.d.ts CHANGED
@@ -39,36 +39,47 @@ type EventUnion<Events> = {
39
39
  message: infer M;
40
40
  } ? M : never);
41
41
  type SendFn<Base, Events extends Record<string, any>> = keyof Events extends never ? <T = any>(message: T, ...args: Base extends IttyProtocol ? [uid?: string] : []) => IttySocket<Base, Events> : (message: EventUnion<Events>, ...args: Base extends IttyProtocol ? [uid?: string] : []) => IttySocket<Base, Events>;
42
+ type EmptyEvents = {};
42
43
  export interface IttySocketConnect {
43
- <Events extends Record<string, any> = Record<string, never>>(url: `ws://${string}` | `wss://${string}`, queryParams?: any): IttySocket<object, Events>;
44
- <Events extends Record<string, any> = Record<string, never>>(channelID: string, options?: IttySocketOptions): IttySocket<IttyProtocol, Events>;
44
+ <Events extends Record<string, any> = EmptyEvents>(url: `ws://${string}` | `wss://${string}`, queryParams?: any): IttySocket<object, Events>;
45
+ <Events extends Record<string, any> = EmptyEvents>(channelID: string, options?: IttySocketOptions): IttySocket<IttyProtocol, Events>;
45
46
  }
46
- export type IttySocket<Base = object, Events extends Record<string, any> = Record<string, never>> = {
47
+ export type IttySocket<Base = object, Events extends Record<string, any> = EmptyEvents> = {
47
48
  open: () => IttySocket<Base, Events>;
48
49
  close: () => IttySocket<Base, Events>;
49
50
  send: SendFn<Base, Events>;
50
51
  push: SendFn<Base, Events>;
51
- remove(type: string, listener: () => any): IttySocket<Base, Events>;
52
+ remove(type: string, listener: (...args: any[]) => any): IttySocket<Base, Events>;
52
53
  on(type: 'open', listener: () => any): IttySocket<Base, Events>;
53
54
  on(type: 'close', listener: () => any): IttySocket<Base, Events>;
54
55
  on<K extends keyof Events & string>(type: K, listener: (event: Base & Events[K] & {
55
56
  type: K;
56
57
  message: Events[K];
57
58
  }) => any): IttySocket<Base, Events>;
58
- on<T = any>(type: 'message', listener: (event: Base & {
59
+ on<T = any>(type: 'message', listener: (event: Base & T & {
59
60
  message: T;
60
61
  }) => any): IttySocket<Base, Events>;
61
62
  } & (Base extends IttyProtocol ? {
62
63
  on(type: 'join', listener: (event: JoinEvent) => any): IttySocket<Base, Events>;
63
64
  on(type: 'leave', listener: (event: LeaveEvent) => any): IttySocket<Base, Events>;
64
65
  on(type: 'error', listener: (event: ErrorEvent) => any): IttySocket<Base, Events>;
65
- } : object) & {
66
- on<T = Record<string, any>>(type: string, listener: (event: Base & T & {
66
+ on<T = Record<string, any>, K extends string = string>(type: K extends 'open' | 'close' | 'message' | 'join' | 'leave' | 'error' | keyof Events ? never : K, listener: (event: Base & T & {
67
67
  type: string;
68
+ message: T;
68
69
  }) => any): IttySocket<Base, Events>;
69
70
  on<T = Record<string, any>>(type: (event?: any) => any, listener: (event: Base & T & {
70
71
  type: string;
72
+ message: T;
71
73
  }) => any): IttySocket<Base, Events>;
72
- };
74
+ } : {
75
+ on<T = Record<string, any>, K extends string = string>(type: K extends 'open' | 'close' | 'message' | keyof Events ? never : K, listener: (event: Base & T & {
76
+ type: string;
77
+ message: T;
78
+ }) => any): IttySocket<Base, Events>;
79
+ on<T = Record<string, any>>(type: (event?: any) => any, listener: (event: Base & T & {
80
+ type: string;
81
+ message: T;
82
+ }) => any): IttySocket<Base, Events>;
83
+ });
73
84
  export declare let connect: IttySocketConnect;
74
85
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itty-sockets",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "WebSockets : simplified and minified.",
5
5
  "type": "module",
6
6
  "exports": {