@quilted/quilt 0.5.135 → 0.5.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/build/cjs/App.cjs +4 -9
- package/build/cjs/index.cjs +46 -4
- package/build/cjs/server/ServerContext.cjs +6 -4
- package/build/cjs/server/index.cjs +30 -7
- package/build/cjs/server/preload.cjs +37 -0
- package/build/cjs/server/request-router.cjs +75 -54
- package/build/cjs/static/StaticContext.cjs +6 -4
- package/build/cjs/static/index.cjs +29 -42
- package/build/cjs/static/render.cjs +8 -2
- package/build/esm/App.mjs +5 -10
- package/build/esm/index.mjs +4 -2
- package/build/esm/server/ServerContext.mjs +3 -1
- package/build/esm/server/index.mjs +3 -1
- package/build/esm/server/preload.mjs +35 -0
- package/build/esm/server/request-router.mjs +57 -36
- package/build/esm/static/StaticContext.mjs +3 -1
- package/build/esm/static/index.mjs +24 -37
- package/build/esm/static/render.mjs +6 -0
- package/build/esnext/App.esnext +5 -10
- package/build/esnext/index.esnext +4 -2
- package/build/esnext/server/ServerContext.esnext +3 -1
- package/build/esnext/server/index.esnext +3 -1
- package/build/esnext/server/preload.esnext +35 -0
- package/build/esnext/server/request-router.esnext +57 -36
- package/build/esnext/static/StaticContext.esnext +3 -1
- package/build/esnext/static/index.esnext +24 -37
- package/build/esnext/static/render.esnext +6 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/typescript/App.d.ts.map +1 -1
- package/build/typescript/assets.d.ts +7 -0
- package/build/typescript/assets.d.ts.map +1 -0
- package/build/typescript/index.d.ts +5 -2
- package/build/typescript/index.d.ts.map +1 -1
- package/build/typescript/magic/assets.d.ts +3 -0
- package/build/typescript/magic/assets.d.ts.map +1 -0
- package/build/typescript/server/ServerContext.d.ts +3 -1
- package/build/typescript/server/ServerContext.d.ts.map +1 -1
- package/build/typescript/server/index.d.ts +4 -2
- package/build/typescript/server/index.d.ts.map +1 -1
- package/build/typescript/server/preload.d.ts +8 -0
- package/build/typescript/server/preload.d.ts.map +1 -0
- package/build/typescript/server/request-router.d.ts +23 -12
- package/build/typescript/server/request-router.d.ts.map +1 -1
- package/build/typescript/static/StaticContext.d.ts +3 -1
- package/build/typescript/static/StaticContext.d.ts.map +1 -1
- package/build/typescript/static/index.d.ts +3 -5
- package/build/typescript/static/index.d.ts.map +1 -1
- package/build/typescript/static/render.d.ts +6 -2
- package/build/typescript/static/render.d.ts.map +1 -1
- package/package.json +5 -3
- package/source/App.tsx +8 -17
- package/source/assets.ts +7 -0
- package/source/index.ts +23 -1
- package/source/magic/assets.ts +5 -0
- package/source/server/ServerContext.tsx +15 -7
- package/source/server/index.ts +19 -9
- package/source/server/preload.ts +69 -0
- package/source/server/request-router.tsx +135 -64
- package/source/static/StaticContext.tsx +15 -7
- package/source/static/index.tsx +26 -41
- package/source/static/render.tsx +8 -4
- package/tsconfig.json +2 -0
- package/build/typescript/AppContext.d.ts +0 -8
- package/build/typescript/AppContext.d.ts.map +0 -1
- package/build/typescript/email.d.ts +0 -3
- package/build/typescript/email.d.ts.map +0 -1
- package/build/typescript/http-handlers/index.d.ts +0 -2
- package/build/typescript/http-handlers/index.d.ts.map +0 -1
- package/build/typescript/http-handlers/node.d.ts +0 -2
- package/build/typescript/http-handlers/node.d.ts.map +0 -1
- package/build/typescript/magic/http-handler.d.ts +0 -4
- package/build/typescript/magic/http-handler.d.ts.map +0 -1
- package/build/typescript/server/http-handler.d.ts +0 -13
- package/build/typescript/server/http-handler.d.ts.map +0 -1
- package/build/typescript/server/render.d.ts +0 -17
- package/build/typescript/server/render.d.ts.map +0 -1
- package/source/magic/asset-manifest.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @quilted/quilt
|
|
2
2
|
|
|
3
|
+
## 0.5.137
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#527](https://github.com/lemonmade/quilt/pull/527) [`a255c7c2`](https://github.com/lemonmade/quilt/commit/a255c7c284391b2c3157fffed5a5feb576cd45ac) Thanks [@lemonmade](https://github.com/lemonmade)! - Improve asset manifests
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`a255c7c2`](https://github.com/lemonmade/quilt/commit/a255c7c284391b2c3157fffed5a5feb576cd45ac)]:
|
|
10
|
+
- @quilted/assets@0.0.1
|
|
11
|
+
- @quilted/react-assets@0.0.1
|
|
12
|
+
|
|
13
|
+
## 0.5.136
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#516](https://github.com/lemonmade/quilt/pull/516) [`575d9033`](https://github.com/lemonmade/quilt/commit/575d9033cfafa438b2998c6fea7e00a307ef0be7) Thanks [@lemonmade](https://github.com/lemonmade)! - Add `routes` to `Routing` component
|
|
18
|
+
|
|
19
|
+
- [#516](https://github.com/lemonmade/quilt/pull/516) [`575d9033`](https://github.com/lemonmade/quilt/commit/575d9033cfafa438b2998c6fea7e00a307ef0be7) Thanks [@lemonmade](https://github.com/lemonmade)! - Add timeout event helpers
|
|
20
|
+
|
|
3
21
|
## 0.5.135
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/build/cjs/App.cjs
CHANGED
|
@@ -18,22 +18,22 @@ function QuiltApp({
|
|
|
18
18
|
children,
|
|
19
19
|
performance = true
|
|
20
20
|
}) {
|
|
21
|
-
const routesContent = routing !== false && routes ? /*#__PURE__*/jsxRuntime.jsx(StaticRoutes, {
|
|
22
|
-
routes: routes
|
|
23
|
-
}) : null;
|
|
24
21
|
const htmlContent = typeof html === 'boolean' ? html ? /*#__PURE__*/jsxRuntime.jsx(HtmlUpdater, {}) : null : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25
22
|
children: [/*#__PURE__*/jsxRuntime.jsx(HtmlUpdater, {}), html]
|
|
26
23
|
});
|
|
27
24
|
const httpContent = typeof http === 'boolean' ? null : http;
|
|
28
25
|
const content = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
29
|
-
children: [httpContent, htmlContent,
|
|
26
|
+
children: [httpContent, htmlContent, children]
|
|
30
27
|
});
|
|
31
28
|
const withMaybeRouting = typeof routing === 'boolean' ? routing ? /*#__PURE__*/jsxRuntime.jsx(reactRouter.Routing, {
|
|
29
|
+
routes: routes,
|
|
32
30
|
children: content
|
|
33
31
|
}) : content : 'navigate' in routing ? /*#__PURE__*/jsxRuntime.jsx(reactRouter.Routing, {
|
|
32
|
+
routes: routes,
|
|
34
33
|
router: routing,
|
|
35
34
|
children: content
|
|
36
35
|
}) : /*#__PURE__*/jsxRuntime.jsx(reactRouter.Routing, {
|
|
36
|
+
routes: routes,
|
|
37
37
|
...routing,
|
|
38
38
|
children: content
|
|
39
39
|
});
|
|
@@ -68,10 +68,5 @@ function HtmlUpdater() {
|
|
|
68
68
|
reactHtml.useHtmlUpdater();
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
|
-
function StaticRoutes({
|
|
72
|
-
routes
|
|
73
|
-
}) {
|
|
74
|
-
return reactRouter.useRoutes(routes);
|
|
75
|
-
}
|
|
76
71
|
|
|
77
72
|
exports.QuiltApp = QuiltApp;
|
package/build/cjs/index.cjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var assets = require('@quilted/assets');
|
|
3
4
|
var async = require('@quilted/async');
|
|
4
5
|
var events = require('@quilted/events');
|
|
6
|
+
var reactAssets = require('@quilted/react-assets');
|
|
5
7
|
var reactAsync = require('@quilted/react-async');
|
|
6
8
|
var reactGraphql = require('@quilted/react-graphql');
|
|
7
9
|
var reactIdle = require('@quilted/react-idle');
|
|
@@ -16,6 +18,30 @@ var App = require('./App.cjs');
|
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
|
|
21
|
+
Object.defineProperty(exports, 'createBrowserAssetsEntryFromManifest', {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return assets.createBrowserAssetsEntryFromManifest; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, 'createBrowserAssetsFromManifests', {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return assets.createBrowserAssetsFromManifests; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, 'scriptAssetAttributes', {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return assets.scriptAssetAttributes; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, 'scriptAssetPreloadAttributes', {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return assets.scriptAssetPreloadAttributes; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, 'styleAssetAttributes', {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return assets.styleAssetAttributes; }
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, 'styleAssetPreloadAttributes', {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return assets.styleAssetPreloadAttributes; }
|
|
44
|
+
});
|
|
19
45
|
Object.defineProperty(exports, 'createAsyncModule', {
|
|
20
46
|
enumerable: true,
|
|
21
47
|
get: function () { return async.createAsyncModule; }
|
|
@@ -28,6 +54,10 @@ Object.defineProperty(exports, 'NestedAbortController', {
|
|
|
28
54
|
enumerable: true,
|
|
29
55
|
get: function () { return events.NestedAbortController; }
|
|
30
56
|
});
|
|
57
|
+
Object.defineProperty(exports, 'TimedAbortController', {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () { return events.TimedAbortController; }
|
|
60
|
+
});
|
|
31
61
|
Object.defineProperty(exports, 'anyAbortSignal', {
|
|
32
62
|
enumerable: true,
|
|
33
63
|
get: function () { return events.anyAbortSignal; }
|
|
@@ -48,6 +78,14 @@ Object.defineProperty(exports, 'raceAgainstAbortSignal', {
|
|
|
48
78
|
enumerable: true,
|
|
49
79
|
get: function () { return events.raceAgainstAbortSignal; }
|
|
50
80
|
});
|
|
81
|
+
Object.defineProperty(exports, 'sleep', {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function () { return events.sleep; }
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(exports, 'useUpdateCacheKey', {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () { return reactAssets.useUpdateCacheKey; }
|
|
88
|
+
});
|
|
51
89
|
Object.defineProperty(exports, 'createAsyncComponent', {
|
|
52
90
|
enumerable: true,
|
|
53
91
|
get: function () { return reactAsync.createAsyncComponent; }
|
|
@@ -180,10 +218,6 @@ Object.defineProperty(exports, 'useInitialUrl', {
|
|
|
180
218
|
enumerable: true,
|
|
181
219
|
get: function () { return reactRouter.useInitialUrl; }
|
|
182
220
|
});
|
|
183
|
-
Object.defineProperty(exports, 'useMatch', {
|
|
184
|
-
enumerable: true,
|
|
185
|
-
get: function () { return reactRouter.useMatch; }
|
|
186
|
-
});
|
|
187
221
|
Object.defineProperty(exports, 'useNavigate', {
|
|
188
222
|
enumerable: true,
|
|
189
223
|
get: function () { return reactRouter.useNavigate; }
|
|
@@ -200,6 +234,14 @@ Object.defineProperty(exports, 'useRouteChangeFocusRef', {
|
|
|
200
234
|
enumerable: true,
|
|
201
235
|
get: function () { return reactRouter.useRouteChangeFocusRef; }
|
|
202
236
|
});
|
|
237
|
+
Object.defineProperty(exports, 'useRouteMatch', {
|
|
238
|
+
enumerable: true,
|
|
239
|
+
get: function () { return reactRouter.useRouteMatch; }
|
|
240
|
+
});
|
|
241
|
+
Object.defineProperty(exports, 'useRouteMatchDetails', {
|
|
242
|
+
enumerable: true,
|
|
243
|
+
get: function () { return reactRouter.useRouteMatchDetails; }
|
|
244
|
+
});
|
|
203
245
|
Object.defineProperty(exports, 'useRouter', {
|
|
204
246
|
enumerable: true,
|
|
205
247
|
get: function () { return reactRouter.useRouter; }
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var server$3 = require('@quilted/react-assets/server');
|
|
3
4
|
var reactRouter = require('@quilted/react-router');
|
|
4
|
-
var server$
|
|
5
|
-
var server
|
|
6
|
-
var server = require('@quilted/react-http/server');
|
|
5
|
+
var server$2 = require('@quilted/react-html/server');
|
|
6
|
+
var server = require('@quilted/react-async/server');
|
|
7
|
+
var server$1 = require('@quilted/react-http/server');
|
|
7
8
|
var react = require('../utilities/react.cjs');
|
|
8
9
|
|
|
9
10
|
function ServerContext({
|
|
10
11
|
url,
|
|
11
12
|
html,
|
|
12
13
|
http,
|
|
14
|
+
assets,
|
|
13
15
|
asyncAssets,
|
|
14
16
|
children
|
|
15
17
|
}) {
|
|
16
18
|
const normalizedUrl = typeof url === 'string' ? new URL(url) : url;
|
|
17
|
-
return react.maybeWrapContext(server$
|
|
19
|
+
return react.maybeWrapContext(server$3.AssetsContext, assets, react.maybeWrapContext(server.AsyncAssetContext, asyncAssets, react.maybeWrapContext(server$1.HttpServerContext, http, react.maybeWrapContext(server$2.HtmlContext, html, react.maybeWrapContext(reactRouter.InitialUrlContext, normalizedUrl, children)))));
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
exports.ServerContext = ServerContext;
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var server = require('@quilted/react-html/server');
|
|
4
4
|
var server$1 = require('@quilted/react-server-render/server');
|
|
5
|
-
var
|
|
5
|
+
var assets = require('@quilted/assets');
|
|
6
|
+
var server$2 = require('@quilted/react-assets/server');
|
|
6
7
|
var server$3 = require('@quilted/react-async/server');
|
|
7
8
|
var requestRouter = require('@quilted/react-localize/request-router');
|
|
8
9
|
var requestRouter$1 = require('@quilted/request-router');
|
|
9
10
|
var reactLocalize = require('@quilted/react-localize');
|
|
10
11
|
var ServerContext = require('./ServerContext.cjs');
|
|
11
12
|
var requestRouter$2 = require('./request-router.cjs');
|
|
13
|
+
var preload = require('./preload.cjs');
|
|
12
14
|
|
|
13
15
|
|
|
14
16
|
|
|
@@ -56,25 +58,45 @@ Object.defineProperty(exports, 'useServerAction', {
|
|
|
56
58
|
enumerable: true,
|
|
57
59
|
get: function () { return server$1.useServerAction; }
|
|
58
60
|
});
|
|
59
|
-
Object.defineProperty(exports, '
|
|
61
|
+
Object.defineProperty(exports, 'createBrowserAssetsEntryFromManifest', {
|
|
60
62
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
63
|
+
get: function () { return assets.createBrowserAssetsEntryFromManifest; }
|
|
64
|
+
});
|
|
65
|
+
Object.defineProperty(exports, 'createBrowserAssetsFromManifests', {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () { return assets.createBrowserAssetsFromManifests; }
|
|
62
68
|
});
|
|
63
69
|
Object.defineProperty(exports, 'scriptAssetAttributes', {
|
|
64
70
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
71
|
+
get: function () { return assets.scriptAssetAttributes; }
|
|
66
72
|
});
|
|
67
73
|
Object.defineProperty(exports, 'scriptAssetPreloadAttributes', {
|
|
68
74
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
75
|
+
get: function () { return assets.scriptAssetPreloadAttributes; }
|
|
70
76
|
});
|
|
71
77
|
Object.defineProperty(exports, 'styleAssetAttributes', {
|
|
72
78
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
79
|
+
get: function () { return assets.styleAssetAttributes; }
|
|
74
80
|
});
|
|
75
81
|
Object.defineProperty(exports, 'styleAssetPreloadAttributes', {
|
|
76
82
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
83
|
+
get: function () { return assets.styleAssetPreloadAttributes; }
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(exports, 'ASSETS_SERVER_ACTION_ID', {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () { return server$2.SERVER_ACTION_ID; }
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(exports, 'AssetsContext', {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () { return server$2.AssetsContext; }
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, 'AssetsManager', {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () { return server$2.AssetsManager; }
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(exports, 'useUpdateCacheKey', {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function () { return server$2.useUpdateCacheKey; }
|
|
78
100
|
});
|
|
79
101
|
Object.defineProperty(exports, 'ASYNC_ASSETS_SERVER_ACTION_ID', {
|
|
80
102
|
enumerable: true,
|
|
@@ -124,3 +146,4 @@ exports.ServerContext = ServerContext.ServerContext;
|
|
|
124
146
|
exports.createServerRender = requestRouter$2.createServerRender;
|
|
125
147
|
exports.renderAppToResponse = requestRouter$2.renderAppToResponse;
|
|
126
148
|
exports.renderAppToStreamedResponse = requestRouter$2.renderAppToStreamedResponse;
|
|
149
|
+
exports.createAssetPreloader = preload.createAssetPreloader;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var requestRouter = require('@quilted/request-router');
|
|
4
|
+
|
|
5
|
+
function createAssetPreloader(options) {
|
|
6
|
+
return async function handler(request, requestContext) {
|
|
7
|
+
const manifest = await assetsForRequest(request, {
|
|
8
|
+
...options,
|
|
9
|
+
context: requestContext
|
|
10
|
+
});
|
|
11
|
+
return requestRouter.json(manifest);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
async function assetsForRequest(request, {
|
|
15
|
+
assets,
|
|
16
|
+
context,
|
|
17
|
+
cacheKey: getCacheKey
|
|
18
|
+
}) {
|
|
19
|
+
const url = new URL(request.url);
|
|
20
|
+
const modules = url.searchParams.get('modules')?.split(',') ?? [];
|
|
21
|
+
const includeStyles = url.searchParams.get('styles') !== 'false';
|
|
22
|
+
const includeScripts = url.searchParams.get('scripts') !== 'false';
|
|
23
|
+
const cacheKey = (await getCacheKey?.(request, context)) ?? (await assets.cacheKey?.(request));
|
|
24
|
+
const {
|
|
25
|
+
styles,
|
|
26
|
+
scripts
|
|
27
|
+
} = await assets.entry({
|
|
28
|
+
modules,
|
|
29
|
+
cacheKey
|
|
30
|
+
});
|
|
31
|
+
const result = {};
|
|
32
|
+
if (includeStyles) result.styles = styles;
|
|
33
|
+
if (includeScripts) result.scripts = scripts;
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.createAssetPreloader = createAssetPreloader;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var react = require('react');
|
|
4
|
-
var
|
|
5
|
-
var server$
|
|
6
|
-
var server$
|
|
7
|
-
var server$
|
|
4
|
+
var assets = require('@quilted/assets');
|
|
5
|
+
var server$3 = require('@quilted/react-assets/server');
|
|
6
|
+
var server$1 = require('@quilted/react-async/server');
|
|
7
|
+
var server$2 = require('@quilted/react-http/server');
|
|
8
|
+
var server = require('@quilted/react-html/server');
|
|
8
9
|
var server$4 = require('@quilted/react-server-render/server');
|
|
9
10
|
var requestRouter = require('@quilted/request-router');
|
|
10
11
|
var ServerContext = require('./ServerContext.cjs');
|
|
11
12
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
13
|
|
|
13
14
|
function createServerRender(getApp, {
|
|
14
|
-
context,
|
|
15
15
|
stream,
|
|
16
16
|
...options
|
|
17
17
|
} = {}) {
|
|
@@ -19,23 +19,29 @@ function createServerRender(getApp, {
|
|
|
19
19
|
const accepts = request.headers.get('Accept');
|
|
20
20
|
if (accepts != null && !accepts.includes('text/html')) return;
|
|
21
21
|
const renderResponse = stream ? renderAppToStreamedResponse : renderAppToResponse;
|
|
22
|
-
return renderResponse(typeof getApp === 'function' ? () => getApp(request, requestContext) : getApp,
|
|
22
|
+
return renderResponse(typeof getApp === 'function' ? () => getApp(request, requestContext) : getApp, {
|
|
23
23
|
...options,
|
|
24
|
+
request,
|
|
25
|
+
context: requestContext,
|
|
24
26
|
extract: {
|
|
25
27
|
...options.extract,
|
|
26
|
-
context: options.extract
|
|
28
|
+
context: typeof options.extract?.context === 'function' ? options.extract.context(request, requestContext) : options.extract?.context
|
|
27
29
|
}
|
|
28
30
|
});
|
|
29
31
|
};
|
|
30
32
|
}
|
|
31
|
-
async function renderAppToResponse(getApp,
|
|
33
|
+
async function renderAppToResponse(getApp, {
|
|
34
|
+
request,
|
|
35
|
+
context,
|
|
32
36
|
assets,
|
|
33
37
|
extract,
|
|
34
38
|
renderHtml
|
|
35
|
-
}
|
|
39
|
+
}) {
|
|
36
40
|
const app = typeof getApp === 'function' ? await getApp() : getApp;
|
|
41
|
+
const cacheKey = await assets?.cacheKey?.(request);
|
|
37
42
|
const renderDetails = await serverRenderDetailsForApp(app, {
|
|
38
43
|
extract,
|
|
44
|
+
cacheKey,
|
|
39
45
|
url: request.url,
|
|
40
46
|
headers: request.headers
|
|
41
47
|
});
|
|
@@ -50,7 +56,9 @@ async function renderAppToResponse(getApp, request, {
|
|
|
50
56
|
headers
|
|
51
57
|
});
|
|
52
58
|
}
|
|
53
|
-
const content = await renderAppDetailsToHtmlString(renderDetails,
|
|
59
|
+
const content = await renderAppDetailsToHtmlString(renderDetails, {
|
|
60
|
+
request,
|
|
61
|
+
context,
|
|
54
62
|
assets,
|
|
55
63
|
renderHtml
|
|
56
64
|
});
|
|
@@ -59,25 +67,25 @@ async function renderAppToResponse(getApp, request, {
|
|
|
59
67
|
status: statusCode
|
|
60
68
|
});
|
|
61
69
|
}
|
|
62
|
-
async function renderAppToStreamedResponse(getApp,
|
|
63
|
-
|
|
70
|
+
async function renderAppToStreamedResponse(getApp, {
|
|
71
|
+
request,
|
|
72
|
+
context,
|
|
73
|
+
assets: assets$1,
|
|
64
74
|
extract,
|
|
65
75
|
renderHtml
|
|
66
|
-
}
|
|
76
|
+
}) {
|
|
67
77
|
const headers = new Headers();
|
|
68
78
|
const stream = new TransformStream();
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const guaranteedAssets = await assets?.assets({
|
|
73
|
-
context: assetContext
|
|
79
|
+
const cacheKey = await assets$1?.cacheKey?.(request);
|
|
80
|
+
const guaranteedAssets = await assets$1?.entry({
|
|
81
|
+
cacheKey
|
|
74
82
|
});
|
|
75
83
|
if (guaranteedAssets) {
|
|
76
84
|
for (const style of guaranteedAssets.styles) {
|
|
77
|
-
headers.append('Link', preloadHeader(
|
|
85
|
+
headers.append('Link', preloadHeader(assets.styleAssetPreloadAttributes(style)));
|
|
78
86
|
}
|
|
79
87
|
for (const script of guaranteedAssets.scripts) {
|
|
80
|
-
headers.append('Link', preloadHeader(
|
|
88
|
+
headers.append('Link', preloadHeader(assets.scriptAssetPreloadAttributes(script)));
|
|
81
89
|
}
|
|
82
90
|
}
|
|
83
91
|
renderResponseToStream();
|
|
@@ -89,11 +97,14 @@ async function renderAppToStreamedResponse(getApp, request, {
|
|
|
89
97
|
const app = typeof getApp === 'function' ? await getApp() : getApp;
|
|
90
98
|
const renderDetails = await serverRenderDetailsForApp(app, {
|
|
91
99
|
extract,
|
|
100
|
+
cacheKey,
|
|
92
101
|
url: request.url,
|
|
93
102
|
headers: request.headers
|
|
94
103
|
});
|
|
95
|
-
const content = await renderAppDetailsToHtmlString(renderDetails,
|
|
96
|
-
|
|
104
|
+
const content = await renderAppDetailsToHtmlString(renderDetails, {
|
|
105
|
+
request,
|
|
106
|
+
context,
|
|
107
|
+
assets: assets$1,
|
|
97
108
|
renderHtml
|
|
98
109
|
});
|
|
99
110
|
const encoder = new TextEncoder();
|
|
@@ -105,13 +116,17 @@ async function renderAppToStreamedResponse(getApp, request, {
|
|
|
105
116
|
async function serverRenderDetailsForApp(app, {
|
|
106
117
|
url,
|
|
107
118
|
headers,
|
|
119
|
+
cacheKey,
|
|
108
120
|
extract: extractOptions
|
|
109
121
|
} = {}) {
|
|
110
|
-
const html = new server
|
|
111
|
-
const asyncAssets = new server$
|
|
112
|
-
const http = new server$
|
|
122
|
+
const html = new server.HtmlManager();
|
|
123
|
+
const asyncAssets = new server$1.AsyncAssetManager();
|
|
124
|
+
const http = new server$2.HttpManager({
|
|
113
125
|
headers
|
|
114
126
|
});
|
|
127
|
+
const assets = new server$3.AssetsManager({
|
|
128
|
+
cacheKey
|
|
129
|
+
});
|
|
115
130
|
const {
|
|
116
131
|
decorate,
|
|
117
132
|
...rest
|
|
@@ -123,6 +138,7 @@ async function serverRenderDetailsForApp(app, {
|
|
|
123
138
|
http: http,
|
|
124
139
|
html: html,
|
|
125
140
|
url: url,
|
|
141
|
+
assets: assets,
|
|
126
142
|
children: decorate?.(app) ?? app
|
|
127
143
|
});
|
|
128
144
|
},
|
|
@@ -132,66 +148,71 @@ async function serverRenderDetailsForApp(app, {
|
|
|
132
148
|
rendered,
|
|
133
149
|
http,
|
|
134
150
|
html,
|
|
135
|
-
asyncAssets
|
|
151
|
+
asyncAssets,
|
|
152
|
+
assets
|
|
136
153
|
};
|
|
137
154
|
}
|
|
138
|
-
async function renderAppDetailsToHtmlString(details,
|
|
155
|
+
async function renderAppDetailsToHtmlString(details, {
|
|
156
|
+
request,
|
|
157
|
+
context,
|
|
139
158
|
assets,
|
|
140
159
|
renderHtml = defaultRenderHtml
|
|
141
|
-
}
|
|
160
|
+
}) {
|
|
142
161
|
const {
|
|
143
|
-
html: htmlManager,
|
|
144
162
|
http,
|
|
145
163
|
rendered,
|
|
146
|
-
asyncAssets
|
|
164
|
+
asyncAssets,
|
|
165
|
+
html: htmlManager,
|
|
166
|
+
assets: assetsManager
|
|
147
167
|
} = details;
|
|
148
|
-
const
|
|
168
|
+
const usedModules = asyncAssets.used({
|
|
149
169
|
timing: 'load'
|
|
150
170
|
});
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
context: assetContext
|
|
157
|
-
}), assets.asyncAssets(asyncAssets.used({
|
|
171
|
+
const cacheKey = assetsManager.cacheKey;
|
|
172
|
+
const [entryAssets, preloadAssets] = assets ? await Promise.all([assets.entry({
|
|
173
|
+
modules: usedModules,
|
|
174
|
+
cacheKey
|
|
175
|
+
}), assets.modules(asyncAssets.used({
|
|
158
176
|
timing: 'preload'
|
|
159
177
|
}), {
|
|
160
|
-
|
|
178
|
+
cacheKey
|
|
161
179
|
})]) : [];
|
|
162
|
-
const htmlElement = await renderHtml(rendered,
|
|
180
|
+
const htmlElement = await renderHtml(rendered, {
|
|
181
|
+
request,
|
|
182
|
+
context,
|
|
163
183
|
html: htmlManager,
|
|
164
184
|
http,
|
|
165
185
|
assets: entryAssets,
|
|
166
186
|
preloadAssets
|
|
167
187
|
});
|
|
168
|
-
return server
|
|
188
|
+
return server.renderHtmlToString(htmlElement);
|
|
169
189
|
}
|
|
170
|
-
const defaultRenderHtml = function defaultRenderHtml(content,
|
|
190
|
+
const defaultRenderHtml = function defaultRenderHtml(content, {
|
|
191
|
+
request,
|
|
171
192
|
html,
|
|
172
|
-
assets,
|
|
193
|
+
assets: assets$1,
|
|
173
194
|
preloadAssets
|
|
174
195
|
}) {
|
|
175
196
|
const baseUrl = new URL(request.url);
|
|
176
|
-
return /*#__PURE__*/jsxRuntime.jsx(server
|
|
197
|
+
return /*#__PURE__*/jsxRuntime.jsx(server.Html, {
|
|
177
198
|
manager: html,
|
|
178
199
|
headEndContent: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
179
|
-
children: [assets &&
|
|
180
|
-
const attributes =
|
|
200
|
+
children: [assets$1 && assets$1.styles.map(style => {
|
|
201
|
+
const attributes = assets.styleAssetAttributes(style, {
|
|
181
202
|
baseUrl
|
|
182
203
|
});
|
|
183
204
|
return /*#__PURE__*/jsxRuntime.jsx("link", {
|
|
184
205
|
...attributes
|
|
185
206
|
}, style.source);
|
|
186
|
-
}), assets &&
|
|
187
|
-
const isModule = script.attributes
|
|
188
|
-
const attributes =
|
|
207
|
+
}), assets$1 && assets$1.scripts.map(script => {
|
|
208
|
+
const isModule = script.attributes?.type === 'module';
|
|
209
|
+
const attributes = assets.scriptAssetAttributes(script, {
|
|
189
210
|
baseUrl
|
|
190
211
|
});
|
|
191
212
|
if (isModule) {
|
|
192
213
|
return /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
|
|
193
214
|
children: [/*#__PURE__*/jsxRuntime.jsx("link", {
|
|
194
|
-
...
|
|
215
|
+
...assets.scriptAssetPreloadAttributes(script)
|
|
195
216
|
}), /*#__PURE__*/jsxRuntime.jsx("script", {
|
|
196
217
|
...attributes,
|
|
197
218
|
async: true
|
|
@@ -202,15 +223,15 @@ const defaultRenderHtml = function defaultRenderHtml(content, request, {
|
|
|
202
223
|
...attributes,
|
|
203
224
|
defer: true
|
|
204
225
|
}, script.source);
|
|
205
|
-
}), preloadAssets &&
|
|
206
|
-
const attributes =
|
|
226
|
+
}), preloadAssets && preloadAssets.styles.map(style => {
|
|
227
|
+
const attributes = assets.styleAssetPreloadAttributes(style, {
|
|
207
228
|
baseUrl
|
|
208
229
|
});
|
|
209
230
|
return /*#__PURE__*/jsxRuntime.jsx("link", {
|
|
210
231
|
...attributes
|
|
211
232
|
}, style.source);
|
|
212
|
-
}), preloadAssets &&
|
|
213
|
-
const attributes =
|
|
233
|
+
}), preloadAssets && preloadAssets.scripts.map(script => {
|
|
234
|
+
const attributes = assets.scriptAssetPreloadAttributes(script, {
|
|
214
235
|
baseUrl
|
|
215
236
|
});
|
|
216
237
|
return /*#__PURE__*/jsxRuntime.jsx("link", {
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var server$3 = require('@quilted/react-assets/server');
|
|
3
4
|
var reactRouter = require('@quilted/react-router');
|
|
4
|
-
var server$
|
|
5
|
-
var server
|
|
6
|
-
var server = require('@quilted/react-http/server');
|
|
5
|
+
var server$2 = require('@quilted/react-html/server');
|
|
6
|
+
var server = require('@quilted/react-async/server');
|
|
7
|
+
var server$1 = require('@quilted/react-http/server');
|
|
7
8
|
var react = require('../utilities/react.cjs');
|
|
8
9
|
|
|
9
10
|
function StaticContext({
|
|
10
11
|
url,
|
|
11
12
|
html,
|
|
12
13
|
http,
|
|
14
|
+
assets,
|
|
13
15
|
asyncAssets,
|
|
14
16
|
children
|
|
15
17
|
}) {
|
|
16
18
|
const normalizedUrl = typeof url === 'string' ? new URL(url) : url;
|
|
17
|
-
return react.maybeWrapContext(server$
|
|
19
|
+
return react.maybeWrapContext(server$3.AssetsContext, assets, react.maybeWrapContext(server.AsyncAssetContext, asyncAssets, react.maybeWrapContext(server$1.HttpServerContext, http, react.maybeWrapContext(server$2.HtmlContext, html, react.maybeWrapContext(reactRouter.InitialUrlContext, normalizedUrl, children)))));
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
exports.StaticContext = StaticContext;
|