@rtk-query/graphql-request-base-query
Advanced tools
Comparing version 1.0.3 to 2.0.0
@@ -1,17 +0,8 @@ | ||
import { BaseQueryFn } from "@reduxjs/toolkit/query/react"; | ||
import { DocumentNode } from "graphql"; | ||
import { GraphQLClient, ClientError } from "graphql-request"; | ||
declare type P = Parameters<GraphQLClient["request"]>; | ||
export declare type Document = P[0]; | ||
export declare type Variables = P[1]; | ||
export declare type RequestHeaders = P[2]; | ||
export declare const graphqlRequestBaseQuery: (options: { | ||
url: string; | ||
requestHeaders?: RequestHeaders; | ||
} | { | ||
client: GraphQLClient; | ||
}) => BaseQueryFn<{ | ||
import type { BaseQueryFn } from '@reduxjs/toolkit/query'; | ||
import type { DocumentNode } from 'graphql'; | ||
import { ClientError } from 'graphql-request'; | ||
import type { GraphqlRequestBaseQueryArgs } from './GraphqlBaseQueryTypes'; | ||
export declare const graphqlRequestBaseQuery: (options: GraphqlRequestBaseQueryArgs) => BaseQueryFn<{ | ||
document: string | DocumentNode; | ||
variables?: any; | ||
}, unknown, Pick<ClientError, "name" | "message" | "stack">, Partial<Pick<ClientError, "request" | "response">>>; | ||
export {}; | ||
}, unknown, Pick<ClientError, 'name' | 'message' | 'stack'>, Partial<Pick<ClientError, 'request' | 'response'>>>; |
@@ -1,2 +0,2 @@ | ||
import{GraphQLClient as e,ClientError as r}from"graphql-request";const t=t=>{const s="client"in t?t.client:new e(t.url);return"requestHeaders"in t&&s.setHeaders(t.requestHeaders),async({document:e,variables:t})=>{try{return{data:await s.request(e,t),meta:{}}}catch(e){if(e instanceof r){const{name:r,message:t,stack:s,request:a,response:n}=e;return{error:{name:r,message:t,stack:s},meta:{request:a,response:n}}}throw e}}};export{t as graphqlRequestBaseQuery}; | ||
import{isPlainObject as e}from"@reduxjs/toolkit";import{GraphQLClient as t,ClientError as r}from"graphql-request";function n(){return n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},n.apply(this,arguments)}const a=a=>{const s="client"in a?a.client:new t(a.url),o="requestHeaders"in a?a.requestHeaders:{};return async({document:t,variables:i},{getState:c,endpoint:u,forced:p,type:l,signal:d,extra:f})=>{try{var m;const r=null!=(m=a.prepareHeaders)?m:e=>e,g=new Headers(function(t){if(!e(t))return t;const r=n({},t);for(const[e,t]of Object.entries(r))void 0===t&&delete r[e];return r}(o)),q=await r(g,{getState:c,endpoint:u,forced:p,type:l,extra:f});return{data:await s.request({document:t,variables:i,signal:d,requestHeaders:q}),meta:{}}}catch(e){if(e instanceof r){const{name:t,message:r,stack:n,request:a,response:s}=e;return{error:{name:t,message:r,stack:n},meta:{request:a,response:s}}}throw e}}};export{a as graphqlRequestBaseQuery}; | ||
//# sourceMappingURL=index.modern.js.map |
@@ -1,2 +0,2 @@ | ||
import{GraphQLClient as e,ClientError as r}from"graphql-request";var t=function(t){var n="client"in t?t.client:new e(t.url);return"requestHeaders"in t&&n.setHeaders(t.requestHeaders),function(e){var t=e.document,s=e.variables;try{return Promise.resolve(function(e,r){try{var a=Promise.resolve(n.request(t,s)).then(function(e){return{data:e,meta:{}}})}catch(e){return r(e)}return a&&a.then?a.then(void 0,r):a}(0,function(e){if(e instanceof r)return{error:{name:e.name,message:e.message,stack:e.stack},meta:{request:e.request,response:e.response}};throw e}))}catch(e){return Promise.reject(e)}}};export{t as graphqlRequestBaseQuery}; | ||
import{isPlainObject as e}from"@reduxjs/toolkit";import{GraphQLClient as r,ClientError as t}from"graphql-request";function n(){return n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},n.apply(this,arguments)}var a=function(a){var o="client"in a?a.client:new r(a.url),s="requestHeaders"in a?a.requestHeaders:{};return function(r,i){var u=r.document,c=r.variables,f=i.getState,l=i.endpoint,p=i.forced,v=i.type,d=i.signal,m=i.extra;try{return Promise.resolve(function(r,t){try{var i=(g=null!=(h=a.prepareHeaders)?h:function(e){return e},q=new Headers(function(r){if(!e(r))return r;for(var t=n({},r),a=0,o=Object.entries(t);a<o.length;a++){var s=o[a];void 0===s[1]&&delete t[s[0]]}return t}(s)),Promise.resolve(g(q,{getState:f,endpoint:l,forced:p,type:v,extra:m})).then(function(e){return Promise.resolve(o.request({document:u,variables:c,signal:d,requestHeaders:e})).then(function(e){return{data:e,meta:{}}})}))}catch(e){return t(e)}var h,g,q;return i&&i.then?i.then(void 0,t):i}(0,function(e){if(e instanceof t)return{error:{name:e.name,message:e.message,stack:e.stack},meta:{request:e.request,response:e.response}};throw e}))}catch(e){return Promise.reject(e)}}};export{a as graphqlRequestBaseQuery}; | ||
//# sourceMappingURL=index.module.js.map |
@@ -1,2 +0,2 @@ | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("graphql-request")):"function"==typeof define&&define.amd?define(["exports","graphql-request"],r):r((e||self).graphqlRequestBaseQuery={},e.graphqlRequest)}(this,function(e,r){e.graphqlRequestBaseQuery=function(e){var t="client"in e?e.client:new r.GraphQLClient(e.url);return"requestHeaders"in e&&t.setHeaders(e.requestHeaders),function(e){var n=e.document,s=e.variables;try{return Promise.resolve(function(e,r){try{var u=Promise.resolve(t.request(n,s)).then(function(e){return{data:e,meta:{}}})}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(e instanceof r.ClientError)return{error:{name:e.name,message:e.message,stack:e.stack},meta:{request:e.request,response:e.response}};throw e}))}catch(e){return Promise.reject(e)}}}}); | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@reduxjs/toolkit"),require("graphql-request")):"function"==typeof define&&define.amd?define(["exports","@reduxjs/toolkit","graphql-request"],r):r((e||self).graphqlRequestBaseQuery={},e.toolkit,e.graphqlRequest)}(this,function(e,r,t){function n(){return n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},n.apply(this,arguments)}e.graphqlRequestBaseQuery=function(e){var o="client"in e?e.client:new t.GraphQLClient(e.url),s="requestHeaders"in e?e.requestHeaders:{};return function(a,i){var u=a.document,l=a.variables,c=i.getState,f=i.endpoint,d=i.forced,p=i.type,h=i.signal,q=i.extra;try{return Promise.resolve(function(t,a){try{var i=(v=null!=(g=e.prepareHeaders)?g:function(e){return e},m=new Headers(function(e){if(!r.isPlainObject(e))return e;for(var t=n({},e),o=0,s=Object.entries(t);o<s.length;o++){var a=s[o];void 0===a[1]&&delete t[a[0]]}return t}(s)),Promise.resolve(v(m,{getState:c,endpoint:f,forced:d,type:p,extra:q})).then(function(e){return Promise.resolve(o.request({document:u,variables:l,signal:h,requestHeaders:e})).then(function(e){return{data:e,meta:{}}})}))}catch(e){return a(e)}var g,v,m;return i&&i.then?i.then(void 0,a):i}(0,function(e){if(e instanceof t.ClientError)return{error:{name:e.name,message:e.message,stack:e.stack},meta:{request:e.request,response:e.response}};throw e}))}catch(e){return Promise.reject(e)}}}}); | ||
//# sourceMappingURL=index.umd.js.map |
{ | ||
"name": "@rtk-query/graphql-request-base-query", | ||
"version": "1.0.3", | ||
"version": "2.0.0", | ||
"author": { | ||
@@ -19,9 +19,10 @@ "name": "Lenz Weber", | ||
"build": "microbundle", | ||
"prepack": "rimraf dist/*; npm run build", | ||
"dev": "microbundle watch" | ||
}, | ||
"dependencies": { | ||
"graphql-request": "^3.4.0" | ||
"graphql-request": "^4.0.0" | ||
}, | ||
"peerDependencies": { | ||
"@reduxjs/toolkit": "^1.6.0", | ||
"@reduxjs/toolkit": "^1.7.1", | ||
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" | ||
@@ -33,2 +34,3 @@ }, | ||
"microbundle": "^0.13.3", | ||
"rimraf": "^3.0.2", | ||
"typescript": "^4.3.4" | ||
@@ -35,0 +37,0 @@ }, |
@@ -1,36 +0,69 @@ | ||
import { BaseQueryFn } from "@reduxjs/toolkit/query/react"; | ||
import { DocumentNode } from "graphql"; | ||
import { GraphQLClient, ClientError } from "graphql-request"; | ||
import { isPlainObject } from '@reduxjs/toolkit' | ||
import type { BaseQueryFn } from '@reduxjs/toolkit/query' | ||
import type { DocumentNode } from 'graphql' | ||
import { GraphQLClient, ClientError } from 'graphql-request' | ||
import type { | ||
GraphqlRequestBaseQueryArgs, | ||
PrepareHeaders, | ||
RequestHeaders, | ||
} from './GraphqlBaseQueryTypes' | ||
type P = Parameters<GraphQLClient["request"]>; | ||
export type Document = P[0]; | ||
export type Variables = P[1]; | ||
export type RequestHeaders = P[2]; | ||
export const graphqlRequestBaseQuery = ( | ||
options: | ||
| { url: string; requestHeaders?: RequestHeaders } | ||
| { client: GraphQLClient } | ||
options: GraphqlRequestBaseQueryArgs | ||
): BaseQueryFn< | ||
{ document: string | DocumentNode; variables?: any }, | ||
unknown, | ||
Pick<ClientError, "name" | "message" | "stack">, | ||
Partial<Pick<ClientError, "request" | "response">> | ||
Pick<ClientError, 'name' | 'message' | 'stack'>, | ||
Partial<Pick<ClientError, 'request' | 'response'>> | ||
> => { | ||
const client = | ||
"client" in options ? options.client : new GraphQLClient(options.url); | ||
if ("requestHeaders" in options) { | ||
client.setHeaders(options.requestHeaders); | ||
} | ||
return async ({ document, variables }) => { | ||
'client' in options ? options.client : new GraphQLClient(options.url) | ||
const requestHeaders: RequestHeaders = | ||
'requestHeaders' in options ? options.requestHeaders : {} | ||
return async ( | ||
{ document, variables }, | ||
{ getState, endpoint, forced, type, signal, extra } | ||
) => { | ||
try { | ||
return { data: await client.request(document, variables), meta: {} }; | ||
const prepareHeaders: PrepareHeaders = | ||
options.prepareHeaders ?? ((x) => x) | ||
const headers = new Headers(stripUndefined(requestHeaders)) | ||
const preparedHeaders = await prepareHeaders(headers, { | ||
getState, | ||
endpoint, | ||
forced, | ||
type, | ||
extra, | ||
}) | ||
return { | ||
data: await client.request({ | ||
document, | ||
variables, | ||
signal, | ||
requestHeaders: preparedHeaders, | ||
}), | ||
meta: {}, | ||
} | ||
} catch (error) { | ||
if (error instanceof ClientError) { | ||
const { name, message, stack, request, response } = error; | ||
return { error: { name, message, stack }, meta: { request, response } }; | ||
const { name, message, stack, request, response } = error | ||
return { error: { name, message, stack }, meta: { request, response } } | ||
} | ||
throw error; | ||
throw error | ||
} | ||
}; | ||
}; | ||
} | ||
} | ||
function stripUndefined(obj: any) { | ||
if (!isPlainObject(obj)) { | ||
return obj | ||
} | ||
const copy: Record<string, any> = { ...obj } | ||
for (const [k, v] of Object.entries(copy)) { | ||
if (typeof v === 'undefined') delete copy[k] | ||
} | ||
return copy | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
23767
13
129
5
+ Addedgraphql-request@4.3.0(transitive)
- Removedgraphql-request@3.7.0(transitive)
Updatedgraphql-request@^4.0.0