@pathscale/wss-adapter 1.0.2 → 1.0.5

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.
@@ -30,7 +30,7 @@ interface IConfiguration {
30
30
  }) => void;
31
31
  }
32
32
  interface IServiceConnect {
33
- connect<T>(payload: string | string[] | undefined): Promise<T>;
33
+ connect<T>(payload: string | string[] | undefined, remote?: string): Promise<T>;
34
34
  disconnect: () => void;
35
35
  }
36
36
  interface IWssAdapter {
@@ -38,7 +38,7 @@ interface IWssAdapter {
38
38
  [serviceName: string]: IServiceConnect;
39
39
  };
40
40
  sessions: {
41
- [serviceName: string]: unknown;
41
+ [serviceName: string]: any;
42
42
  };
43
43
  configure: (configuration: IConfiguration) => void;
44
44
  }
@@ -37,8 +37,8 @@ wssAdapter.configure = function (configuration) {
37
37
  // construct services objects with two simple functions
38
38
  // intended use: `wssAdapter.services.admin.connect([1, 2, 3])` or `wssAdapter.services.auth.connect([1, 2, 3])`
39
39
  wssAdapter.services[serviceName] = {
40
- connect: function (payload) {
41
- return connectHandler(serviceName, serviceConfig, payload);
40
+ connect: function (payload, remote) {
41
+ return connectHandler(serviceName, serviceConfig, payload, remote);
42
42
  },
43
43
  disconnect: function () { return disconnectHandler(serviceName); },
44
44
  };
@@ -55,9 +55,9 @@ wssAdapter.configure = function (configuration) {
55
55
  _loop_1(serviceName, serviceConfig);
56
56
  }
57
57
  };
58
- var connectHandler = function (serviceName, serviceConfig, payload) {
58
+ var connectHandler = function (serviceName, serviceConfig, payload, remote) {
59
59
  return new Promise(function (resolve, reject) {
60
- store.sessions[serviceName] = new WebSocket(serviceConfig.remote, payload);
60
+ store.sessions[serviceName] = new WebSocket(remote || serviceConfig.remote, payload);
61
61
  store.sessions[serviceName].onmessage = function (event) {
62
62
  var _a;
63
63
  var response = JSON.parse(event.data);
@@ -94,18 +94,20 @@ var sendHandler = function (serviceName, serviceConfig, methodName, params) {
94
94
  if (!methodCode) {
95
95
  throw new Error("method ".concat(methodName, " not available in ").concat(serviceName, " service"));
96
96
  }
97
- if (!Object.keys(params).every(function (param) {
98
- return serviceConfig.methods[methodCode].parameters.includes(param);
99
- })) {
100
- throw new Error("method ".concat(methodCode, " is being called with missing parameters"));
101
- }
102
97
  var purgedParams = {};
103
- serviceConfig.methods[methodCode].parameters.forEach(function (k) {
104
- purgedParams[k] = params[k];
105
- });
106
- var difference = Object.keys(params).filter(function (x) { return !serviceConfig.methods[methodCode].parameters.includes(x); });
107
- if (difference.length) {
108
- throw new Error("method ".concat(methodCode, " is being called with unknow parameters, ").concat(difference));
98
+ if (params) {
99
+ if (!Object.keys(params).every(function (param) {
100
+ return serviceConfig.methods[methodCode].parameters.includes(param);
101
+ })) {
102
+ throw new Error("method ".concat(methodCode, " is being called with missing parameters"));
103
+ }
104
+ serviceConfig.methods[methodCode].parameters.forEach(function (k) {
105
+ purgedParams[k] = params[k];
106
+ });
107
+ var difference = Object.keys(params).filter(function (x) { return !serviceConfig.methods[methodCode].parameters.includes(x); });
108
+ if (difference.length) {
109
+ throw new Error("method ".concat(methodCode, " is being called with unknow parameters, ").concat(difference));
110
+ }
109
111
  }
110
112
  var payload = {
111
113
  method: Number.parseInt(methodCode),
@@ -149,7 +151,7 @@ var receiveHandler = function (event) {
149
151
  function onError(response) {
150
152
  var _a, _b;
151
153
  var errorCode = response.params.error;
152
- var errorMsg = (_a = store.errors[errorCode]) !== null && _a !== void 0 ? _a : 'Something went wrong';
154
+ var errorMsg = (_a = store.errors[errorCode]) !== null && _a !== void 0 ? _a : errorCode;
153
155
  if ([45349638, 45349637].includes(errorCode)) {
154
156
  store.sequence.decreaseSeq();
155
157
  console.log('seq has been decreased because of error');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pathscale/wss-adapter",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "Websocket adapter for the Pathscale WSS",
5
5
  "main": "dist/wssAdapter.js",
6
6
  "types": "dist/wssAdapter.d.ts",
package/types/index.ts CHANGED
@@ -7,7 +7,6 @@ interface IService {
7
7
  }
8
8
  }
9
9
  }
10
-
11
10
  interface IServiceConfig extends IService {
12
11
  onDisconnect: (event: {
13
12
  code: number
@@ -15,47 +14,42 @@ interface IServiceConfig extends IService {
15
14
  wasClean: boolean
16
15
  }) => void | null
17
16
  }
18
-
19
17
  interface IServices {
20
18
  [serviceName: string]: IServiceConfig
21
19
  }
22
-
23
20
  interface IErrors {
24
21
  [errorCode: number]: string
25
22
  }
26
-
27
23
  interface IConfiguration {
28
24
  timeout: number
29
25
  services: IServices
30
26
  errors: IErrors
31
27
  onError: (error: { error: number; message: string }) => void
32
28
  }
33
-
34
29
  interface IServiceConnect {
35
- connect<T>(payload: string | string[] | undefined): Promise<T>
30
+ connect<T>(
31
+ payload: string | string[] | undefined,
32
+ remote?: string
33
+ ): Promise<T>
36
34
  disconnect: () => void
37
35
  }
38
-
39
36
  interface IWssAdapter {
40
37
  services: {
41
38
  [serviceName: string]: IServiceConnect
42
39
  }
43
40
  sessions: {
44
- [serviceName: string]: unknown
41
+ [serviceName: string]: any
45
42
  }
46
43
  configure: (configuration: IConfiguration) => void
47
44
  }
48
-
49
45
  interface ISequence {
50
46
  value: number
51
47
  getSeq: () => number
52
48
  decreaseSeq: () => void
53
49
  }
54
-
55
50
  interface ISessions {
56
51
  [serviceName: string]: WebSocket
57
52
  }
58
-
59
53
  interface IPendingPromises {
60
54
  [seq: number]: {
61
55
  resolve: (payload: unknown) => void
@@ -63,7 +57,6 @@ interface IPendingPromises {
63
57
  toHandler: ReturnType<typeof setTimeout>
64
58
  }
65
59
  }
66
-
67
60
  interface IStore {
68
61
  timeout: number
69
62
  errors: IErrors
@@ -73,7 +66,6 @@ interface IStore {
73
66
  pendingPromises: IPendingPromises
74
67
  onError: (error: { error: number; message: string }) => void
75
68
  }
76
-
77
69
  export {
78
70
  IStore,
79
71
  IWssAdapter,
package/wssAdapter.ts CHANGED
@@ -44,8 +44,8 @@ wssAdapter.configure = (configuration) => {
44
44
  // construct services objects with two simple functions
45
45
  // intended use: `wssAdapter.services.admin.connect([1, 2, 3])` or `wssAdapter.services.auth.connect([1, 2, 3])`
46
46
  wssAdapter.services[serviceName] = {
47
- connect: <T>(payload: string | string[] | undefined) =>
48
- connectHandler<T>(serviceName, serviceConfig, payload),
47
+ connect: <T>(payload: string | string[] | undefined, remote?: string) =>
48
+ connectHandler<T>(serviceName, serviceConfig, payload, remote),
49
49
  disconnect: () => disconnectHandler(serviceName),
50
50
  }
51
51
 
@@ -65,10 +65,14 @@ wssAdapter.configure = (configuration) => {
65
65
  const connectHandler = <T>(
66
66
  serviceName: string,
67
67
  serviceConfig: IServiceConfig,
68
- payload: string | string[] | undefined
68
+ payload: string | string[] | undefined,
69
+ remote?: string
69
70
  ) => {
70
71
  return new Promise((resolve, reject) => {
71
- store.sessions[serviceName] = new WebSocket(serviceConfig.remote, payload)
72
+ store.sessions[serviceName] = new WebSocket(
73
+ remote || serviceConfig.remote,
74
+ payload
75
+ )
72
76
 
73
77
  store.sessions[serviceName].onmessage = function (event: { data: string }) {
74
78
  const response = JSON.parse(event.data)
@@ -119,29 +123,32 @@ const sendHandler = (
119
123
  )
120
124
  }
121
125
 
122
- if (
123
- !Object.keys(params).every((param) =>
124
- serviceConfig.methods[methodCode].parameters.includes(param)
125
- )
126
- ) {
127
- throw new Error(
128
- `method ${methodCode} is being called with missing parameters`
129
- )
130
- }
131
-
132
126
  const purgedParams: Record<string, unknown> = {}
133
- serviceConfig.methods[methodCode].parameters.forEach((k) => {
134
- purgedParams[k] = params[k]
135
- })
136
127
 
137
- const difference = Object.keys(params).filter(
138
- (x) => !serviceConfig.methods[methodCode].parameters.includes(x)
139
- )
128
+ if (params) {
129
+ if (
130
+ !Object.keys(params).every((param) =>
131
+ serviceConfig.methods[methodCode].parameters.includes(param)
132
+ )
133
+ ) {
134
+ throw new Error(
135
+ `method ${methodCode} is being called with missing parameters`
136
+ )
137
+ }
140
138
 
141
- if (difference.length) {
142
- throw new Error(
143
- `method ${methodCode} is being called with unknow parameters, ${difference}`
139
+ serviceConfig.methods[methodCode].parameters.forEach((k) => {
140
+ purgedParams[k] = params[k]
141
+ })
142
+
143
+ const difference = Object.keys(params).filter(
144
+ (x) => !serviceConfig.methods[methodCode].parameters.includes(x)
144
145
  )
146
+
147
+ if (difference.length) {
148
+ throw new Error(
149
+ `method ${methodCode} is being called with unknow parameters, ${difference}`
150
+ )
151
+ }
145
152
  }
146
153
 
147
154
  const payload = {
@@ -203,7 +210,7 @@ interface IResponse {
203
210
 
204
211
  function onError(response: IResponse) {
205
212
  const { error: errorCode } = response.params
206
- const errorMsg = store.errors[errorCode] ?? 'Something went wrong'
213
+ const errorMsg = store.errors[errorCode] ?? errorCode
207
214
 
208
215
  if ([45349638, 45349637].includes(errorCode)) {
209
216
  store.sequence.decreaseSeq()