@kaito-http/core 2.7.1 → 2.7.2

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.
@@ -277,9 +277,19 @@ function _objectSpread2(target) {
277
277
  return target;
278
278
  }
279
279
 
280
+ var getSend = res => (status, response) => {
281
+ if (res.raw.headersSent) {
282
+ return;
283
+ }
284
+ res.status(status).json(response);
285
+ };
280
286
  class Router {
281
- static handle(server, route, options) {
287
+ static handle(
288
+ // Allow for any server to be passed
289
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
290
+ server, route, options) {
282
291
  return _asyncToGenerator(function* () {
292
+ var send = getSend(options.res);
283
293
  try {
284
294
  var _yield$route$body$par, _route$body;
285
295
  var ctx = yield server.getContext(options.req, options.res);
@@ -291,7 +301,13 @@ class Router {
291
301
  query,
292
302
  params: options.params
293
303
  });
294
- options.res.status(200).json({
304
+ if (options.res.raw.headersSent) {
305
+ return {
306
+ success: true,
307
+ data: result
308
+ };
309
+ }
310
+ send(200, {
295
311
  success: true,
296
312
  data: result,
297
313
  message: 'OK'
@@ -303,7 +319,7 @@ class Router {
303
319
  } catch (e) {
304
320
  var error = WrappedError.maybe(e);
305
321
  if (error instanceof KaitoError) {
306
- options.res.status(error.status).json({
322
+ send(error.status, {
307
323
  success: false,
308
324
  data: null,
309
325
  message: error.message
@@ -321,7 +337,7 @@ class Router {
321
337
  status: 500,
322
338
  message: 'Internal Server Error'
323
339
  }));
324
- options.res.status(status).json({
340
+ send(status, {
325
341
  success: false,
326
342
  data: null,
327
343
  message
@@ -361,7 +377,7 @@ class Router {
361
377
  var _req$url;
362
378
  var res = new KaitoResponse(serverResponse);
363
379
  var message = "Cannot ".concat(req.method, " ").concat((_req$url = req.url) !== null && _req$url !== void 0 ? _req$url : '/');
364
- res.status(404).json({
380
+ getSend(res)(404, {
365
381
  success: false,
366
382
  data: null,
367
383
  message
@@ -273,9 +273,19 @@ function _objectSpread2(target) {
273
273
  return target;
274
274
  }
275
275
 
276
+ var getSend = res => (status, response) => {
277
+ if (res.raw.headersSent) {
278
+ return;
279
+ }
280
+ res.status(status).json(response);
281
+ };
276
282
  class Router {
277
- static handle(server, route, options) {
283
+ static handle(
284
+ // Allow for any server to be passed
285
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
286
+ server, route, options) {
278
287
  return _asyncToGenerator(function* () {
288
+ var send = getSend(options.res);
279
289
  try {
280
290
  var _yield$route$body$par, _route$body;
281
291
  var ctx = yield server.getContext(options.req, options.res);
@@ -287,7 +297,13 @@ class Router {
287
297
  query,
288
298
  params: options.params
289
299
  });
290
- options.res.status(200).json({
300
+ if (options.res.raw.headersSent) {
301
+ return {
302
+ success: true,
303
+ data: result
304
+ };
305
+ }
306
+ send(200, {
291
307
  success: true,
292
308
  data: result,
293
309
  message: 'OK'
@@ -299,7 +315,7 @@ class Router {
299
315
  } catch (e) {
300
316
  var error = WrappedError.maybe(e);
301
317
  if (error instanceof KaitoError) {
302
- options.res.status(error.status).json({
318
+ send(error.status, {
303
319
  success: false,
304
320
  data: null,
305
321
  message: error.message
@@ -317,7 +333,7 @@ class Router {
317
333
  status: 500,
318
334
  message: 'Internal Server Error'
319
335
  }));
320
- options.res.status(status).json({
336
+ send(status, {
321
337
  success: false,
322
338
  data: null,
323
339
  message
@@ -357,7 +373,7 @@ class Router {
357
373
  var _req$url;
358
374
  var res = new KaitoResponse(serverResponse);
359
375
  var message = "Cannot ".concat(req.method, " ").concat((_req$url = req.url) !== null && _req$url !== void 0 ? _req$url : '/');
360
- res.status(404).json({
376
+ getSend(res)(404, {
361
377
  success: false,
362
378
  data: null,
363
379
  message
@@ -249,9 +249,19 @@ function _objectSpread2(target) {
249
249
  return target;
250
250
  }
251
251
 
252
+ var getSend = res => (status, response) => {
253
+ if (res.raw.headersSent) {
254
+ return;
255
+ }
256
+ res.status(status).json(response);
257
+ };
252
258
  class Router {
253
- static handle(server, route, options) {
259
+ static handle(
260
+ // Allow for any server to be passed
261
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
+ server, route, options) {
254
263
  return _asyncToGenerator(function* () {
264
+ var send = getSend(options.res);
255
265
  try {
256
266
  var _yield$route$body$par, _route$body;
257
267
  var ctx = yield server.getContext(options.req, options.res);
@@ -263,7 +273,13 @@ class Router {
263
273
  query,
264
274
  params: options.params
265
275
  });
266
- options.res.status(200).json({
276
+ if (options.res.raw.headersSent) {
277
+ return {
278
+ success: true,
279
+ data: result
280
+ };
281
+ }
282
+ send(200, {
267
283
  success: true,
268
284
  data: result,
269
285
  message: 'OK'
@@ -275,7 +291,7 @@ class Router {
275
291
  } catch (e) {
276
292
  var error = WrappedError.maybe(e);
277
293
  if (error instanceof KaitoError) {
278
- options.res.status(error.status).json({
294
+ send(error.status, {
279
295
  success: false,
280
296
  data: null,
281
297
  message: error.message
@@ -293,7 +309,7 @@ class Router {
293
309
  status: 500,
294
310
  message: 'Internal Server Error'
295
311
  }));
296
- options.res.status(status).json({
312
+ send(status, {
297
313
  success: false,
298
314
  data: null,
299
315
  message
@@ -333,7 +349,7 @@ class Router {
333
349
  var _req$url;
334
350
  var res = new KaitoResponse(serverResponse);
335
351
  var message = "Cannot ".concat(req.method, " ").concat((_req$url = req.url) !== null && _req$url !== void 0 ? _req$url : '/');
336
- res.status(404).json({
352
+ getSend(res)(404, {
337
353
  success: false,
338
354
  data: null,
339
355
  message
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaito-http/core",
3
- "version": "2.7.1",
3
+ "version": "2.7.2",
4
4
  "description": "Functional HTTP Framework for TypeScript",
5
5
  "repository": "https://github.com/kaito-http/kaito",
6
6
  "author": "Alistair Smith <hi@alistair.sh>",