mirror of
https://github.com/JamesIves/github-pages-deploy-action.git
synced 2023-12-15 20:03:39 +08:00
117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||
|
|
||
|
var request = require('@octokit/request');
|
||
|
var universalUserAgent = require('universal-user-agent');
|
||
|
|
||
|
const VERSION = "4.6.2";
|
||
|
|
||
|
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"];
|
||
|
const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
|
||
|
const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
|
||
|
function graphql(request, 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;
|
||
|
}, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix
|
||
|
// https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451
|
||
|
|
||
|
const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;
|
||
|
|
||
|
if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
|
||
|
requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
|
||
|
}
|
||
|
|
||
|
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.request.endpoint
|
||
|
});
|
||
|
}
|
||
|
|
||
|
const graphql$1 = withDefaults(request.request, {
|
||
|
headers: {
|
||
|
"user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`
|
||
|
},
|
||
|
method: "POST",
|
||
|
url: "/graphql"
|
||
|
});
|
||
|
function withCustomRequest(customRequest) {
|
||
|
return withDefaults(customRequest, {
|
||
|
method: "POST",
|
||
|
url: "/graphql"
|
||
|
});
|
||
|
}
|
||
|
|
||
|
exports.graphql = graphql$1;
|
||
|
exports.withCustomRequest = withCustomRequest;
|
||
|
//# sourceMappingURL=index.js.map
|