UNPKG

16.8 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = exports.UappModule = void 0;
11
12var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
18var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
20var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
22var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
23
24var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
26var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
28var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
30var _env = require("@lskjs/env");
31
32var _module = _interopRequireDefault(require("@lskjs/module"));
33
34var _universalRouter = _interopRequireDefault(require("universal-router"));
35
36var _collectUniversalRoutes = require("./collectUniversalRoutes");
37
38var _UappProvider = _interopRequireDefault(require("./UappProvider"));
39
40function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
41
42function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
44function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
46function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
48function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
49
50function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
52var UappModule = /*#__PURE__*/function (_Module) {
53 (0, _inherits2["default"])(UappModule, _Module);
54
55 var _super = _createSuper(UappModule);
56
57 function UappModule() {
58 var _this;
59
60 (0, _classCallCheck2["default"])(this, UappModule);
61
62 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63 args[_key] = arguments[_key];
64 }
65
66 _this = _super.call.apply(_super, [this].concat(args));
67 _this.isClient = _env.isClient;
68 _this.Provider = _UappProvider["default"];
69 _this.__providers = {};
70 return _this;
71 }
72
73 (0, _createClass2["default"])(UappModule, [{
74 key: "getModules",
75 value: function getModules() {
76 return {
77 scrollTo: function scrollTo() {
78 return Promise.resolve().then(function () {
79 return _interopRequireWildcard(require('./ScrollToModule'));
80 });
81 },
82 progress: function progress() {
83 return Promise.resolve().then(function () {
84 return _interopRequireWildcard(require('./ProgressModule'));
85 });
86 },
87 page: function page() {
88 return Promise.resolve().then(function () {
89 return _interopRequireWildcard(require('./Page'));
90 });
91 },
92 api: function api() {
93 return Promise.resolve().then(function () {
94 return _interopRequireWildcard(require('./ApiModule'));
95 });
96 }
97 };
98 }
99 }, {
100 key: "getRoutes",
101 value: function getRoutes() {
102 return {};
103 }
104 }, {
105 key: "getModuleProps",
106 value: function () {
107 var _getModuleProps = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name) {
108 var props;
109 return _regenerator["default"].wrap(function _callee$(_context) {
110 while (1) {
111 switch (_context.prev = _context.next) {
112 case 0:
113 _context.next = 2;
114 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(UappModule.prototype), "getModuleProps", this).call(this, name);
115
116 case 2:
117 props = _context.sent;
118
119 if (!(name === 'page')) {
120 _context.next = 5;
121 break;
122 }
123
124 return _context.abrupt("return", _objectSpread(_objectSpread({}, props), {}, {
125 Provider: this.Provider // rootState: this.getRootState(),
126
127 }));
128
129 case 5:
130 return _context.abrupt("return", props);
131
132 case 6:
133 case "end":
134 return _context.stop();
135 }
136 }
137 }, _callee, this);
138 }));
139
140 function getModuleProps(_x) {
141 return _getModuleProps.apply(this, arguments);
142 }
143
144 return getModuleProps;
145 }()
146 }, {
147 key: "init",
148 value: function () {
149 var _init = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
150 return _regenerator["default"].wrap(function _callee2$(_context2) {
151 while (1) {
152 switch (_context2.prev = _context2.next) {
153 case 0:
154 _context2.next = 2;
155 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(UappModule.prototype), "init", this).call(this);
156
157 case 2:
158 _context2.next = 4;
159 return this.module('api');
160
161 case 4:
162 this.api = _context2.sent;
163
164 if (this.isClient) {
165 this.on('resolve:start', this.resolveStart.bind(this));
166 this.on('resolve:finish', this.resolveFinish.bind(this));
167 }
168
169 case 6:
170 case "end":
171 return _context2.stop();
172 }
173 }
174 }, _callee2, this);
175 }));
176
177 function init() {
178 return _init.apply(this, arguments);
179 }
180
181 return init;
182 }()
183 }, {
184 key: "run",
185 value: function () {
186 var _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
187 var context;
188 return _regenerator["default"].wrap(function _callee3$(_context3) {
189 while (1) {
190 switch (_context3.prev = _context3.next) {
191 case 0:
192 _context3.next = 2;
193 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(UappModule.prototype), "run", this).call(this);
194
195 case 2:
196 _context3.next = 4;
197 return this.getRoutes();
198
199 case 4:
200 this.routes = _context3.sent;
201 this.log.debug('routes', (0, _collectUniversalRoutes.collectUniversalRoutes)(this.routes));
202 _context3.next = 8;
203 return this.provide();
204
205 case 8:
206 context = _context3.sent;
207 this.log.debug('router.context', Object.keys(context));
208 this.router = new _universalRouter["default"](this.routes, {
209 context: context
210 });
211 _context3.next = 13;
212 return this.module('scrollTo');
213
214 case 13:
215 this.scrollTo = _context3.sent;
216 _context3.next = 16;
217 return this.module('progress');
218
219 case 16:
220 this.progress = _context3.sent;
221
222 case 17:
223 case "end":
224 return _context3.stop();
225 }
226 }
227 }, _callee3, this);
228 }));
229
230 function run() {
231 return _run.apply(this, arguments);
232 }
233
234 return run;
235 }()
236 }, {
237 key: "provide",
238 value: function () {
239 var _provide = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
240 return _regenerator["default"].wrap(function _callee4$(_context4) {
241 while (1) {
242 switch (_context4.prev = _context4.next) {
243 case 0:
244 return _context4.abrupt("return", {
245 app: this,
246 req: this.req,
247 module: this.module.bind(this)
248 });
249
250 case 1:
251 case "end":
252 return _context4.stop();
253 }
254 }
255 }, _callee4, this);
256 }));
257
258 function provide() {
259 return _provide.apply(this, arguments);
260 }
261
262 return provide;
263 }()
264 }, {
265 key: "__provide",
266 value: function () {
267 var _provide2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
268 return _regenerator["default"].wrap(function _callee5$(_context5) {
269 while (1) {
270 switch (_context5.prev = _context5.next) {
271 case 0:
272 if (!Object.keys(this.__providers).length) {
273 _context5.next = 2;
274 break;
275 }
276
277 return _context5.abrupt("return", this.__providers);
278
279 case 2:
280 _context5.next = 4;
281 return this.provide();
282
283 case 4:
284 this.__providers = _context5.sent;
285 return _context5.abrupt("return", this.__providers);
286
287 case 6:
288 case "end":
289 return _context5.stop();
290 }
291 }
292 }, _callee5, this);
293 }));
294
295 function __provide() {
296 return _provide2.apply(this, arguments);
297 }
298
299 return __provide;
300 }()
301 }, {
302 key: "resolveStart",
303 value: function () {
304 var _resolveStart = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
305 return _regenerator["default"].wrap(function _callee6$(_context6) {
306 while (1) {
307 switch (_context6.prev = _context6.next) {
308 case 0:
309 if (this.progress && this.progress.current) {
310 this.progress.current.start();
311 }
312
313 case 1:
314 case "end":
315 return _context6.stop();
316 }
317 }
318 }, _callee6, this);
319 }));
320
321 function resolveStart() {
322 return _resolveStart.apply(this, arguments);
323 }
324
325 return resolveStart;
326 }()
327 }, {
328 key: "resolveFinish",
329 value: function () {
330 var _resolveFinish = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(_ref) {
331 var page, meta;
332 return _regenerator["default"].wrap(function _callee7$(_context7) {
333 while (1) {
334 switch (_context7.prev = _context7.next) {
335 case 0:
336 page = _ref.page;
337
338 try {
339 meta = page.getMeta();
340 if (meta && meta.title && this.isClient) window.document.title = meta.title;
341 } catch (err) {
342 this.log.error('cant set title', err);
343 }
344
345 if (this.progress && this.progress.current) {
346 this.progress.current.finish();
347 }
348
349 this.req.path = this.history.location.path;
350 this.req.query = this.history.location.query;
351
352 case 5:
353 case "end":
354 return _context7.stop();
355 }
356 }
357 }, _callee7, this);
358 }));
359
360 function resolveFinish(_x2) {
361 return _resolveFinish.apply(this, arguments);
362 }
363
364 return resolveFinish;
365 }()
366 }, {
367 key: "resolve",
368 value: function () {
369 var _resolve = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
370 var reqParams,
371 req,
372 page,
373 providers,
374 res,
375 _args8 = arguments;
376 return _regenerator["default"].wrap(function _callee8$(_context8) {
377 while (1) {
378 switch (_context8.prev = _context8.next) {
379 case 0:
380 reqParams = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
381 this.emit('resolve:start', reqParams);
382 req = _objectSpread(_objectSpread({}, this.req), {}, {
383 path: reqParams.path,
384 query: reqParams.query
385 });
386 _context8.prev = 3;
387 if (this.isClient) this.log.debug('resolve', req.path, req.query);
388 _context8.next = 7;
389 return this.module('page');
390
391 case 7:
392 page = _context8.sent;
393 _context8.next = 10;
394 return page.beforeResolve();
395
396 case 10:
397 _context8.next = 12;
398 return this.__provide();
399
400 case 12:
401 providers = _context8.sent;
402 _context8.next = 15;
403 return this.router.resolve(_objectSpread({
404 pathname: reqParams.path,
405 path: reqParams.path,
406 query: reqParams.query,
407 // req,
408 page: page,
409 req: req
410 }, providers));
411
412 case 15:
413 res = _context8.sent;
414 _context8.next = 18;
415 return page.afterResolve();
416
417 case 18:
418 this.emit('resolve:finish', {
419 req: req,
420 res: res,
421 page: page
422 });
423 return _context8.abrupt("return", {
424 res: res,
425 page: page
426 });
427
428 case 22:
429 _context8.prev = 22;
430 _context8.t0 = _context8["catch"](3);
431 this.log.error('uapp.router.resolve ERR:', _context8.t0);
432 this.emit('resolve:error', {
433 req: req,
434 err: _context8.t0
435 });
436 throw _context8.t0;
437
438 case 27:
439 case "end":
440 return _context8.stop();
441 }
442 }
443 }, _callee8, this, [[3, 22]]);
444 }));
445
446 function resolve() {
447 return _resolve.apply(this, arguments);
448 }
449
450 return resolve;
451 }()
452 }]);
453 return UappModule;
454}(_module["default"]);
455
456exports.UappModule = UappModule;
457var _default = UappModule;
458exports["default"] = _default;
459//# sourceMappingURL=UappModule.js.map
\No newline at end of file