gql-fetch
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.
- url: RequestInfo (required)
- options:
IClientOptions
(optional)
;
Class Properties:
- url: RequestInfo
- headers: object
- fetch(query: string, variables?: IQueryVariables, options?:
IFetchOptions
):GQLRequest
- fetchObservable(query: string, variables?: IQueryVariables, options?:
IFetchOptions
): Observable<GQLResponse>
Sample Usage
;;request.then...;
In order to cancel a request created with GQLClient;
;;request.abort;
fetchObservable Sample
;; fo.subscribe...;
To upload file via GQLClient;
;;request.then...;
getFetch
The getFetch function has two arguments.
- url: RequestInfo (required)
- options:
IClientOptions
(optional)
This function returns the function.
Returned function arguments;
- query: string (required)
- variables: object (optional)
- fetchOptions:
IFetchOptions
(optional)
This function returns GQLRequest
class.
Sample Usage:
;; request.then...;
GQLRequest
This class is created to manage the requests.
Class Properties:
Property | Type | Argument |
---|---|---|
response | Promise | - |
aborted | boolean | - |
abort | void | - |
on | this | event: string, listener: (...args: any[]) => void |
then | Promise | onfulfilled: IPromiseResolved< GQLResponse >, onrejected: IPromiseRejected |
catch | Promise | onrejected |
finally | Promise | onfinally |
GQLResponse
Class Properties:
Property | Type | Argument |
---|---|---|
json | any | - |
status | number | - |
statusText | string | - |
ok | boolean | - |
url | string | - |
headers | Headers | - |
IClientOptions
Interface Properties:
Property | Type | Argument |
---|---|---|
headers | object | - |
IFetchOptions
Interface Properties:
Property | Type | Argument |
---|---|---|
headers | object | - |
operationName | string | - |
redirect | RedirectType | - |
follow | number | - |
timeout | number | - |
compress | boolean | - |
size | number | - |
agent | Http(s)Agent | - |
Node Compatibility
- node
>= 6.x
;