extension-host-types.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. export type FetchPolicy = 'cache-first' | 'network-only' | 'cache-only' | 'no-cache' | 'standby';
  2. export type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';
  3. export interface BaseExtensionMessage {
  4. requestId: string;
  5. type: string;
  6. data: any;
  7. }
  8. export interface ActiveRouteData {
  9. url: string;
  10. origin: string;
  11. pathname: string;
  12. params: { [key: string]: any };
  13. queryParams: { [key: string]: any };
  14. fragment: string | null;
  15. }
  16. export interface ActivatedRouteMessage extends BaseExtensionMessage {
  17. type: 'active-route';
  18. }
  19. export interface QueryMessage extends BaseExtensionMessage {
  20. type: 'graphql-query';
  21. data: {
  22. document: string;
  23. variables?: { [key: string]: any };
  24. fetchPolicy?: WatchQueryFetchPolicy;
  25. };
  26. }
  27. export interface MutationMessage extends BaseExtensionMessage {
  28. type: 'graphql-mutation';
  29. data: {
  30. document: string;
  31. variables?: { [key: string]: any };
  32. };
  33. }
  34. export interface NotificationMessage extends BaseExtensionMessage {
  35. type: 'notification';
  36. data: {
  37. message: string;
  38. translationVars?: { [key: string]: string | number };
  39. type?: 'info' | 'success' | 'error' | 'warning';
  40. duration?: number;
  41. };
  42. }
  43. export interface CancellationMessage extends BaseExtensionMessage {
  44. type: 'cancellation';
  45. data: null;
  46. }
  47. export interface DestroyMessage extends BaseExtensionMessage {
  48. type: 'destroy';
  49. data: null;
  50. }
  51. export type ExtensionMessage =
  52. | ActivatedRouteMessage
  53. | QueryMessage
  54. | MutationMessage
  55. | NotificationMessage
  56. | CancellationMessage
  57. | DestroyMessage;
  58. export interface MessageResponse {
  59. requestId: string;
  60. data: any;
  61. complete: boolean;
  62. error: boolean;
  63. }