simple-graphql-client.ts 630 B

12345678910111213141516171819
  1. import { DocumentNode } from 'graphql';
  2. import { request } from 'graphql-request';
  3. import { print } from 'graphql/language/printer';
  4. export interface GraphQlClient {
  5. query<T, V = Record<string, any>>(query: DocumentNode, variables?: V): Promise<T>;
  6. }
  7. /**
  8. * A minimalistic GraphQL client for populating test data.
  9. */
  10. export class SimpleGraphQLClient implements GraphQlClient {
  11. constructor(public apiUrl: string = '') {}
  12. query<T, V = Record<string, any>>(query: DocumentNode, variables: V): Promise<T> {
  13. const queryString = print(query);
  14. return request(this.apiUrl, queryString, variables);
  15. }
  16. }