semantic-branch-version/node_modules/@octokit/graphql/dist-src/graphql.js

36 lines
979 B
JavaScript
Raw Permalink Normal View History

2020-07-04 21:41:06 +08:00
import { GraphqlError } from "./error";
const NON_VARIABLE_OPTIONS = [
"method",
"baseUrl",
"url",
"headers",
"request",
"query",
"mediaType",
];
export function graphql(request, query, options) {
options =
typeof query === "string"
? (options = Object.assign({ query }, options))
: (options = query);
const requestOptions = Object.keys(options).reduce((result, key) => {
if (NON_VARIABLE_OPTIONS.includes(key)) {
result[key] = options[key];
return result;
}
if (!result.variables) {
result.variables = {};
}
result.variables[key] = options[key];
return result;
}, {});
return request(requestOptions).then((response) => {
if (response.data.errors) {
throw new GraphqlError(requestOptions, {
data: response.data,
});
}
return response.data.data;
});
}