@quilted/quilt 0.8.4 → 0.8.6
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 +21 -0
- package/build/esm/server/ServerContext.mjs +7 -2
- package/build/esm/server/request-router.mjs +23 -29
- package/build/esm/server.browser.mjs +4 -1
- package/build/esm/server.mjs +2 -1
- package/build/esnext/server/ServerContext.esnext +8 -3
- package/build/esnext/server/request-router.esnext +27 -34
- package/build/esnext/server.browser.esnext +4 -1
- package/build/esnext/server.esnext +2 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/typescript/assets.d.ts +0 -5
- package/build/typescript/assets.d.ts.map +1 -1
- package/build/typescript/modules.d.ts +2 -2
- package/build/typescript/modules.d.ts.map +1 -1
- package/build/typescript/server/ServerContext.d.ts +3 -1
- package/build/typescript/server/ServerContext.d.ts.map +1 -1
- package/build/typescript/server/request-router.d.ts +2 -6
- package/build/typescript/server/request-router.d.ts.map +1 -1
- package/build/typescript/server.browser.d.ts +2 -0
- package/build/typescript/server.browser.d.ts.map +1 -1
- package/build/typescript/server.d.ts +2 -1
- package/build/typescript/server.d.ts.map +1 -1
- package/package.json +5 -5
- package/source/assets.ts +0 -6
- package/source/modules.ts +2 -5
- package/source/server/ServerContext.tsx +18 -2
- package/source/server/request-router.tsx +31 -44
- package/source/server.browser.ts +5 -0
- package/source/server.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../source/assets.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../source/assets.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -15,9 +15,9 @@ declare module 'quilt:module/request-router' {
|
|
|
15
15
|
export default router;
|
|
16
16
|
}
|
|
17
17
|
declare module 'quilt:module/assets' {
|
|
18
|
-
import type {
|
|
18
|
+
import type { BrowserAssets as BrowserAssetsType } from '@quilted/assets';
|
|
19
19
|
const BrowserAssets: {
|
|
20
|
-
new
|
|
20
|
+
new (): BrowserAssetsType;
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=modules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../source/modules.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kBAAkB,CAAC;IAChC,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;IAE7D,YAAY,EAAC,oBAAoB,EAAC,CAAC;IAEnC,MAAM,GAAG,EAAE,oBAAoB,CAAC;IAChC,eAAe,GAAG,CAAC;CACpB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;IAE1C,MAAM,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,eAAe,GAAG,CAAC;CACpB;AAED,OAAO,QAAQ,6BAA6B,CAAC;IAC3C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;IAE3D,MAAM,MAAM,EAAE,aAAa,CAAC;IAC5B,eAAe,MAAM,CAAC;CACvB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../source/modules.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kBAAkB,CAAC;IAChC,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;IAE7D,YAAY,EAAC,oBAAoB,EAAC,CAAC;IAEnC,MAAM,GAAG,EAAE,oBAAoB,CAAC;IAChC,eAAe,GAAG,CAAC;CACpB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;IAE1C,MAAM,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,eAAe,GAAG,CAAC;CACpB;AAED,OAAO,QAAQ,6BAA6B,CAAC;IAC3C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;IAE3D,MAAM,MAAM,EAAE,aAAa,CAAC;IAC5B,eAAe,MAAM,CAAC;CACvB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,OAAO,KAAK,EAAC,aAAa,IAAI,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;IAEjE,MAAM,aAAa,EAAE;QAC1B,QAAQ,iBAAiB,CAAC;KAC3B,CAAC;CACH"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { RenderableProps, VNode } from 'preact';
|
|
2
2
|
import { type BrowserDetails } from '@quilted/preact-browser/server';
|
|
3
|
+
import { type BrowserAssets } from '@quilted/assets';
|
|
3
4
|
interface Props {
|
|
4
5
|
browser?: BrowserDetails;
|
|
6
|
+
assets?: BrowserAssets;
|
|
5
7
|
}
|
|
6
|
-
export declare function ServerContext({ browser, children }: RenderableProps<Props>): VNode<{}>;
|
|
8
|
+
export declare function ServerContext({ browser, assets, children, }: RenderableProps<Props>): VNode<{}>;
|
|
7
9
|
export {};
|
|
8
10
|
//# sourceMappingURL=ServerContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerContext.d.ts","sourceRoot":"","sources":["../../../source/server/ServerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAC;AAEnD,OAAO,
|
|
1
|
+
{"version":3,"file":"ServerContext.d.ts","sourceRoot":"","sources":["../../../source/server/ServerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,QAAQ,GACT,EAAE,eAAe,CAAC,KAAK,CAAC,GAiBF,KAAK,CAAC,EAAE,CAAC,CAC/B"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { type VNode } from 'preact';
|
|
2
|
-
import { type
|
|
3
|
-
import {
|
|
2
|
+
import { type BrowserAssets } from '@quilted/assets';
|
|
3
|
+
import { BrowserResponse } from '@quilted/preact-browser/server';
|
|
4
4
|
import { EnhancedResponse } from '@quilted/request-router';
|
|
5
|
-
export declare function renderToStringWithServerContext(element: VNode<any>, { browser }?: {
|
|
6
|
-
browser?: BrowserDetails;
|
|
7
|
-
}): Promise<string>;
|
|
8
5
|
export interface RenderHTMLFunction {
|
|
9
6
|
(content: ReadableStream<string>, context: {
|
|
10
7
|
readonly response: BrowserResponse;
|
|
@@ -16,7 +13,6 @@ export interface RenderToResponseOptions {
|
|
|
16
13
|
readonly stream?: 'headers' | false;
|
|
17
14
|
readonly headers?: HeadersInit;
|
|
18
15
|
readonly assets?: BrowserAssets;
|
|
19
|
-
readonly cacheKey?: Partial<AssetsCacheKey>;
|
|
20
16
|
readonly serializations?: Iterable<[string, unknown]>;
|
|
21
17
|
readonly renderHTML?: boolean | 'fragment' | 'document' | RenderHTMLFunction;
|
|
22
18
|
waitUntil?(promise: Promise<any>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-router.d.ts","sourceRoot":"","sources":["../../../source/server/request-router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,KAAK,EAAW,MAAM,QAAQ,CAAC;AAM5D,OAAO,EAGL,KAAK,
|
|
1
|
+
{"version":3,"file":"request-router.d.ts","sourceRoot":"","sources":["../../../source/server/request-router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,KAAK,EAAW,MAAM,QAAQ,CAAC;AAM5D,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAKhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAe,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAIvE,MAAM,WAAW,kBAAkB;IACjC,CACE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAC/B,OAAO,EAAE;QACP,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;KACpC,GACA,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,kBAAkB,CAAC;IAC7E,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EACnB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC7B,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -7,4 +7,6 @@ declare function noopCreateRequestRouterLocalization(): void;
|
|
|
7
7
|
export { noopCreateRequestRouterLocalization as createRequestRouterLocalization };
|
|
8
8
|
declare function noopRenderToResponse(): void;
|
|
9
9
|
export { noopRenderToResponse as renderToResponse };
|
|
10
|
+
declare function NoopServerContext(): null;
|
|
11
|
+
export { NoopServerContext as ServerContext };
|
|
10
12
|
//# sourceMappingURL=server.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.browser.d.ts","sourceRoot":"","sources":["../../source/server.browser.ts"],"names":[],"mappings":"AAAA,iBAAS,kBAAkB,SAAK;AAEhC,OAAO,EACL,kBAAkB,IAAI,cAAc,EACpC,kBAAkB,IAAI,mBAAmB,EACzC,kBAAkB,IAAI,oBAAoB,GAC3C,CAAC;AACF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAEnE,iBAAS,mCAAmC,SAAK;AACjD,OAAO,EAAC,mCAAmC,IAAI,+BAA+B,EAAC,CAAC;AAEhF,iBAAS,oBAAoB,SAAK;AAClC,OAAO,EAAC,oBAAoB,IAAI,gBAAgB,EAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.browser.d.ts","sourceRoot":"","sources":["../../source/server.browser.ts"],"names":[],"mappings":"AAAA,iBAAS,kBAAkB,SAAK;AAEhC,OAAO,EACL,kBAAkB,IAAI,cAAc,EACpC,kBAAkB,IAAI,mBAAmB,EACzC,kBAAkB,IAAI,oBAAoB,GAC3C,CAAC;AACF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAEnE,iBAAS,mCAAmC,SAAK;AACjD,OAAO,EAAC,mCAAmC,IAAI,+BAA+B,EAAC,CAAC;AAEhF,iBAAS,oBAAoB,SAAK;AAClC,OAAO,EAAC,oBAAoB,IAAI,gBAAgB,EAAC,CAAC;AAElD,iBAAS,iBAAiB,SAEzB;AACD,OAAO,EAAC,iBAAiB,IAAI,aAAa,EAAC,CAAC"}
|
|
@@ -3,5 +3,6 @@ export * from '@quilted/preact-browser/server';
|
|
|
3
3
|
export * from '@quilted/assets';
|
|
4
4
|
export { parseAcceptLanguageHeader } from '@quilted/preact-localize';
|
|
5
5
|
export { createRequestRouterLocalization } from '@quilted/preact-localize/request-router';
|
|
6
|
-
export { renderToResponse,
|
|
6
|
+
export { renderToResponse, type RenderToResponseOptions, type RenderHTMLFunction, } from './server/request-router.tsx';
|
|
7
|
+
export { ServerContext } from './server/ServerContext.tsx';
|
|
7
8
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../source/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AAExF,OAAO,EACL,gBAAgB,EAChB
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../source/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AAExF,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quilted/quilt",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.6",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/lemonmade/quilt.git",
|
|
@@ -241,12 +241,12 @@
|
|
|
241
241
|
"./build/esm/signals.mjs"
|
|
242
242
|
],
|
|
243
243
|
"dependencies": {
|
|
244
|
-
"@quilted/assets": "^0.1.
|
|
245
|
-
"@quilted/async": "^0.4.
|
|
244
|
+
"@quilted/assets": "^0.1.5",
|
|
245
|
+
"@quilted/async": "^0.4.22",
|
|
246
246
|
"@quilted/events": "^2.1.1",
|
|
247
|
-
"@quilted/graphql": "^3.3.
|
|
247
|
+
"@quilted/graphql": "^3.3.8",
|
|
248
248
|
"@quilted/preact-async": "^0.1.2",
|
|
249
|
-
"@quilted/preact-browser": "^0.1.
|
|
249
|
+
"@quilted/preact-browser": "^0.1.10",
|
|
250
250
|
"@quilted/preact-context": "^0.1.2",
|
|
251
251
|
"@quilted/preact-graphql": "^0.1.0",
|
|
252
252
|
"@quilted/preact-localize": "^0.3.0",
|
package/source/assets.ts
CHANGED
package/source/modules.ts
CHANGED
|
@@ -22,12 +22,9 @@ declare module 'quilt:module/request-router' {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
declare module 'quilt:module/assets' {
|
|
25
|
-
import type {
|
|
26
|
-
AssetsCacheKey,
|
|
27
|
-
BrowserAssets as BrowserAssetsType,
|
|
28
|
-
} from '@quilted/assets';
|
|
25
|
+
import type {BrowserAssets as BrowserAssetsType} from '@quilted/assets';
|
|
29
26
|
|
|
30
27
|
export const BrowserAssets: {
|
|
31
|
-
new
|
|
28
|
+
new (): BrowserAssetsType;
|
|
32
29
|
};
|
|
33
30
|
}
|
|
@@ -2,14 +2,22 @@ import type {RenderableProps, VNode} from 'preact';
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
BrowserDetailsContext,
|
|
5
|
+
BrowserAssetsManifestContext,
|
|
5
6
|
type BrowserDetails,
|
|
6
7
|
} from '@quilted/preact-browser/server';
|
|
7
8
|
|
|
9
|
+
import {type BrowserAssets} from '@quilted/assets';
|
|
10
|
+
|
|
8
11
|
interface Props {
|
|
9
12
|
browser?: BrowserDetails;
|
|
13
|
+
assets?: BrowserAssets;
|
|
10
14
|
}
|
|
11
15
|
|
|
12
|
-
export function ServerContext({
|
|
16
|
+
export function ServerContext({
|
|
17
|
+
browser,
|
|
18
|
+
assets,
|
|
19
|
+
children,
|
|
20
|
+
}: RenderableProps<Props>) {
|
|
13
21
|
const withBrowser = browser ? (
|
|
14
22
|
<BrowserDetailsContext.Provider value={browser}>
|
|
15
23
|
{children}
|
|
@@ -18,5 +26,13 @@ export function ServerContext({browser, children}: RenderableProps<Props>) {
|
|
|
18
26
|
children
|
|
19
27
|
);
|
|
20
28
|
|
|
21
|
-
|
|
29
|
+
const withAssets = assets ? (
|
|
30
|
+
<BrowserAssetsManifestContext.Provider value={assets}>
|
|
31
|
+
{withBrowser}
|
|
32
|
+
</BrowserAssetsManifestContext.Provider>
|
|
33
|
+
) : (
|
|
34
|
+
withBrowser
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
return withAssets as VNode<{}>;
|
|
22
38
|
}
|
|
@@ -7,12 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
styleAssetPreloadAttributes,
|
|
9
9
|
scriptAssetPreloadAttributes,
|
|
10
|
-
type AssetsCacheKey,
|
|
11
10
|
type BrowserAssets,
|
|
12
11
|
type BrowserAssetsEntry,
|
|
13
12
|
} from '@quilted/assets';
|
|
14
13
|
import {
|
|
15
|
-
BrowserDetails,
|
|
16
14
|
BrowserResponse,
|
|
17
15
|
ScriptAsset,
|
|
18
16
|
ScriptAssetPreload,
|
|
@@ -24,17 +22,6 @@ import {HTMLResponse, EnhancedResponse} from '@quilted/request-router';
|
|
|
24
22
|
|
|
25
23
|
import {ServerContext} from './ServerContext.tsx';
|
|
26
24
|
|
|
27
|
-
export async function renderToStringWithServerContext(
|
|
28
|
-
element: VNode<any>,
|
|
29
|
-
{browser}: {browser?: BrowserDetails} = {},
|
|
30
|
-
) {
|
|
31
|
-
const rendered = await renderToStringAsync(
|
|
32
|
-
<ServerContext browser={browser}>{element}</ServerContext>,
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
return rendered;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
25
|
export interface RenderHTMLFunction {
|
|
39
26
|
(
|
|
40
27
|
content: ReadableStream<string>,
|
|
@@ -50,7 +37,6 @@ export interface RenderToResponseOptions {
|
|
|
50
37
|
readonly stream?: 'headers' | false;
|
|
51
38
|
readonly headers?: HeadersInit;
|
|
52
39
|
readonly assets?: BrowserAssets;
|
|
53
|
-
readonly cacheKey?: Partial<AssetsCacheKey>;
|
|
54
40
|
readonly serializations?: Iterable<[string, unknown]>;
|
|
55
41
|
readonly renderHTML?: boolean | 'fragment' | 'document' | RenderHTMLFunction;
|
|
56
42
|
waitUntil?(promise: Promise<any>): void;
|
|
@@ -81,7 +67,6 @@ export async function renderToResponse(
|
|
|
81
67
|
request,
|
|
82
68
|
assets,
|
|
83
69
|
status: explicitStatus,
|
|
84
|
-
cacheKey: explicitCacheKey,
|
|
85
70
|
headers: explicitHeaders,
|
|
86
71
|
serializations: explicitSerializations,
|
|
87
72
|
waitUntil = noop,
|
|
@@ -91,13 +76,8 @@ export async function renderToResponse(
|
|
|
91
76
|
|
|
92
77
|
const baseURL = (request as any).URL ?? new URL(request.url);
|
|
93
78
|
|
|
94
|
-
const cacheKey =
|
|
95
|
-
explicitCacheKey ??
|
|
96
|
-
(((await assets?.cacheKey?.(request)) ?? {}) as AssetsCacheKey);
|
|
97
|
-
|
|
98
79
|
const browserResponse = new BrowserResponse({
|
|
99
80
|
request,
|
|
100
|
-
cacheKey,
|
|
101
81
|
status: explicitStatus,
|
|
102
82
|
headers: new Headers(explicitHeaders),
|
|
103
83
|
serializations: explicitSerializations,
|
|
@@ -109,9 +89,11 @@ export async function renderToResponse(
|
|
|
109
89
|
let rendered: string;
|
|
110
90
|
|
|
111
91
|
try {
|
|
112
|
-
rendered = await
|
|
113
|
-
browser
|
|
114
|
-
|
|
92
|
+
rendered = await renderToStringAsync(
|
|
93
|
+
<ServerContext assets={assets} browser={browserResponse}>
|
|
94
|
+
{element}
|
|
95
|
+
</ServerContext>,
|
|
96
|
+
);
|
|
115
97
|
} catch (error) {
|
|
116
98
|
if (error instanceof Response) {
|
|
117
99
|
const mergedHeaders = new Headers(browserResponse.headers);
|
|
@@ -157,9 +139,11 @@ export async function renderToResponse(
|
|
|
157
139
|
// this, they will explicitly turn on streaming and will have to use some in-app
|
|
158
140
|
// to manually handle redirects (e.g., by rendering a script tag that uses JavaScript
|
|
159
141
|
// to redirect)
|
|
160
|
-
const rendered = await
|
|
161
|
-
browser
|
|
162
|
-
|
|
142
|
+
const rendered = await renderToStringAsync(
|
|
143
|
+
<ServerContext assets={assets} browser={browserResponse}>
|
|
144
|
+
{element}
|
|
145
|
+
</ServerContext>,
|
|
146
|
+
);
|
|
163
147
|
|
|
164
148
|
appWriter.write(rendered);
|
|
165
149
|
}
|
|
@@ -198,15 +182,16 @@ export async function renderToResponse(
|
|
|
198
182
|
|
|
199
183
|
writer.write(`<!DOCTYPE html>`);
|
|
200
184
|
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
185
|
+
const synchronousAssets = assets?.entry({
|
|
186
|
+
request,
|
|
187
|
+
modules: browserResponse.assets.get({timing: 'load'}),
|
|
188
|
+
});
|
|
189
|
+
const preloadAssets = assets?.modules(
|
|
190
|
+
browserResponse.assets.get({timing: 'preload'}),
|
|
191
|
+
{
|
|
192
|
+
request,
|
|
193
|
+
},
|
|
194
|
+
);
|
|
210
195
|
|
|
211
196
|
if (synchronousAssets) {
|
|
212
197
|
for (const style of synchronousAssets.styles) {
|
|
@@ -294,15 +279,17 @@ export async function renderToResponse(
|
|
|
294
279
|
|
|
295
280
|
if (element != null) writer.write(`</div>`);
|
|
296
281
|
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
282
|
+
const newSynchronousAssets = assets?.entry({
|
|
283
|
+
request,
|
|
284
|
+
modules: browserResponse.assets.get({timing: 'load'}),
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
const newPreloadAssets = assets?.modules(
|
|
288
|
+
browserResponse.assets.get({timing: 'preload'}),
|
|
289
|
+
{
|
|
290
|
+
request,
|
|
291
|
+
},
|
|
292
|
+
);
|
|
306
293
|
|
|
307
294
|
if (newSynchronousAssets) {
|
|
308
295
|
const diffedSynchronousAssets = diffBrowserAssetsEntries(
|
package/source/server.browser.ts
CHANGED
|
@@ -15,3 +15,8 @@ export {noopCreateRequestRouterLocalization as createRequestRouterLocalization};
|
|
|
15
15
|
|
|
16
16
|
function noopRenderToResponse() {}
|
|
17
17
|
export {noopRenderToResponse as renderToResponse};
|
|
18
|
+
|
|
19
|
+
function NoopServerContext() {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
export {NoopServerContext as ServerContext};
|
package/source/server.ts
CHANGED
|
@@ -11,7 +11,7 @@ export {createRequestRouterLocalization} from '@quilted/preact-localize/request-
|
|
|
11
11
|
|
|
12
12
|
export {
|
|
13
13
|
renderToResponse,
|
|
14
|
-
renderToStringWithServerContext,
|
|
15
14
|
type RenderToResponseOptions,
|
|
16
15
|
type RenderHTMLFunction,
|
|
17
16
|
} from './server/request-router.tsx';
|
|
17
|
+
export {ServerContext} from './server/ServerContext.tsx';
|