nextbus-graphql
Version:
A GraphQL interface to the NextBus XML Feed
54 lines (45 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.nodeField = exports.nodeInterface = undefined;
var _graphqlRelay = require('graphql-relay');
var relay = _interopRequireWildcard(_graphqlRelay);
var _types = require('./types');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
const { nodeInterface, nodeField } = relay.nodeDefinitions((() => {
var _ref = _asyncToGenerator(function* (globalId, context, info) {
const { type, id } = relay.fromGlobalId(globalId);
switch (type) {
case _types.agency.type.name:
return _types.agency.getNode(id, context, info);
case _types.route.type.name:
return _types.route.getNode(id, context, info);
case _types.stop.type.name:
return _types.stop.getNode(id, context, info);
case _types.viewer.type.name:
return _types.viewer.getNode(id, context, info);
default:
throw new Error(`Invalid type "${ type }" from global ID "${ globalId }"`);
}
});
return function (_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
})(), obj => {
switch (obj.type) {
case _types.agency.type.name:
return _types.agency.type;
case _types.route.type.name:
return _types.route.type;
case _types.stop.type.name:
return _types.stop.type;
case _types.viewer.type.name:
return _types.viewer.type;
default:
throw new Error(`Invalid object type "${ obj.type }"`);
}
});
exports.nodeInterface = nodeInterface;
exports.nodeField = nodeField;