spiceflow 1.1.2 → 1.1.4

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.
Files changed (52) hide show
  1. package/README.md +54 -23
  2. package/dist/benchmark.benchmark.d.ts +2 -0
  3. package/dist/benchmark.benchmark.d.ts.map +1 -0
  4. package/dist/benchmark.benchmark.js +13 -0
  5. package/dist/benchmark.benchmark.js.map +1 -0
  6. package/dist/context.d.ts +9 -26
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/cors.d.ts +22 -0
  9. package/dist/cors.d.ts.map +1 -0
  10. package/dist/cors.js +76 -0
  11. package/dist/cors.js.map +1 -0
  12. package/dist/cors.test.d.ts +2 -0
  13. package/dist/cors.test.d.ts.map +1 -0
  14. package/dist/cors.test.js +39 -0
  15. package/dist/cors.test.js.map +1 -0
  16. package/dist/error.d.ts +0 -4
  17. package/dist/error.d.ts.map +1 -1
  18. package/dist/error.js +0 -7
  19. package/dist/error.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/middleware.test.js +64 -0
  25. package/dist/middleware.test.js.map +1 -1
  26. package/dist/openapi.d.ts +1 -1
  27. package/dist/spiceflow.d.ts +5 -16
  28. package/dist/spiceflow.d.ts.map +1 -1
  29. package/dist/spiceflow.js +70 -55
  30. package/dist/spiceflow.js.map +1 -1
  31. package/dist/spiceflow.test.js +60 -4
  32. package/dist/spiceflow.test.js.map +1 -1
  33. package/dist/types.d.ts +23 -53
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/types.js.map +1 -1
  36. package/package.json +23 -1
  37. package/src/benchmark.benchmark.ts +16 -0
  38. package/src/context.ts +10 -28
  39. package/src/cors.test.ts +44 -0
  40. package/src/cors.ts +115 -0
  41. package/src/error.ts +0 -8
  42. package/src/index.ts +1 -0
  43. package/src/middleware.test.ts +68 -0
  44. package/src/spiceflow.test.ts +81 -4
  45. package/src/spiceflow.ts +83 -109
  46. package/src/types.test.ts +1 -0
  47. package/src/types.ts +30 -55
  48. package/dist/benchmark.test.d.ts +0 -2
  49. package/dist/benchmark.test.d.ts.map +0 -1
  50. package/dist/benchmark.test.js +0 -8
  51. package/dist/benchmark.test.js.map +0 -1
  52. package/src/benchmark.test.ts +0 -8
package/src/types.ts CHANGED
@@ -19,11 +19,10 @@ import type { Context, ErrorContext, MiddlewareContext } from './context.js'
19
19
  import {
20
20
  ELYSIA_RESPONSE,
21
21
  InternalServerError,
22
- NotFoundError,
23
22
  ParseError,
24
23
  ValidationError,
25
24
  } from './error.js'
26
- import { AnySpiceflow, Spiceflow } from './spiceflow.js'
25
+ import { Spiceflow } from './spiceflow.js'
27
26
 
28
27
  export type MaybeArray<T> = T | T[]
29
28
  export type MaybePromise<T> = T | Promise<T>
@@ -145,7 +144,7 @@ export type Reconcile<
145
144
  : never
146
145
 
147
146
  export interface SingletonBase {
148
- store: Record<string, unknown>
147
+ state: Record<string, unknown>
149
148
  }
150
149
 
151
150
  export interface DefinitionBase {
@@ -312,8 +311,7 @@ export interface MergeSchema<
312
311
  export type Handler<
313
312
  in out Route extends RouteSchema = {},
314
313
  in out Singleton extends SingletonBase = {
315
- decorator: {}
316
- store: {}
314
+ state: {}
317
315
  },
318
316
  Path extends string = '',
319
317
  > = (
@@ -353,8 +351,7 @@ export type CoExist<Original, Target, With> = IsAny<Target> extends true
353
351
  export type InlineHandler<
354
352
  Route extends RouteSchema = {},
355
353
  Singleton extends SingletonBase = {
356
- decorator: {}
357
- store: {}
354
+ state: {}
358
355
  },
359
356
  Path extends string = '',
360
357
  MacroContext = {},
@@ -386,8 +383,7 @@ export type InlineHandler<
386
383
  export type OptionalHandler<
387
384
  in out Route extends RouteSchema = {},
388
385
  in out Singleton extends SingletonBase = {
389
- decorator: {}
390
- store: {}
386
+ state: {}
391
387
  },
392
388
  Path extends string = '',
393
389
  > = Handler<Route, Singleton, Path> extends (
@@ -399,8 +395,7 @@ export type OptionalHandler<
399
395
  export type AfterHandler<
400
396
  in out Route extends RouteSchema = {},
401
397
  in out Singleton extends SingletonBase = {
402
- decorator: {}
403
- store: {}
398
+ state: {}
404
399
  },
405
400
  Path extends string = '',
406
401
  > = Handler<Route, Singleton, Path> extends (
@@ -418,8 +413,7 @@ export type AfterHandler<
418
413
  export type MapResponse<
419
414
  in out Route extends RouteSchema = {},
420
415
  in out Singleton extends SingletonBase = {
421
- decorator: {}
422
- store: {}
416
+ state: {}
423
417
  },
424
418
  Path extends string = '',
425
419
  > = Handler<
@@ -437,16 +431,14 @@ export type MapResponse<
437
431
  export type VoidHandler<
438
432
  in out Route extends RouteSchema = {},
439
433
  in out Singleton extends SingletonBase = {
440
- decorator: {}
441
- store: {}
434
+ state: {}
442
435
  },
443
436
  > = (context: Context<Route, Singleton>) => MaybePromise<void>
444
437
 
445
438
  export type TransformHandler<
446
439
  in out Route extends RouteSchema = {},
447
440
  in out Singleton extends SingletonBase = {
448
- decorator: {}
449
- store: {}
441
+ state: {}
450
442
  },
451
443
  BasePath extends string = '',
452
444
  > = {
@@ -466,8 +458,7 @@ export type TransformHandler<
466
458
  export type BodyHandler<
467
459
  in out Route extends RouteSchema = {},
468
460
  in out Singleton extends SingletonBase = {
469
- decorator: {}
470
- store: {}
461
+ state: {}
471
462
  },
472
463
  Path extends string = '',
473
464
  > = (
@@ -476,39 +467,24 @@ export type BodyHandler<
476
467
  contentType: string
477
468
  } & Context<Route, Singleton, Path>
478
469
  >,
479
- /**
480
- * @deprecated
481
- *
482
- * use `context.contentType` instead
483
- *
484
- * @example
485
- * ```ts
486
- * new Spiceflow()
487
- * .onParse(({ contentType, request }) => {
488
- * if (contentType === 'application/json')
489
- * return request.json()
490
- * })
491
- * ```
492
- */
470
+
493
471
  contentType: string,
494
472
  ) => MaybePromise<any>
495
473
 
496
474
  export type MiddlewareHandler<
497
475
  in out Route extends RouteSchema = {},
498
476
  in out Singleton extends SingletonBase = {
499
- decorator: {}
500
- store: {}
477
+ state: {}
501
478
  },
502
479
  > = (
503
480
  context: MiddlewareContext<Singleton>,
504
- next: () => Promise<Response | void>,
481
+ next: () => Promise<Response>,
505
482
  ) => MaybePromise<Route['response'] | void>
506
483
 
507
484
  export type AfterResponseHandler<
508
485
  in out Route extends RouteSchema = {},
509
486
  in out Singleton extends SingletonBase = {
510
- decorator: {}
511
- store: {}
487
+ state: {}
512
488
  },
513
489
  > = (
514
490
  context: Prettify<
@@ -526,13 +502,13 @@ export type ErrorHandler<
526
502
  in out T extends Record<string, Error> = {},
527
503
  in out Route extends RouteSchema = {},
528
504
  in out Singleton extends SingletonBase = {
529
- store: {}
505
+ state: {}
530
506
  },
531
507
  > = (
532
508
  context: ErrorContext<
533
509
  Route,
534
510
  {
535
- store: Singleton['store']
511
+ state: Singleton['state']
536
512
  }
537
513
  > &
538
514
  (
@@ -541,35 +517,35 @@ export type ErrorHandler<
541
517
  request: Request
542
518
  code: 'UNKNOWN'
543
519
  error: Readonly<Error>
544
- } & Partial<Singleton['store']>
520
+ } & Partial<Singleton['state']>
545
521
  >
546
522
  | Prettify<
547
523
  {
548
524
  request: Request
549
525
  code: 'VALIDATION'
550
526
  error: Readonly<ValidationError>
551
- } & Singleton['store']
552
- >
553
- | Prettify<
554
- {
555
- request: Request
556
- code: 'NOT_FOUND'
557
- error: Readonly<NotFoundError>
558
- } & NeverKey<Singleton['store']>
527
+ } & Singleton['state']
559
528
  >
529
+ // | Prettify<
530
+ // {
531
+ // request: Request
532
+ // code: 'NOT_FOUND'
533
+ // error: Readonly<NotFoundError>
534
+ // } & NeverKey<Singleton['state']>
535
+ // >
560
536
  | Prettify<
561
537
  {
562
538
  request: Request
563
539
  code: 'PARSE'
564
540
  error: Readonly<ParseError>
565
- } & Singleton['store']
541
+ } & Singleton['state']
566
542
  >
567
543
  | Prettify<
568
544
  {
569
545
  request: Request
570
546
  code: 'INTERNAL_SERVER_ERROR'
571
547
  error: Readonly<InternalServerError>
572
- } & Partial<Singleton['store']>
548
+ } & Partial<Singleton['state']>
573
549
  >
574
550
  | Prettify<
575
551
  {
@@ -579,7 +555,7 @@ export type ErrorHandler<
579
555
  error: Readonly<T[K]>
580
556
  }
581
557
  }[keyof T] &
582
- Partial<Singleton['store']>
558
+ Partial<Singleton['state']>
583
559
  >
584
560
  ),
585
561
  ) => any | Promise<any>
@@ -713,8 +689,7 @@ export type MergeSpiceflowInstances<
713
689
  Prefix extends string = '',
714
690
  Scoped extends boolean = false,
715
691
  Singleton extends SingletonBase = {
716
- decorator: {}
717
- store: {}
692
+ state: {}
718
693
  },
719
694
  Definitions extends DefinitionBase = {
720
695
  type: {}
@@ -756,7 +731,7 @@ export type MergeSpiceflowInstances<
756
731
  Prefix,
757
732
  Scoped,
758
733
  {
759
- store: Prettify<Singleton['store']>
734
+ state: Prettify<Singleton['state']>
760
735
  },
761
736
  {
762
737
  type: Prettify<Definitions['type']>
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=benchmark.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.test.d.ts","sourceRoot":"","sources":["../src/benchmark.test.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { bench, describe } from 'vitest';
2
- import { Spiceflow } from './spiceflow.js';
3
- describe('benchmark listen', () => {
4
- bench('handle request', () => {
5
- const app = new Spiceflow();
6
- });
7
- });
8
- //# sourceMappingURL=benchmark.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.test.js","sourceRoot":"","sources":["../src/benchmark.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- import { bench, describe } from 'vitest'
2
- import { Spiceflow } from './spiceflow.js'
3
-
4
- describe('benchmark listen', () => {
5
- bench('handle request', () => {
6
- const app = new Spiceflow()
7
- })
8
- })