128 lines
3.4 KiB
JavaScript
128 lines
3.4 KiB
JavaScript
|
// pkg/dist-src/index.js
|
||
|
import { request } from "@octokit/request";
|
||
|
import { getUserAgent } from "universal-user-agent";
|
||
|
|
||
|
// pkg/dist-src/version.js
|
||
|
var VERSION = "7.1.0";
|
||
|
|
||
|
// pkg/dist-src/with-defaults.js
|
||
|
import { request as Request2 } from "@octokit/request";
|
||
|
|
||
|
// pkg/dist-src/graphql.js
|
||
|
import { request as Request } from "@octokit/request";
|
||
|
|
||
|
// pkg/dist-src/error.js
|
||
|
function _buildMessageForResponseErrors(data) {
|
||
|
return `Request failed due to following response errors:
|
||
|
` + data.errors.map((e) => ` - ${e.message}`).join("\n");
|
||
|
}
|
||
|
var GraphqlResponseError = class extends Error {
|
||
|
constructor(request2, headers, response) {
|
||
|
super(_buildMessageForResponseErrors(response));
|
||
|
this.request = request2;
|
||
|
this.headers = headers;
|
||
|
this.response = response;
|
||
|
this.name = "GraphqlResponseError";
|
||
|
this.errors = response.errors;
|
||
|
this.data = response.data;
|
||
|
if (Error.captureStackTrace) {
|
||
|
Error.captureStackTrace(this, this.constructor);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// pkg/dist-src/graphql.js
|
||
|
var NON_VARIABLE_OPTIONS = [
|
||
|
"method",
|
||
|
"baseUrl",
|
||
|
"url",
|
||
|
"headers",
|
||
|
"request",
|
||
|
"query",
|
||
|
"mediaType"
|
||
|
];
|
||
|
var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
|
||
|
var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
|
||
|
function graphql(request2, query, options) {
|
||
|
if (options) {
|
||
|
if (typeof query === "string" && "query" in options) {
|
||
|
return Promise.reject(
|
||
|
new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
|
||
|
);
|
||
|
}
|
||
|
for (const key in options) {
|
||
|
if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))
|
||
|
continue;
|
||
|
return Promise.reject(
|
||
|
new Error(
|
||
|
`[@octokit/graphql] "${key}" cannot be used as variable name`
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
|
||
|
const requestOptions = Object.keys(
|
||
|
parsedOptions
|
||
|
).reduce((result, key) => {
|
||
|
if (NON_VARIABLE_OPTIONS.includes(key)) {
|
||
|
result[key] = parsedOptions[key];
|
||
|
return result;
|
||
|
}
|
||
|
if (!result.variables) {
|
||
|
result.variables = {};
|
||
|
}
|
||
|
result.variables[key] = parsedOptions[key];
|
||
|
return result;
|
||
|
}, {});
|
||
|
const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
|
||
|
if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
|
||
|
requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
|
||
|
}
|
||
|
return request2(requestOptions).then((response) => {
|
||
|
if (response.data.errors) {
|
||
|
const headers = {};
|
||
|
for (const key of Object.keys(response.headers)) {
|
||
|
headers[key] = response.headers[key];
|
||
|
}
|
||
|
throw new GraphqlResponseError(
|
||
|
requestOptions,
|
||
|
headers,
|
||
|
response.data
|
||
|
);
|
||
|
}
|
||
|
return response.data.data;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// pkg/dist-src/with-defaults.js
|
||
|
function withDefaults(request2, newDefaults) {
|
||
|
const newRequest = request2.defaults(newDefaults);
|
||
|
const newApi = (query, options) => {
|
||
|
return graphql(newRequest, query, options);
|
||
|
};
|
||
|
return Object.assign(newApi, {
|
||
|
defaults: withDefaults.bind(null, newRequest),
|
||
|
endpoint: newRequest.endpoint
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// pkg/dist-src/index.js
|
||
|
var graphql2 = 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 {
|
||
|
GraphqlResponseError,
|
||
|
graphql2 as graphql,
|
||
|
withCustomRequest
|
||
|
};
|