@eleven-am/pondsocket 0.1.134 → 0.1.135

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.
@@ -124,6 +124,73 @@ class Endpoint {
124
124
  .forEach((manager) => manager.removeUser(cache.clientId, true));
125
125
  });
126
126
  }
127
+ /**
128
+ * @desc Builds an error message
129
+ * @param error - The error to build
130
+ * @private
131
+ */
132
+ buildError(error) {
133
+ const event = {
134
+ event: pondsocket_common_1.ErrorTypes.INVALID_MESSAGE,
135
+ action: pondsocket_common_1.ServerActions.ERROR,
136
+ channelName: pondsocket_common_1.SystemSender.ENDPOINT,
137
+ requestId: (0, pondsocket_common_1.uuid)(),
138
+ payload: {},
139
+ };
140
+ if (error instanceof SyntaxError) {
141
+ event.payload = {
142
+ message: 'Invalid JSON',
143
+ };
144
+ }
145
+ else if (error instanceof Error) {
146
+ event.event = pondsocket_common_1.ErrorTypes.INTERNAL_SERVER_ERROR;
147
+ event.payload = {
148
+ message: error.message,
149
+ };
150
+ }
151
+ else if (error instanceof pondError_1.PresenceError) {
152
+ event.event = pondsocket_common_1.ErrorTypes.PRESENCE_ERROR;
153
+ event.channelName = error.channel;
154
+ event.payload = {
155
+ message: error.message,
156
+ code: error.code,
157
+ action: error.event,
158
+ };
159
+ }
160
+ else if (error instanceof pondError_1.ChannelError) {
161
+ event.event = pondsocket_common_1.ErrorTypes.CHANNEL_ERROR;
162
+ event.channelName = error.channel;
163
+ event.payload = {
164
+ message: error.message,
165
+ code: error.code,
166
+ };
167
+ }
168
+ else if (error instanceof pondError_1.EndpointError) {
169
+ event.event = pondsocket_common_1.ErrorTypes.ENDPOINT_ERROR;
170
+ event.payload = {
171
+ message: error.message,
172
+ code: error.code,
173
+ };
174
+ }
175
+ else if (error instanceof zod_1.ZodError) {
176
+ const message = error.errors.map((error) => {
177
+ if ('expected' in error && 'received' in error) {
178
+ return `Expected ${error.path.join('.')} to be ${error.expected}, but received ${error.received}`;
179
+ }
180
+ return `${error.path.join('.')} ${error.message}`;
181
+ }).join(', ');
182
+ event.payload = {
183
+ message,
184
+ code: 400,
185
+ };
186
+ }
187
+ else {
188
+ event.payload = {
189
+ message: 'Unknown error',
190
+ };
191
+ }
192
+ return event;
193
+ }
127
194
  }
128
195
  exports.Endpoint = Endpoint;
129
196
  _Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpoint_sockets = new WeakMap(), _Endpoint_instances = new WeakSet(), _Endpoint_sendMessage = function _Endpoint_sendMessage(socket, message) {
@@ -161,65 +228,12 @@ _Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpo
161
228
  throw new Error(`GatewayEngine: Action ${message.action} does not exist`);
162
229
  }
163
230
  }, _Endpoint_readMessage = function _Endpoint_readMessage(cache, message) {
164
- const errorMessage = {
165
- event: pondsocket_common_1.ErrorTypes.INVALID_MESSAGE,
166
- action: pondsocket_common_1.ServerActions.ERROR,
167
- channelName: pondsocket_common_1.SystemSender.ENDPOINT,
168
- requestId: (0, pondsocket_common_1.uuid)(),
169
- payload: {},
170
- };
171
231
  try {
172
232
  const data = JSON.parse(message);
173
233
  const result = schema_1.clientMessageSchema.parse(data);
174
234
  __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_handleMessage).call(this, cache, result);
175
235
  }
176
236
  catch (e) {
177
- if (e instanceof zod_1.ZodError) {
178
- errorMessage.payload = {
179
- message: e.message,
180
- code: 400,
181
- };
182
- }
183
- else if (e instanceof SyntaxError) {
184
- errorMessage.payload = {
185
- message: 'Invalid JSON',
186
- };
187
- }
188
- else if (e instanceof Error) {
189
- errorMessage.event = pondsocket_common_1.ErrorTypes.INTERNAL_SERVER_ERROR;
190
- errorMessage.payload = {
191
- message: e.message,
192
- };
193
- }
194
- else if (e instanceof pondError_1.PresenceError) {
195
- errorMessage.event = pondsocket_common_1.ErrorTypes.PRESENCE_ERROR;
196
- errorMessage.channelName = e.channel;
197
- errorMessage.payload = {
198
- message: e.message,
199
- code: e.code,
200
- action: e.event,
201
- };
202
- }
203
- else if (e instanceof pondError_1.ChannelError) {
204
- errorMessage.event = pondsocket_common_1.ErrorTypes.CHANNEL_ERROR;
205
- errorMessage.channelName = e.channel;
206
- errorMessage.payload = {
207
- message: e.message,
208
- code: e.code,
209
- };
210
- }
211
- else if (e instanceof pondError_1.EndpointError) {
212
- errorMessage.event = pondsocket_common_1.ErrorTypes.ENDPOINT_ERROR;
213
- errorMessage.payload = {
214
- message: e.message,
215
- code: e.code,
216
- };
217
- }
218
- else {
219
- errorMessage.payload = {
220
- message: 'Unknown error',
221
- };
222
- }
223
- __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_sendMessage).call(this, cache.socket, errorMessage);
237
+ __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_sendMessage).call(this, cache.socket, this.buildError(e));
224
238
  }
225
239
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eleven-am/pondsocket",
3
- "version": "0.1.134",
3
+ "version": "0.1.135",
4
4
  "description": "PondSocket is a fast simple socket server",
5
5
  "keywords": [
6
6
  "socket",