github.com/jfrog/frogbot@v1.1.1-0.20231221090046-821a26f50338/action/node_modules/@octokit/graphql/dist-web/index.js (about)

     1  import { request } from '@octokit/request';
     2  import { getUserAgent } from 'universal-user-agent';
     3  
     4  const VERSION = "4.8.0";
     5  
     6  function _buildMessageForResponseErrors(data) {
     7      return (`Request failed due to following response errors:\n` +
     8          data.errors.map((e) => ` - ${e.message}`).join("\n"));
     9  }
    10  class GraphqlResponseError extends Error {
    11      constructor(request, headers, response) {
    12          super(_buildMessageForResponseErrors(response));
    13          this.request = request;
    14          this.headers = headers;
    15          this.response = response;
    16          this.name = "GraphqlResponseError";
    17          // Expose the errors and response data in their shorthand properties.
    18          this.errors = response.errors;
    19          this.data = response.data;
    20          // Maintains proper stack trace (only available on V8)
    21          /* istanbul ignore next */
    22          if (Error.captureStackTrace) {
    23              Error.captureStackTrace(this, this.constructor);
    24          }
    25      }
    26  }
    27  
    28  const NON_VARIABLE_OPTIONS = [
    29      "method",
    30      "baseUrl",
    31      "url",
    32      "headers",
    33      "request",
    34      "query",
    35      "mediaType",
    36  ];
    37  const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
    38  const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
    39  function graphql(request, query, options) {
    40      if (options) {
    41          if (typeof query === "string" && "query" in options) {
    42              return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`));
    43          }
    44          for (const key in options) {
    45              if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))
    46                  continue;
    47              return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`));
    48          }
    49      }
    50      const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
    51      const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {
    52          if (NON_VARIABLE_OPTIONS.includes(key)) {
    53              result[key] = parsedOptions[key];
    54              return result;
    55          }
    56          if (!result.variables) {
    57              result.variables = {};
    58          }
    59          result.variables[key] = parsedOptions[key];
    60          return result;
    61      }, {});
    62      // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix
    63      // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451
    64      const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;
    65      if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
    66          requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
    67      }
    68      return request(requestOptions).then((response) => {
    69          if (response.data.errors) {
    70              const headers = {};
    71              for (const key of Object.keys(response.headers)) {
    72                  headers[key] = response.headers[key];
    73              }
    74              throw new GraphqlResponseError(requestOptions, headers, response.data);
    75          }
    76          return response.data.data;
    77      });
    78  }
    79  
    80  function withDefaults(request$1, newDefaults) {
    81      const newRequest = request$1.defaults(newDefaults);
    82      const newApi = (query, options) => {
    83          return graphql(newRequest, query, options);
    84      };
    85      return Object.assign(newApi, {
    86          defaults: withDefaults.bind(null, newRequest),
    87          endpoint: request.endpoint,
    88      });
    89  }
    90  
    91  const graphql$1 = withDefaults(request, {
    92      headers: {
    93          "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,
    94      },
    95      method: "POST",
    96      url: "/graphql",
    97  });
    98  function withCustomRequest(customRequest) {
    99      return withDefaults(customRequest, {
   100          method: "POST",
   101          url: "/graphql",
   102      });
   103  }
   104  
   105  export { GraphqlResponseError, graphql$1 as graphql, withCustomRequest };
   106  //# sourceMappingURL=index.js.map