Skip to content

Commit

Permalink
Export individual WebSocketEvent types
Browse files Browse the repository at this point in the history
  • Loading branch information
tajakobsen committed Dec 8, 2020
1 parent 81d1fdc commit a6a5e4a
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "enonic-types",
"sideEffects": false,
"version": "0.1.7",
"version": "0.1.8",
"description": "TypeScript types for Enonic XP",
"typings": "index.d.ts",
"scripts": {
Expand Down
35 changes: 26 additions & 9 deletions src/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,19 +122,36 @@ export interface CustomSelectorServiceResponseHit {
};
}

interface AbstractWebSocketEvent<A = {}> {
export interface AbstractWebSocketEvent<A = {}> {
readonly session: {
readonly id: string;
readonly path: string;
readonly params: Record<string, string>;
},
readonly params: { readonly [key: string]: string | undefined };
};
readonly data: A;
}

type WebSocketType =
| { readonly type: 'open' }
| { readonly type: 'message'; readonly message: string; }
| { readonly type: 'error'; readonly error: string; }
| { readonly type: 'close'; readonly closeReason: number; };
export interface OpenWebSocketEvent<A = {}> extends AbstractWebSocketEvent<A> {
readonly type: 'open';
}

export interface MessageWebSocketEvent<A = {}> extends AbstractWebSocketEvent<A> {
readonly type: 'message';
readonly message: string;
}

export interface CloseWebSocketEvent<A = {}> extends AbstractWebSocketEvent<A> {
readonly type: 'close';
readonly closeReason: number;
}

export interface ErrorWebSocketEvent<A = {}> extends AbstractWebSocketEvent<A> {
readonly type: 'error';
readonly error: string;
}

export type WebSocketEvent<A = {}> = AbstractWebSocketEvent<A> & WebSocketType;
export type WebSocketEvent<A = {}> =
| OpenWebSocketEvent<A>
| MessageWebSocketEvent<A>
| CloseWebSocketEvent<A>
| ErrorWebSocketEvent<A>;

0 comments on commit a6a5e4a

Please sign in to comment.