index.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var request = require('@octokit/request');
  4. var universalUserAgent = require('universal-user-agent');
  5. const VERSION = "4.3.1";
  6. class GraphqlError extends Error {
  7. constructor(request, response) {
  8. const message = response.data.errors[0].message;
  9. super(message);
  10. Object.assign(this, response.data);
  11. this.name = "GraphqlError";
  12. this.request = request; // Maintains proper stack trace (only available on V8)
  13. /* istanbul ignore next */
  14. if (Error.captureStackTrace) {
  15. Error.captureStackTrace(this, this.constructor);
  16. }
  17. }
  18. }
  19. const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query"];
  20. function graphql(request, query, options) {
  21. options = typeof query === "string" ? options = Object.assign({
  22. query
  23. }, options) : options = query;
  24. const requestOptions = Object.keys(options).reduce((result, key) => {
  25. if (NON_VARIABLE_OPTIONS.includes(key)) {
  26. result[key] = options[key];
  27. return result;
  28. }
  29. if (!result.variables) {
  30. result.variables = {};
  31. }
  32. result.variables[key] = options[key];
  33. return result;
  34. }, {});
  35. return request(requestOptions).then(response => {
  36. if (response.data.errors) {
  37. throw new GraphqlError(requestOptions, {
  38. data: response.data
  39. });
  40. }
  41. return response.data.data;
  42. });
  43. }
  44. function withDefaults(request$1, newDefaults) {
  45. const newRequest = request$1.defaults(newDefaults);
  46. const newApi = (query, options) => {
  47. return graphql(newRequest, query, options);
  48. };
  49. return Object.assign(newApi, {
  50. defaults: withDefaults.bind(null, newRequest),
  51. endpoint: request.request.endpoint
  52. });
  53. }
  54. const graphql$1 = withDefaults(request.request, {
  55. headers: {
  56. "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`
  57. },
  58. method: "POST",
  59. url: "/graphql"
  60. });
  61. function withCustomRequest(customRequest) {
  62. return withDefaults(customRequest, {
  63. method: "POST",
  64. url: "/graphql"
  65. });
  66. }
  67. exports.graphql = graphql$1;
  68. exports.withCustomRequest = withCustomRequest;
  69. //# sourceMappingURL=index.js.map