@typetron/websockets 0.3.9 → 0.3.12

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.
package/Readme.md CHANGED
@@ -52,3 +52,35 @@ const users = await socket.request<User[]>('users.list')
52
52
  const savedUser = await socket.request<User>('users.save', {name: 'John'})
53
53
  ```
54
54
 
55
+ #### Message format of the WebSocket events
56
+
57
+ The Typetron WebSocket server uses a specific message format when exchanging information between it and the clients.
58
+ These message have the following format:
59
+ _When sending a message:_
60
+
61
+ ```json
62
+ {
63
+ "event": "event name",
64
+ "message": {
65
+ // optional
66
+ "body": "content sent to the controllers",
67
+ "parameters": [
68
+ "param1",
69
+ "param1"
70
+ ]
71
+ // controller method parameters (optional)
72
+ }
73
+ }
74
+ ```
75
+
76
+ _When receiving a message:_
77
+
78
+ ```json
79
+ {
80
+ "event": "event name",
81
+ "status": "OK"
82
+ // or "Error",
83
+ "message": "backend response"
84
+ // optional
85
+ }
86
+ ```
package/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { Observable, ReplaySubject, Subject } from 'rxjs';
2
- import { EventRequest, EventResponse } from '@typetron/framework/Router/Websockets/types';
2
+ import { EventRequest, EventErrorResponse, EventResponse } from '@typetron/framework/Router/Websockets/types';
3
3
  export declare class Websocket {
4
4
  url: string;
5
5
  protocols?: string | string[] | undefined;
6
6
  socket?: WebSocket;
7
7
  eventMessages$: Subject<EventResponse<unknown>>;
8
8
  queuedEvents$: ReplaySubject<EventRequest>;
9
- errors$: Subject<EventResponse<unknown>>;
9
+ errors$: Subject<EventErrorResponse<"">>;
10
10
  onConnectCallback: Function;
11
11
  constructor(url: string, protocols?: string | string[] | undefined);
12
12
  get isConnected(): boolean;
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,aAAa,EAAE,OAAO,EAAc,MAAM,MAAM,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,aAAa,EAA0B,MAAM,6CAA6C,CAAA;AAEjH,qBAAa,SAAS;IAQC,GAAG,EAAE,MAAM;IAAS,SAAS,CAAC;IAPjD,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB,cAAc,kCAAwC;IACtD,aAAa,8BAAoC;IACjD,OAAO,kCAAwC;IAC/C,iBAAiB,EAAE,QAAQ,CAAA;gBAER,GAAG,EAAE,MAAM,EAAS,SAAS,CAAC,+BAAmB;IAIpE,IAAI,WAAW,YAEd;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAqB1D,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAI5B,SAAS,IAAI,IAAI;IAQjB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI;IAK/D,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAcnC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAIpE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CASjF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,aAAa,EAAE,OAAO,EAAc,MAAM,MAAM,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAA0B,MAAM,6CAA6C,CAAA;AAErI,qBAAa,SAAS;IASC,GAAG,EAAE,MAAM;IAAS,SAAS,CAAC;IARjD,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB,cAAc,kCAAwC;IACtD,aAAa,8BAAoC;IAEjD,OAAO,kCAAoC;IAC3C,iBAAiB,EAAE,QAAQ,CAAA;gBAER,GAAG,EAAE,MAAM,EAAS,SAAS,CAAC,+BAAmB;IAIpE,IAAI,WAAW,YAEd;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAqB1D,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAI5B,SAAS,IAAI,IAAI;IAQjB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI;IAK/D,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAenC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAIpE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CASjF"}
package/index.js CHANGED
@@ -10,6 +10,7 @@ class Websocket {
10
10
  this.protocols = protocols;
11
11
  this.eventMessages$ = new rxjs_1.Subject();
12
12
  this.queuedEvents$ = new rxjs_1.ReplaySubject();
13
+ // @ts-ignore
13
14
  this.errors$ = new rxjs_1.Subject();
14
15
  this.connect(url, protocols);
15
16
  }
@@ -54,6 +55,7 @@ class Websocket {
54
55
  on(event) {
55
56
  return this.eventMessages$.pipe(operators_1.filter(eventMessage => eventMessage.event === event), operators_1.switchMap(eventMessage => {
56
57
  if (eventMessage.status === types_1.WebsocketMessageStatus.Error) {
58
+ // @ts-ignore
57
59
  this.errors$.next(eventMessage);
58
60
  return rxjs_1.throwError(eventMessage);
59
61
  }
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "realtime"
11
11
  ],
12
12
  "license": "MIT",
13
- "version": "0.3.9",
13
+ "version": "0.3.12",
14
14
  "author": {
15
15
  "email": "ionel@typetron.org",
16
16
  "name": "Ionel Lupu"
@@ -22,10 +22,10 @@
22
22
  "node": ">= 12.13.0"
23
23
  },
24
24
  "peerDependencies": {
25
- "rxjs": "^6.6.7"
25
+ "rxjs": "~7.4.5"
26
26
  },
27
27
  "dependencies": {
28
- "@typetron/framework": "^0.3.7"
28
+ "@typetron/framework": "^0.3.11"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "4.1.6"
@@ -1,23 +0,0 @@
1
- import { Observable, ReplaySubject, Subject } from 'rxjs';
2
- import { EventRequest, EventResponse } from '../../Router/Websockets/types';
3
- export declare class Websocket {
4
- url: string;
5
- protocols?: string | string[] | undefined;
6
- socket?: WebSocket;
7
- eventMessages$: Subject<EventResponse<unknown>>;
8
- queuedEvents$: ReplaySubject<EventRequest>;
9
- errors$: Subject<EventResponse<unknown>>;
10
- onConnectCallback: Function;
11
- constructor(url: string, protocols?: string | string[] | undefined);
12
- get isConnected(): boolean;
13
- connect(url?: string, protocols?: string | string[]): void;
14
- onConnect(callback: Function): void;
15
- reconnect(): void;
16
- emit<T>(event: string, request?: EventRequest['message']): void;
17
- on<T>(event: string): Observable<T>;
18
- onError({ except }: {
19
- except?: string[];
20
- }): Observable<EventResponse<unknown>>;
21
- request<T>(event: string, message?: EventRequest['message']): Promise<T>;
22
- }
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,aAAa,EAAE,OAAO,EAAc,MAAM,MAAM,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,aAAa,EAA0B,MAAM,+BAA+B,CAAA;AAEnG,qBAAa,SAAS;IAQC,GAAG,EAAE,MAAM;IAAS,SAAS,CAAC;IAPjD,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB,cAAc,kCAAwC;IACtD,aAAa,8BAAoC;IACjD,OAAO,kCAAwC;IAC/C,iBAAiB,EAAE,QAAQ,CAAA;gBAER,GAAG,EAAE,MAAM,EAAS,SAAS,CAAC,+BAAmB;IAIpE,IAAI,WAAW,YAEd;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAqB1D,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAI5B,SAAS,IAAI,IAAI;IAQjB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI;IAK/D,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAcnC,OAAO,CAAC,EAAC,MAAM,EAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAIpE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CASjF"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Websocket = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const operators_1 = require("rxjs/operators");
6
- const types_1 = require("../../Router/Websockets/types");
7
- class Websocket {
8
- constructor(url, protocols) {
9
- this.url = url;
10
- this.protocols = protocols;
11
- this.eventMessages$ = new rxjs_1.Subject();
12
- this.queuedEvents$ = new rxjs_1.ReplaySubject();
13
- this.errors$ = new rxjs_1.Subject();
14
- this.connect(url, protocols);
15
- }
16
- get isConnected() {
17
- var _a;
18
- return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;
19
- }
20
- connect(url, protocols) {
21
- const socket = new WebSocket(url !== null && url !== void 0 ? url : this.url, protocols !== null && protocols !== void 0 ? protocols : this.protocols);
22
- this.socket = socket;
23
- socket.onmessage = (event) => {
24
- const message = JSON.parse(event.data);
25
- this.eventMessages$.next(message);
26
- };
27
- socket.onopen = () => {
28
- this.onConnectCallback();
29
- this.queuedEvents$.subscribe(message => {
30
- socket.send(JSON.stringify(message));
31
- });
32
- };
33
- socket.onclose = (event) => {
34
- this.queuedEvents$ = new rxjs_1.ReplaySubject();
35
- this.reconnect();
36
- };
37
- }
38
- onConnect(callback) {
39
- this.onConnectCallback = callback;
40
- }
41
- reconnect() {
42
- var _a;
43
- if (((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSED) {
44
- window.setTimeout(() => {
45
- this.connect(this.url, this.protocols);
46
- }, 1000);
47
- }
48
- }
49
- emit(event, request) {
50
- const eventMessage = { event, message: request };
51
- this.queuedEvents$.next(eventMessage);
52
- }
53
- on(event) {
54
- return this.eventMessages$.pipe(operators_1.filter(eventMessage => eventMessage.event === event), operators_1.switchMap(eventMessage => {
55
- if (eventMessage.status === types_1.WebsocketMessageStatus.Error) {
56
- this.errors$.next(eventMessage);
57
- return rxjs_1.throwError(eventMessage);
58
- }
59
- return rxjs_1.of(eventMessage);
60
- }), operators_1.map(eventMessage => eventMessage.message));
61
- }
62
- onError({ except }) {
63
- return this.errors$.pipe(operators_1.filter(eventMessage => !(except || []).includes(eventMessage.event)));
64
- }
65
- async request(event, message) {
66
- this.emit(event, message);
67
- return new Promise((resolve, reject) => {
68
- this.on(event).pipe(operators_1.take(1)).subscribe({
69
- next: resolve,
70
- error: reject
71
- });
72
- });
73
- }
74
- }
75
- exports.Websocket = Websocket;
76
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare enum WebsocketMessageStatus {
2
- OK = "OK",
3
- Error = "Error"
4
- }
5
- export interface Event<T> {
6
- event: string;
7
- message?: T;
8
- }
9
- export interface EventRequestMessage {
10
- parameters?: (string | number)[];
11
- body?: any;
12
- }
13
- export declare type EventRequest = Event<EventRequestMessage>;
14
- export interface EventResponse<T> extends Event<T> {
15
- status: WebsocketMessageStatus;
16
- }
17
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../Router/Websockets/types.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAC9B,EAAE,OAAO;IACT,KAAK,UAAU;CAClB;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,CAAC,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAEhC,IAAI,CAAC,EAAE,GAAG,CAAA;CACb;AAED,oBAAY,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAErD,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,sBAAsB,CAAA;CACjC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebsocketMessageStatus = void 0;
4
- var WebsocketMessageStatus;
5
- (function (WebsocketMessageStatus) {
6
- WebsocketMessageStatus["OK"] = "OK";
7
- WebsocketMessageStatus["Error"] = "Error";
8
- })(WebsocketMessageStatus = exports.WebsocketMessageStatus || (exports.WebsocketMessageStatus = {}));
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../Router/Websockets/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,mCAAS,CAAA;IACT,yCAAe,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC"}
package/types.d.ts DELETED
@@ -1,17 +0,0 @@
1
- export declare enum WebsocketMessageStatus {
2
- OK = "OK",
3
- Error = "Error"
4
- }
5
- export interface Event<T> {
6
- event: string;
7
- message?: T;
8
- }
9
- export interface EventRequestMessage {
10
- parameters?: (string | number)[];
11
- body?: any;
12
- }
13
- export declare type EventRequest = Event<EventRequestMessage>;
14
- export interface EventResponse<T> extends Event<T> {
15
- status: WebsocketMessageStatus;
16
- }
17
- //# sourceMappingURL=types.d.ts.map
package/types.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AACA,oBAAY,sBAAsB;IAC9B,EAAE,OAAO;IACT,KAAK,UAAU;CAClB;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,CAAC,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAEhC,IAAI,CAAC,EAAE,GAAG,CAAA;CACb;AAED,oBAAY,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAErD,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,sBAAsB,CAAA;CACjC"}
package/types.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebsocketMessageStatus = void 0;
4
- var WebsocketMessageStatus;
5
- (function (WebsocketMessageStatus) {
6
- WebsocketMessageStatus["OK"] = "OK";
7
- WebsocketMessageStatus["Error"] = "Error";
8
- })(WebsocketMessageStatus = exports.WebsocketMessageStatus || (exports.WebsocketMessageStatus = {}));
9
- //# sourceMappingURL=types.js.map
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":";;;AACA,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,mCAAS,CAAA;IACT,yCAAe,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC"}