graphqldoc
Version:
Generate GraphQL docs from schema.
52 lines (51 loc) • 2.37 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const Bluebird = require("bluebird");
const request = require("request");
const introspectionParser_1 = require("./introspectionParser");
const utility_1 = require("../utility");
function r(options) {
return __awaiter(this, void 0, void 0, function* () {
return new Bluebird((resolve, reject) => {
request(options, function (error, res, body) {
if (error)
return reject(error);
if (res.statusCode >= 400)
return reject(new Error('Unexpected HTTP Status Code ' + res.statusCode +
' (' + res.statusMessage + ') from: ' + options.url));
if (typeof body === 'string')
return reject(new Error('Unexpected response from "' + options.url + '": ' + body.slice(0, 10) + '...'));
return resolve(introspectionParser_1.getSchemaFromIntrospection(body));
});
});
});
}
exports.httpSchemaLoader = function (options) {
return __awaiter(this, void 0, void 0, function* () {
let requestOptions = {
url: options.endpoint,
method: 'POST',
body: { query: utility_1.query },
json: true,
};
requestOptions.headers = options.headers.reduce((result, header) => {
const [name, value] = header.split(': ', 2);
result[name] = value;
return result;
}, {});
requestOptions.qs = options.queries.reduce((result, query) => {
const [name, value] = query.split('=', 2);
result[name] = value;
return result;
}, {});
return r(requestOptions);
});
};