extension-host-types.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 QueryMessage extends BaseExtensionMessage {
  9. type: 'graphql-query';
  10. data: {
  11. document: string;
  12. variables?: { [key: string]: any };
  13. fetchPolicy?: WatchQueryFetchPolicy;
  14. };
  15. }
  16. export interface MutationMessage extends BaseExtensionMessage {
  17. type: 'graphql-mutation';
  18. data: {
  19. document: string;
  20. variables?: { [key: string]: any };
  21. };
  22. }
  23. export interface NotificationMessage extends BaseExtensionMessage {
  24. type: 'notification';
  25. data: {
  26. message: string;
  27. translationVars?: { [key: string]: string | number };
  28. type?: 'info' | 'success' | 'error' | 'warning';
  29. duration?: number;
  30. };
  31. }
  32. export interface CancellationMessage extends BaseExtensionMessage {
  33. type: 'cancellation';
  34. data: null;
  35. }
  36. export interface DestroyMessage extends BaseExtensionMessage {
  37. type: 'destroy';
  38. data: null;
  39. }
  40. export type ExtensionMesssage =
  41. | QueryMessage
  42. | MutationMessage
  43. | NotificationMessage
  44. | CancellationMessage
  45. | DestroyMessage;
  46. export interface MessageResponse {
  47. requestId: string;
  48. data: any;
  49. complete: boolean;
  50. error: boolean;
  51. }