import { request } from '@octokit/request'; import { getUserAgent } from 'universal-user-agent'; const VERSION = "4.5.3"; class GraphqlError extends Error { constructor(request, response) { const message = response.data.errors[0].message; super(message); Object.assign(this, response.data); Object.assign(this, { headers: response.headers }); this.name = "GraphqlError"; this.request = request; // Maintains proper stack trace (only available on V8) /* istanbul ignore next */ if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } } const NON_VARIABLE_OPTIONS = [ "method", "baseUrl", "url", "headers", "request", "query", "mediaType", ]; 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) { const headers = {}; for (const key of Object.keys(response.headers)) { headers[key] = response.headers[key]; } throw new GraphqlError(requestOptions, { headers, data: response.data, }); } return response.data.data; }); } function withDefaults(request$1, newDefaults) { const newRequest = request$1.defaults(newDefaults); const newApi = (query, options) => { return graphql(newRequest, query, options); }; return Object.assign(newApi, { defaults: withDefaults.bind(null, newRequest), endpoint: request.endpoint, }); } const graphql$1 = withDefaults(request, { headers: { "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`, }, method: "POST", url: "/graphql", }); function withCustomRequest(customRequest) { return withDefaults(customRequest, { method: "POST", url: "/graphql", }); } export { graphql$1 as graphql, withCustomRequest }; //# sourceMappingURL=index.js.map