gql-fetch v0.3.9
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-fetchUsage
gql-fetch has two usage forms:
GQLClient
The GQLClient class takes two arguments when it is being created.
- url: RequestInfo (required)
- options:
IClientOptions(optional)
const client = new GQLClient('http://localhost:5000/graphql');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
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.
- 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:
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:
| 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;
License
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
