UNPKG

4.45 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
11
12var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
13
14var _env = require("@sharyn/env");
15
16var _shared = require("@sharyn/shared");
17
18// flow-disable-next-line
19// flow-disable-next-line
20var getSsrData =
21/*#__PURE__*/
22function () {
23 var _ref = (0, _asyncToGenerator2.default)(
24 /*#__PURE__*/
25 _regenerator.default.mark(function _callee(ctx, allRoutes) {
26 var data, user, _findMatch, match, route, cookie, urlBase, _route$mainQuery, query, mapResp, mapUrlParams, _ref2, _route$mainMutation, _query, mapFields, _mapUrlParams, _mapResp, successRedirect;
27
28 return _regenerator.default.wrap(function _callee$(_context) {
29 while (1) {
30 switch (_context.prev = _context.next) {
31 case 0:
32 user = ctx.session.user;
33
34 if (_env.NO_SSR) {
35 _context.next = 32;
36 break;
37 }
38
39 _findMatch = (0, _shared.findMatch)(allRoutes, ctx.req.url, !!user), match = _findMatch.match, route = _findMatch.route;
40
41 if (!match) {
42 _context.next = 31;
43 break;
44 }
45
46 cookie = ctx.req.headers.cookie;
47 urlBase = "http".concat(_env.IS_LOCAL_ENV_TYPE ? '' : 's', "://").concat(ctx.request.host);
48
49 if (!(ctx.request.method === 'GET' && route.mainQuery)) {
50 _context.next = 11;
51 break;
52 }
53
54 _route$mainQuery = route.mainQuery, query = _route$mainQuery.query, mapResp = _route$mainQuery.mapResp, mapUrlParams = _route$mainQuery.mapUrlParams;
55 _context.next = 10;
56 return (0, _shared.graphqlCall)({
57 urlBase: urlBase,
58 query: query,
59 urlParams: match.params,
60 mapUrlParams: mapUrlParams,
61 mapResp: mapResp,
62 cookie: cookie
63 });
64
65 case 10:
66 data = _context.sent;
67
68 case 11:
69 if (!(ctx.request.method === 'POST' && route.mainMutation)) {
70 _context.next = 29;
71 break;
72 }
73
74 _route$mainMutation = route.mainMutation, _query = _route$mainMutation.query, mapFields = _route$mainMutation.mapFields, _mapUrlParams = _route$mainMutation.mapUrlParams, _mapResp = _route$mainMutation.mapResp, successRedirect = _route$mainMutation.successRedirect;
75 _context.next = 15;
76 return (0, _shared.graphqlCall)({
77 urlBase: urlBase,
78 query: _query,
79 urlParams: match.params,
80 mapUrlParams: _mapUrlParams,
81 fields: ctx.request.body,
82 mapFields: mapFields,
83 mapResp: _mapResp,
84 cookie: cookie
85 });
86
87 case 15:
88 _context.t1 = _ref2 = _context.sent;
89 _context.t0 = _context.t1 !== null;
90
91 if (!_context.t0) {
92 _context.next = 19;
93 break;
94 }
95
96 _context.t0 = _ref2 !== void 0;
97
98 case 19:
99 if (!_context.t0) {
100 _context.next = 23;
101 break;
102 }
103
104 _context.t2 = _ref2;
105 _context.next = 24;
106 break;
107
108 case 23:
109 _context.t2 = {};
110
111 case 24:
112 data = _context.t2;
113 data.previousFields = ctx.request.body;
114
115 if (!(!data.errors && !data.invalidFields && successRedirect)) {
116 _context.next = 29;
117 break;
118 }
119
120 ctx.redirect(successRedirect instanceof Function ? successRedirect(data, ctx.request.body) : successRedirect);
121 return _context.abrupt("return", {});
122
123 case 29:
124 _context.next = 32;
125 break;
126
127 case 31:
128 ctx.status = 404;
129
130 case 32:
131 return _context.abrupt("return", data);
132
133 case 33:
134 case "end":
135 return _context.stop();
136 }
137 }
138 }, _callee, this);
139 }));
140
141 return function getSsrData(_x, _x2) {
142 return _ref.apply(this, arguments);
143 };
144}();
145
146var _default = getSsrData;
147exports.default = _default;
\No newline at end of file