github.com/nektos/act@v0.2.63/pkg/runner/testdata/actions/node16/node_modules/@octokit/request/dist-node/index.js (about)

     1  'use strict';
     2  
     3  Object.defineProperty(exports, '__esModule', { value: true });
     4  
     5  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
     6  
     7  var endpoint = require('@octokit/endpoint');
     8  var universalUserAgent = require('universal-user-agent');
     9  var isPlainObject = require('is-plain-object');
    10  var nodeFetch = _interopDefault(require('node-fetch'));
    11  var requestError = require('@octokit/request-error');
    12  
    13  const VERSION = "5.6.3";
    14  
    15  function getBufferResponse(response) {
    16    return response.arrayBuffer();
    17  }
    18  
    19  function fetchWrapper(requestOptions) {
    20    const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;
    21  
    22    if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {
    23      requestOptions.body = JSON.stringify(requestOptions.body);
    24    }
    25  
    26    let headers = {};
    27    let status;
    28    let url;
    29    const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;
    30    return fetch(requestOptions.url, Object.assign({
    31      method: requestOptions.method,
    32      body: requestOptions.body,
    33      headers: requestOptions.headers,
    34      redirect: requestOptions.redirect
    35    }, // `requestOptions.request.agent` type is incompatible
    36    // see https://github.com/octokit/types.ts/pull/264
    37    requestOptions.request)).then(async response => {
    38      url = response.url;
    39      status = response.status;
    40  
    41      for (const keyAndValue of response.headers) {
    42        headers[keyAndValue[0]] = keyAndValue[1];
    43      }
    44  
    45      if ("deprecation" in headers) {
    46        const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/);
    47        const deprecationLink = matches && matches.pop();
    48        log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`);
    49      }
    50  
    51      if (status === 204 || status === 205) {
    52        return;
    53      } // GitHub API returns 200 for HEAD requests
    54  
    55  
    56      if (requestOptions.method === "HEAD") {
    57        if (status < 400) {
    58          return;
    59        }
    60  
    61        throw new requestError.RequestError(response.statusText, status, {
    62          response: {
    63            url,
    64            status,
    65            headers,
    66            data: undefined
    67          },
    68          request: requestOptions
    69        });
    70      }
    71  
    72      if (status === 304) {
    73        throw new requestError.RequestError("Not modified", status, {
    74          response: {
    75            url,
    76            status,
    77            headers,
    78            data: await getResponseData(response)
    79          },
    80          request: requestOptions
    81        });
    82      }
    83  
    84      if (status >= 400) {
    85        const data = await getResponseData(response);
    86        const error = new requestError.RequestError(toErrorMessage(data), status, {
    87          response: {
    88            url,
    89            status,
    90            headers,
    91            data
    92          },
    93          request: requestOptions
    94        });
    95        throw error;
    96      }
    97  
    98      return getResponseData(response);
    99    }).then(data => {
   100      return {
   101        status,
   102        url,
   103        headers,
   104        data
   105      };
   106    }).catch(error => {
   107      if (error instanceof requestError.RequestError) throw error;
   108      throw new requestError.RequestError(error.message, 500, {
   109        request: requestOptions
   110      });
   111    });
   112  }
   113  
   114  async function getResponseData(response) {
   115    const contentType = response.headers.get("content-type");
   116  
   117    if (/application\/json/.test(contentType)) {
   118      return response.json();
   119    }
   120  
   121    if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) {
   122      return response.text();
   123    }
   124  
   125    return getBufferResponse(response);
   126  }
   127  
   128  function toErrorMessage(data) {
   129    if (typeof data === "string") return data; // istanbul ignore else - just in case
   130  
   131    if ("message" in data) {
   132      if (Array.isArray(data.errors)) {
   133        return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`;
   134      }
   135  
   136      return data.message;
   137    } // istanbul ignore next - just in case
   138  
   139  
   140    return `Unknown error: ${JSON.stringify(data)}`;
   141  }
   142  
   143  function withDefaults(oldEndpoint, newDefaults) {
   144    const endpoint = oldEndpoint.defaults(newDefaults);
   145  
   146    const newApi = function (route, parameters) {
   147      const endpointOptions = endpoint.merge(route, parameters);
   148  
   149      if (!endpointOptions.request || !endpointOptions.request.hook) {
   150        return fetchWrapper(endpoint.parse(endpointOptions));
   151      }
   152  
   153      const request = (route, parameters) => {
   154        return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));
   155      };
   156  
   157      Object.assign(request, {
   158        endpoint,
   159        defaults: withDefaults.bind(null, endpoint)
   160      });
   161      return endpointOptions.request.hook(request, endpointOptions);
   162    };
   163  
   164    return Object.assign(newApi, {
   165      endpoint,
   166      defaults: withDefaults.bind(null, endpoint)
   167    });
   168  }
   169  
   170  const request = withDefaults(endpoint.endpoint, {
   171    headers: {
   172      "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`
   173    }
   174  });
   175  
   176  exports.request = request;
   177  //# sourceMappingURL=index.js.map