Giter VIP home page Giter VIP logo

deno-fetch-graphql's Introduction

Deno Fetch GraphQL

A lightweight client for creating and sending GraphQL requests over Fetch API (without Schema/GQL Types validation)

Examples

import {
  GraphQLClient,
  GraphQLRequest,
  OperationType,
} from "https://deno.land/x/[email protected]";

interface HelloInputVars {
  myName: string;
}

const helloQuery = {
    operationType: OperationType.Query,
    name: "Hello",
    variableDefs: [
      {
        name: "myName",
        graphqlType: "string!",
      },
    ],
    field: {
      name: "hello",
      args: [
        {
          name: "from",
          fromVariable: "myName",
        }
      ],
      children: [
        "message",
        "andMyNameIs",
        {
          name: "yourInfo",
          children: [
            "ipAddress",
            "lastLoginAt",
          ]
        }
      ],
  }
};

const countUpMutation = {
  operationType: OperationType.Mutation,
  field: {
    name: "countUp",
    args: [
      {
        name: "increment",
        value: 10,
        valueType: "Int!",
      }
    ],
  }
};

const client = new GraphQLClient({ url: "http://myserver:8080/graphql" });
const gqlRequest = new GraphQLRequest<HelloInputVars>()
  .add(helloQuery)
  .add(countUpMutation)
  .withAuthToken("jwt01234abcd")
  .withVariables({
    myName: "Q",
  });

const gqlResponse = await client.send({
  operationType: OperationType.Query
});

interface HelloResult {
  message: string;
  andMyNameIs: string;
}

if (gqlResponse.hasError()) {
  gqlResponse.errors.forEach(console.error);
  gqlResponse.throwFirstError();
}

const result = gqlResponse.getData<HelloResult>(helloQuery);
console.log(result);

deno-fetch-graphql's People

Contributors

quaos avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.