sharyn
Version:
Combines all the other packages under one.
147 lines (115 loc) • 4.45 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
var _env = require("@sharyn/env");
var _shared = require("@sharyn/shared");
// flow-disable-next-line
// flow-disable-next-line
var getSsrData =
/*#__PURE__*/
function () {
var _ref = (0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee(ctx, allRoutes) {
var data, user, _findMatch, match, route, cookie, urlBase, _route$mainQuery, query, mapResp, mapUrlParams, _ref2, _route$mainMutation, _query, mapFields, _mapUrlParams, _mapResp, successRedirect;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
user = ctx.session.user;
if (_env.NO_SSR) {
_context.next = 32;
break;
}
_findMatch = (0, _shared.findMatch)(allRoutes, ctx.req.url, !!user), match = _findMatch.match, route = _findMatch.route;
if (!match) {
_context.next = 31;
break;
}
cookie = ctx.req.headers.cookie;
urlBase = "http".concat(_env.IS_LOCAL_ENV_TYPE ? '' : 's', "://").concat(ctx.request.host);
if (!(ctx.request.method === 'GET' && route.mainQuery)) {
_context.next = 11;
break;
}
_route$mainQuery = route.mainQuery, query = _route$mainQuery.query, mapResp = _route$mainQuery.mapResp, mapUrlParams = _route$mainQuery.mapUrlParams;
_context.next = 10;
return (0, _shared.graphqlCall)({
urlBase: urlBase,
query: query,
urlParams: match.params,
mapUrlParams: mapUrlParams,
mapResp: mapResp,
cookie: cookie
});
case 10:
data = _context.sent;
case 11:
if (!(ctx.request.method === 'POST' && route.mainMutation)) {
_context.next = 29;
break;
}
_route$mainMutation = route.mainMutation, _query = _route$mainMutation.query, mapFields = _route$mainMutation.mapFields, _mapUrlParams = _route$mainMutation.mapUrlParams, _mapResp = _route$mainMutation.mapResp, successRedirect = _route$mainMutation.successRedirect;
_context.next = 15;
return (0, _shared.graphqlCall)({
urlBase: urlBase,
query: _query,
urlParams: match.params,
mapUrlParams: _mapUrlParams,
fields: ctx.request.body,
mapFields: mapFields,
mapResp: _mapResp,
cookie: cookie
});
case 15:
_context.t1 = _ref2 = _context.sent;
_context.t0 = _context.t1 !== null;
if (!_context.t0) {
_context.next = 19;
break;
}
_context.t0 = _ref2 !== void 0;
case 19:
if (!_context.t0) {
_context.next = 23;
break;
}
_context.t2 = _ref2;
_context.next = 24;
break;
case 23:
_context.t2 = {};
case 24:
data = _context.t2;
data.previousFields = ctx.request.body;
if (!(!data.errors && !data.invalidFields && successRedirect)) {
_context.next = 29;
break;
}
ctx.redirect(successRedirect instanceof Function ? successRedirect(data, ctx.request.body) : successRedirect);
return _context.abrupt("return", {});
case 29:
_context.next = 32;
break;
case 31:
ctx.status = 404;
case 32:
return _context.abrupt("return", data);
case 33:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
return function getSsrData(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var _default = getSsrData;
exports.default = _default;