@vorplex/api 0.0.54 → 0.0.56

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.
@@ -1,4 +1,4 @@
1
- import { $Array, $Router, $String, $Tson, Emitter, Injector, MimeType, Task, TsonError, WebClient } from '@vorplex/core';
1
+ import { $Array, $Router, $String, $Tson, Emitter, Injector, MimeType, Task, WebClient } from '@vorplex/core';
2
2
  import * as fs from 'fs';
3
3
  import { Server as NodeHttpServer } from 'http';
4
4
  import { Server as NodeHttpsServer } from 'https';
@@ -217,23 +217,18 @@ export class Server {
217
217
  }
218
218
  });
219
219
  const schema = $Tson.parse(definition);
220
- let parsedPacket;
221
- try {
222
- parsedPacket = schema.parse(packet);
223
- }
224
- catch (error) {
225
- if (error instanceof TsonError) {
226
- client.send({
227
- error: {
228
- message: error.message,
229
- path: error.path,
230
- schema: error.schema
231
- },
232
- schema
233
- });
234
- return;
235
- }
236
- throw error;
220
+ const [parsedPacket, packetErrors] = schema.parse(packet);
221
+ if (packetErrors.length > 0) {
222
+ const [parseError] = packetErrors;
223
+ client.send({
224
+ error: {
225
+ message: parseError.message,
226
+ path: parseError.path,
227
+ schema: parseError.schema
228
+ },
229
+ schema
230
+ });
231
+ return;
237
232
  }
238
233
  const task = new Task(`[${parsedPacket.id}] Packet`);
239
234
  try {
@@ -246,21 +241,17 @@ export class Server {
246
241
  });
247
242
  let data = parsedPacket.data;
248
243
  if (action.schema) {
249
- try {
250
- data = $Tson.parse(action.schema).parse(parsedPacket.data);
251
- }
252
- catch (error) {
253
- if (error instanceof TsonError) {
254
- throw new WebError(`Failed to parse packet data for hub (${hub.name}) with action (${action.name})`, {
255
- message: error.message,
256
- path: error.path,
257
- schema: error.schema,
258
- value: error.value
259
- });
260
- }
261
- else
262
- throw error;
244
+ const [parsedData, dataErrors] = $Tson.parse(action.schema).parse(parsedPacket.data);
245
+ if (dataErrors.length > 0) {
246
+ const [dataError] = dataErrors;
247
+ throw new WebError(`Failed to parse packet data for hub (${hub.name}) with action (${action.name})`, {
248
+ message: dataError.message,
249
+ path: dataError.path,
250
+ schema: dataError.schema,
251
+ value: dataError.value
252
+ });
263
253
  }
254
+ data = parsedData;
264
255
  }
265
256
  await action.callback({
266
257
  injector: this.injector,