UNPKG

3.53 kBJavaScriptView Raw
1// pkg/dist-src/index.js
2import { request } from "@octokit/request";
3import { getUserAgent } from "universal-user-agent";
4
5// pkg/dist-src/version.js
6var VERSION = "0.0.0-development";
7
8// pkg/dist-src/with-defaults.js
9import { request as Request2 } from "@octokit/request";
10
11// pkg/dist-src/graphql.js
12import { request as Request } from "@octokit/request";
13
14// pkg/dist-src/error.js
15function _buildMessageForResponseErrors(data) {
16 return `Request failed due to following response errors:
17` + data.errors.map((e) => ` - ${e.message}`).join("\n");
18}
19var GraphqlResponseError = class extends Error {
20 constructor(request2, headers, response) {
21 super(_buildMessageForResponseErrors(response));
22 this.request = request2;
23 this.headers = headers;
24 this.response = response;
25 this.errors = response.errors;
26 this.data = response.data;
27 if (Error.captureStackTrace) {
28 Error.captureStackTrace(this, this.constructor);
29 }
30 }
31 name = "GraphqlResponseError";
32 errors;
33 data;
34};
35
36// pkg/dist-src/graphql.js
37var NON_VARIABLE_OPTIONS = [
38 "method",
39 "baseUrl",
40 "url",
41 "headers",
42 "request",
43 "query",
44 "mediaType"
45];
46var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
47var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
48function graphql(request2, query, options) {
49 if (options) {
50 if (typeof query === "string" && "query" in options) {
51 return Promise.reject(
52 new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
53 );
54 }
55 for (const key in options) {
56 if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))
57 continue;
58 return Promise.reject(
59 new Error(
60 `[@octokit/graphql] "${key}" cannot be used as variable name`
61 )
62 );
63 }
64 }
65 const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
66 const requestOptions = Object.keys(
67 parsedOptions
68 ).reduce((result, key) => {
69 if (NON_VARIABLE_OPTIONS.includes(key)) {
70 result[key] = parsedOptions[key];
71 return result;
72 }
73 if (!result.variables) {
74 result.variables = {};
75 }
76 result.variables[key] = parsedOptions[key];
77 return result;
78 }, {});
79 const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
80 if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
81 requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
82 }
83 return request2(requestOptions).then((response) => {
84 if (response.data.errors) {
85 const headers = {};
86 for (const key of Object.keys(response.headers)) {
87 headers[key] = response.headers[key];
88 }
89 throw new GraphqlResponseError(
90 requestOptions,
91 headers,
92 response.data
93 );
94 }
95 return response.data.data;
96 });
97}
98
99// pkg/dist-src/with-defaults.js
100function withDefaults(request2, newDefaults) {
101 const newRequest = request2.defaults(newDefaults);
102 const newApi = (query, options) => {
103 return graphql(newRequest, query, options);
104 };
105 return Object.assign(newApi, {
106 defaults: withDefaults.bind(null, newRequest),
107 endpoint: newRequest.endpoint
108 });
109}
110
111// pkg/dist-src/index.js
112var graphql2 = withDefaults(request, {
113 headers: {
114 "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`
115 },
116 method: "POST",
117 url: "/graphql"
118});
119function withCustomRequest(customRequest) {
120 return withDefaults(customRequest, {
121 method: "POST",
122 url: "/graphql"
123 });
124}
125export {
126 GraphqlResponseError,
127 graphql2 as graphql,
128 withCustomRequest
129};