0.3.9 • Published 5 years ago

gql-fetch v0.3.9

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

gql-fetch

NPM Version NPM Downloads Build Status Test Coverage Dependencies DevDependencies

NPM

gql-fetch

The purpose of creating this library is to gather special usage standards in a client library and to facilitate development process about client-server communication.

Thanks to its simple and easy use, this library provides fast and clean code development. In the background, a new generation request method as known as fetch is used. This library solves this problem by polyfilling for browsers that don't have fetch support.

Outstanding

  • Thanks to it is designed for Graphql server, it provides fast and clean code development.
  • File upload support.
  • Requests can be aborted.
  • It is light and it has polyfill support.
  • Rxjs Observable support.

Installation

$ npm install gql-fetch

Usage

gql-fetch has two usage forms:


GQLClient

The GQLClient class takes two arguments when it is being created.

const client = new GQLClient('http://localhost:5000/graphql');

Class Properties:

Sample Usage

const client = new GQLClient('http://localhost:5000/graphql');
const request = client.fetch(`query ($id: Int!) {
                                user(id: $id) {
                                  id
                                  name
                                }
                              }`,{ id: 1 });
request.then(...);                  

In order to cancel a request created with GQLClient;

const client = new GQLClient('http://localhost:5000/graphql');
const request = client.fetch(`query ($id: Int!) {
                                user(id: $id) {
                                  id
                                  name
                                }
                              }`,{ id: 1 });
request.abort();                  

fetchObservable Sample

const client = new GQLClient('http://localhost:5000/graphql');
const fo = client.fetchObservable(`query ($id: Int!) {
                                user(id: $id) {
                                  id
                                  name
                                }
                              }`,{ id: 1 });                              
fo.subscribe(...);    

To upload file via GQLClient;

const client = new GQLClient('http://localhost:5000/graphql');
const request = client.fetch(`mutation ($file: File!) {
                                uploadFile(file: $file)           
                             }`, { file: fs.createReadStream(__dirname + '/file.txt')});
request.then(...);

getFetch

The getFetch function has two arguments.

This function returns the function.

Returned function arguments;

  • query: string (required)
  • variables: object (optional)
  • fetchOptions: IFetchOptions (optional)

This function returns GQLRequest class.

Sample Usage:

const gqlFetch = getFetch('http://localhost:5000/graphql');
const request = gqlFetch(`{                                   
                    users {
                      id 
                      name
                    }                      
                  }`);              
request.then(...);

GQLRequest

This class is created to manage the requests.

Class Properties:

PropertyTypeArgument
responsePromise-
abortedboolean-
abortvoid-
onthisevent: string, listener: (...args: any[]) => void
thenPromiseonfulfilled: IPromiseResolved< GQLResponse >, onrejected: IPromiseRejected
catchPromiseonrejected
finallyPromiseonfinally

GQLResponse

Class Properties:

PropertyTypeArgument
jsonany-
statusnumber-
statusTextstring-
okboolean-
urlstring-
headersHeaders-

IClientOptions

Interface Properties:

PropertyTypeArgument
headersobject-

IFetchOptions

Interface Properties:

PropertyTypeArgument
headersobject-
operationNamestring-
redirectRedirectType-
follownumber-
timeoutnumber-
compressboolean-
sizenumber-
agentHttp(s)Agent-

Node Compatibility

  • node >= 6.x;

License

MIT

0.3.9

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago