subscribe.d.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import type { Maybe } from '../jsutils/Maybe';
  2. import type { DocumentNode } from '../language/ast';
  3. import type { GraphQLFieldResolver } from '../type/definition';
  4. import type { GraphQLSchema } from '../type/schema';
  5. import type { ExecutionArgs, ExecutionResult } from './execute';
  6. /**
  7. * Implements the "Subscribe" algorithm described in the GraphQL specification.
  8. *
  9. * Returns a Promise which resolves to either an AsyncIterator (if successful)
  10. * or an ExecutionResult (error). The promise will be rejected if the schema or
  11. * other arguments to this function are invalid, or if the resolved event stream
  12. * is not an async iterable.
  13. *
  14. * If the client-provided arguments to this function do not result in a
  15. * compliant subscription, a GraphQL Response (ExecutionResult) with
  16. * descriptive errors and no data will be returned.
  17. *
  18. * If the source stream could not be created due to faulty subscription
  19. * resolver logic or underlying systems, the promise will resolve to a single
  20. * ExecutionResult containing `errors` and no `data`.
  21. *
  22. * If the operation succeeded, the promise resolves to an AsyncIterator, which
  23. * yields a stream of ExecutionResults representing the response stream.
  24. *
  25. * Accepts either an object with named arguments, or individual arguments.
  26. */
  27. export declare function subscribe(
  28. args: ExecutionArgs,
  29. ): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>;
  30. /**
  31. * Implements the "CreateSourceEventStream" algorithm described in the
  32. * GraphQL specification, resolving the subscription source event stream.
  33. *
  34. * Returns a Promise which resolves to either an AsyncIterable (if successful)
  35. * or an ExecutionResult (error). The promise will be rejected if the schema or
  36. * other arguments to this function are invalid, or if the resolved event stream
  37. * is not an async iterable.
  38. *
  39. * If the client-provided arguments to this function do not result in a
  40. * compliant subscription, a GraphQL Response (ExecutionResult) with
  41. * descriptive errors and no data will be returned.
  42. *
  43. * If the the source stream could not be created due to faulty subscription
  44. * resolver logic or underlying systems, the promise will resolve to a single
  45. * ExecutionResult containing `errors` and no `data`.
  46. *
  47. * If the operation succeeded, the promise resolves to the AsyncIterable for the
  48. * event stream returned by the resolver.
  49. *
  50. * A Source Event Stream represents a sequence of events, each of which triggers
  51. * a GraphQL execution for that event.
  52. *
  53. * This may be useful when hosting the stateful subscription service in a
  54. * different process or machine than the stateless GraphQL execution engine,
  55. * or otherwise separating these two steps. For more on this, see the
  56. * "Supporting Subscriptions at Scale" information in the GraphQL specification.
  57. */
  58. export declare function createSourceEventStream(
  59. args: ExecutionArgs,
  60. ): Promise<AsyncIterable<unknown> | ExecutionResult>;
  61. /** @deprecated will be removed in next major version in favor of named arguments */
  62. export declare function createSourceEventStream(
  63. schema: GraphQLSchema,
  64. document: DocumentNode,
  65. rootValue?: unknown,
  66. contextValue?: unknown,
  67. variableValues?: Maybe<{
  68. readonly [variable: string]: unknown;
  69. }>,
  70. operationName?: Maybe<string>,
  71. subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
  72. ): Promise<AsyncIterable<unknown> | ExecutionResult>;