UNPKG

sharyn

Version:

Combines all the other packages under one.

147 lines (115 loc) 4.45 kB
"use strict"; 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;