1 | 'use strict';
|
2 |
|
3 | function prefetchRoute() {
|
4 | var loaders = {};
|
5 | return {
|
6 | name: "prefetch",
|
7 | register: function (route) {
|
8 | if (route.resolve === undefined) {
|
9 | return;
|
10 | }
|
11 | var _a = route, name = _a.name, resolve = _a.resolve;
|
12 | if (resolve) {
|
13 | loaders[name] = resolve;
|
14 | }
|
15 | },
|
16 | get: function (name, props, external) {
|
17 | if (loaders[name] == null) {
|
18 | return Promise.resolve({
|
19 | error: "Could not prefetch data for " + name + " because it is not registered.",
|
20 | resolved: null
|
21 | });
|
22 | }
|
23 | return loaders[name](props, external).then(function (resolved) { return ({ resolved: resolved, error: null }); }, function (error) { return ({ error: error, resolved: null }); });
|
24 | },
|
25 | reset: function () {
|
26 | loaders = {};
|
27 | }
|
28 | };
|
29 | }
|
30 |
|
31 | module.exports = prefetchRoute;
|