@zuplo/graphql 5.1602.0 → 5.1603.0

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.
package/index.d.ts CHANGED
@@ -538,7 +538,14 @@ declare type Modify<T, R> = Omit<T, keyof R> & R;
538
538
  * @beta
539
539
  */
540
540
  declare interface OnResponseSendingFinalHook {
541
- (response: Response, latestRequest: ZuploRequest, context: ZuploContext): Promise<void> | void;
541
+ (response: Response, request: ZuploRequest, context: ZuploContext): Promise<void> | void;
542
+ }
543
+
544
+ /**
545
+ * @beta
546
+ */
547
+ declare interface OnResponseSendingHook {
548
+ (response: Response, request: ZuploRequest, context: ZuploContext): Promise<Response> | Response;
542
549
  }
543
550
 
544
551
  /**
@@ -557,13 +564,41 @@ declare interface ParameterDefinition extends ParameterBaseObject {
557
564
  }
558
565
 
559
566
  /**
560
- * @beta
567
+ * The types of the properties in a request
568
+ * @public
569
+ */
570
+ declare interface RequestGeneric extends RequestInitGeneric {
571
+ Query?: RequestQueryDefault;
572
+ }
573
+
574
+ /**
575
+ * The types of the properties in a request init object
576
+ * @public
561
577
  */
562
- declare interface RequestUser<TUserData = any> {
578
+ declare interface RequestInitGeneric {
579
+ UserData?: UserDataDefault;
580
+ Params?: RequestParamsDefault;
581
+ }
582
+
583
+ declare type RequestParamsDefault = Record<string, string>;
584
+
585
+ declare type RequestQueryDefault = Record<string, string>;
586
+
587
+ /**
588
+ * The authorized identity on the incoming request
589
+ * @public
590
+ */
591
+ declare interface RequestUser<TUserData> {
563
592
  sub: string;
564
593
  data: TUserData;
565
594
  }
566
595
 
596
+ declare type ResolveRequestParams<TParams extends RequestParamsDefault | undefined> = TParams extends RequestParamsDefault ? TParams : RequestParamsDefault;
597
+
598
+ declare type ResolveRequestQuery<TQuery extends RequestQueryDefault | undefined> = TQuery extends RequestQueryDefault ? TQuery : RequestQueryDefault;
599
+
600
+ declare type ResolveUserData<TUserData extends UserDataDefault | undefined> = TUserData extends UserDataDefault ? TUserData : UserDataDefault;
601
+
567
602
  /**
568
603
  * @beta
569
604
  */
@@ -597,6 +632,8 @@ declare interface RouteConfiguration extends Omit<BuildRouteConfiguration, "raw"
597
632
  raw<T>(): T;
598
633
  }
599
634
 
635
+ declare type UserDataDefault = any;
636
+
600
637
  /**
601
638
  * @beta
602
639
  */
@@ -617,6 +654,10 @@ declare interface ZuploContext extends EventTarget {
617
654
  readonly incomingRequestProperties: IncomingRequestProperties;
618
655
  readonly invokeInboundPolicy: (policyName: string, request: ZuploRequest) => Promise<Response | ZuploRequest>;
619
656
  readonly waitUntil: (promise: Promise<any>) => void;
657
+ /**
658
+ * Fires just before the response is sent. Response can be modified.
659
+ */
660
+ readonly addResponseSendingHook: (hook: OnResponseSendingHook) => void;
620
661
  /**
621
662
  * Fires immediately after the response is sent. Response cannot be modified.
622
663
  */
@@ -648,12 +689,11 @@ declare interface ZuploContext extends EventTarget {
648
689
  * ZuploRequest includes various parsed objects from the
649
690
  * incoming Request. This object inherits from the web
650
691
  * standard {@link https://developer.mozilla.org/en-US/docs/Web/API/Request | Request}.
651
- *
652
- * @beta
692
+ * @public
653
693
  */
654
- declare class ZuploRequest<TUserData = any, TParams extends Record<string, string> = Record<string, string>, TQuery extends Record<string, string> = Record<string, string>> extends Request {
694
+ declare class ZuploRequest<TOptions extends RequestGeneric = RequestGeneric> extends Request {
655
695
  #private;
656
- constructor(input: string | Request, init?: ZuploRequestInit<TUserData, TParams>);
696
+ constructor(input: string | Request, init?: ZuploRequestInit<TOptions>);
657
697
  /**
658
698
  * A dictionary of query-string values
659
699
  *
@@ -667,7 +707,7 @@ declare class ZuploRequest<TUserData = any, TParams extends Record<string, strin
667
707
  *
668
708
  * @readonly
669
709
  */
670
- get query(): Readonly<TQuery>;
710
+ get query(): Readonly<ResolveRequestQuery<TOptions["Query"]>>;
671
711
  /**
672
712
  * If you use tokens in your route’s URL, they are
673
713
  * automatically parsed into properties on the params
@@ -683,7 +723,7 @@ declare class ZuploRequest<TUserData = any, TParams extends Record<string, strin
683
723
  * ```
684
724
  * @readonly
685
725
  */
686
- get params(): Readonly<TParams>;
726
+ get params(): Readonly<ResolveRequestParams<TOptions["Params"]>>;
687
727
  /**
688
728
  * An optional object identifying a ‘user’.
689
729
  *
@@ -698,12 +738,16 @@ declare class ZuploRequest<TUserData = any, TParams extends Record<string, strin
698
738
  *
699
739
  * @readonly
700
740
  */
701
- user?: RequestUser<TUserData>;
741
+ user?: RequestUser<ResolveUserData<TOptions["UserData"]>>;
702
742
  }
703
743
 
704
- declare interface ZuploRequestInit<TUserData = any, TParams extends Record<string, string> = Record<string, string>> extends RequestInit {
705
- params?: TParams;
706
- user?: RequestUser<TUserData>;
744
+ /**
745
+ * The initialization values of a request
746
+ * @public
747
+ */
748
+ declare interface ZuploRequestInit<TOptions extends RequestInitGeneric = RequestInitGeneric> extends RequestInit {
749
+ params?: ResolveRequestParams<TOptions["Params"]>;
750
+ user?: ResolveUserData<TOptions["UserData"]>;
707
751
  }
708
752
 
709
753
  export { }