@bleedingdev/modern-js-runtime-extensions 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21
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/dist/cjs/buildIdentity.js +73 -0
- package/dist/cjs/contextExtensions.js +74 -0
- package/dist/cjs/headRuntime.js +91 -0
- package/dist/cjs/helmetContext.js +54 -0
- package/dist/cjs/index.js +18 -4
- package/dist/cjs/localisedLoaderIdentity.js +51 -0
- package/dist/cjs/localisedUrls/config.js +49 -0
- package/dist/cjs/localisedUrls/index.js +95 -0
- package/dist/cjs/localisedUrls/normalise.js +87 -0
- package/dist/cjs/localisedUrls/pathname.js +68 -0
- package/dist/cjs/localisedUrls/patterns.js +214 -0
- package/dist/cjs/localisedUrls/redirect.js +100 -0
- package/dist/cjs/localisedUrls/resolve.js +78 -0
- package/dist/cjs/localisedUrls/routeIdentity.js +92 -0
- package/dist/cjs/localisedUrls/routes.js +217 -0
- package/dist/cjs/localisedUrls/types.js +18 -0
- package/dist/cjs/prefetchPolicy.js +52 -0
- package/dist/cjs/rendererHead.js +18 -5
- package/dist/cjs/request-policy/browser.js +139 -0
- package/dist/cjs/request-policy/client.js +234 -0
- package/dist/cjs/request-policy/node.js +149 -0
- package/dist/cjs/request-policy/policyCore.js +266 -0
- package/dist/cjs/request-policy/requestContext.js +137 -0
- package/dist/cjs/request-policy/traceparent.js +56 -0
- package/dist/cjs/request-policy/transport.js +234 -0
- package/dist/cjs/request-policy/types.js +57 -0
- package/dist/cjs/routeHydration.js +127 -0
- package/dist/cjs/routerPrefetchPolicy.js +153 -0
- package/dist/cjs/routerProvider.js +105 -0
- package/dist/cjs/routerState.js +175 -0
- package/dist/cjs/routerStatePlugin.js +113 -0
- package/dist/cjs/routerStateTypes.js +18 -0
- package/dist/cjs/rsc-disabled/rscDisabledClientBrowserRuntime.js +69 -0
- package/dist/cjs/rsc-disabled/rscDisabledClientEdgeRuntime.js +61 -0
- package/dist/cjs/rsc-disabled/rscDisabledClientNodeRuntime.js +65 -0
- package/dist/cjs/rsc-disabled/rscDisabledRuntimeError.js +42 -0
- package/dist/cjs/rsc-disabled/rscDisabledServerEdgeRuntime.js +93 -0
- package/dist/cjs/rsc-disabled/rscDisabledServerNodeRuntime.js +101 -0
- package/dist/cjs/runtimeContextProjection.js +112 -0
- package/dist/cjs/server-config/bffRuntime.js +18 -0
- package/dist/cjs/server-config/index.js +18 -0
- package/dist/cjs/server-config/serverTelemetry.js +18 -0
- package/dist/cjs/shellStream.js +34 -2
- package/dist/cjs/workspaceEvents.js +159 -0
- package/dist/esm/buildIdentity.mjs +35 -0
- package/dist/esm/contextExtensions.mjs +33 -0
- package/dist/esm/headRuntime.mjs +43 -0
- package/dist/esm/helmetContext.mjs +13 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/localisedLoaderIdentity.mjs +13 -0
- package/dist/esm/localisedUrls/config.mjs +11 -0
- package/dist/esm/localisedUrls/index.mjs +8 -0
- package/dist/esm/localisedUrls/normalise.mjs +37 -0
- package/dist/esm/localisedUrls/pathname.mjs +24 -0
- package/dist/esm/localisedUrls/patterns.mjs +152 -0
- package/dist/esm/localisedUrls/redirect.mjs +53 -0
- package/dist/esm/localisedUrls/resolve.mjs +37 -0
- package/dist/esm/localisedUrls/routeIdentity.mjs +54 -0
- package/dist/esm/localisedUrls/routes.mjs +176 -0
- package/dist/esm/localisedUrls/types.mjs +0 -0
- package/dist/esm/prefetchPolicy.mjs +11 -0
- package/dist/esm/rendererHead.mjs +14 -5
- package/dist/esm/request-policy/browser.mjs +11 -0
- package/dist/esm/request-policy/client.mjs +195 -0
- package/dist/esm/request-policy/policyCore.mjs +171 -0
- package/dist/esm/request-policy/requestContext.mjs +75 -0
- package/dist/esm/request-policy/traceparent.mjs +18 -0
- package/dist/esm/request-policy/transport.mjs +196 -0
- package/dist/esm/request-policy/types.mjs +10 -0
- package/dist/esm/routeHydration.mjs +77 -0
- package/dist/esm/routerPrefetchPolicy.mjs +115 -0
- package/dist/esm/routerProvider.mjs +58 -0
- package/dist/esm/routerState.mjs +113 -0
- package/dist/esm/routerStatePlugin.mjs +75 -0
- package/dist/esm/routerStateTypes.mjs +0 -0
- package/dist/esm/rsc-disabled/rscDisabledClientBrowserRuntime.mjs +10 -0
- package/dist/esm/rsc-disabled/rscDisabledClientEdgeRuntime.mjs +8 -0
- package/dist/esm/rsc-disabled/rscDisabledClientNodeRuntime.mjs +9 -0
- package/dist/esm/rsc-disabled/rscDisabledRuntimeError.mjs +4 -0
- package/dist/esm/rsc-disabled/rscDisabledServerEdgeRuntime.mjs +16 -0
- package/dist/esm/rsc-disabled/rscDisabledServerNodeRuntime.mjs +18 -0
- package/dist/esm/runtimeContextProjection.mjs +74 -0
- package/dist/esm/server-config/bffRuntime.mjs +0 -0
- package/dist/esm/server-config/index.mjs +0 -0
- package/dist/esm/server-config/serverTelemetry.mjs +0 -0
- package/dist/esm/shellStream.mjs +34 -2
- package/dist/esm/workspaceEvents.mjs +66 -0
- package/dist/esm-node/buildIdentity.mjs +36 -0
- package/dist/esm-node/contextExtensions.mjs +34 -0
- package/dist/esm-node/headRuntime.mjs +44 -0
- package/dist/esm-node/helmetContext.mjs +14 -0
- package/dist/esm-node/index.mjs +2 -0
- package/dist/esm-node/localisedLoaderIdentity.mjs +14 -0
- package/dist/esm-node/localisedUrls/config.mjs +12 -0
- package/dist/esm-node/localisedUrls/index.mjs +9 -0
- package/dist/esm-node/localisedUrls/normalise.mjs +38 -0
- package/dist/esm-node/localisedUrls/pathname.mjs +25 -0
- package/dist/esm-node/localisedUrls/patterns.mjs +153 -0
- package/dist/esm-node/localisedUrls/redirect.mjs +54 -0
- package/dist/esm-node/localisedUrls/resolve.mjs +38 -0
- package/dist/esm-node/localisedUrls/routeIdentity.mjs +55 -0
- package/dist/esm-node/localisedUrls/routes.mjs +177 -0
- package/dist/esm-node/localisedUrls/types.mjs +1 -0
- package/dist/esm-node/prefetchPolicy.mjs +12 -0
- package/dist/esm-node/rendererHead.mjs +14 -5
- package/dist/esm-node/request-policy/browser.mjs +12 -0
- package/dist/esm-node/request-policy/client.mjs +196 -0
- package/dist/esm-node/request-policy/node.mjs +22 -0
- package/dist/esm-node/request-policy/policyCore.mjs +172 -0
- package/dist/esm-node/request-policy/requestContext.mjs +76 -0
- package/dist/esm-node/request-policy/traceparent.mjs +19 -0
- package/dist/esm-node/request-policy/transport.mjs +197 -0
- package/dist/esm-node/request-policy/types.mjs +11 -0
- package/dist/esm-node/routeHydration.mjs +78 -0
- package/dist/esm-node/routerPrefetchPolicy.mjs +116 -0
- package/dist/esm-node/routerProvider.mjs +59 -0
- package/dist/esm-node/routerState.mjs +114 -0
- package/dist/esm-node/routerStatePlugin.mjs +76 -0
- package/dist/esm-node/routerStateTypes.mjs +1 -0
- package/dist/esm-node/rsc-disabled/rscDisabledClientBrowserRuntime.mjs +11 -0
- package/dist/esm-node/rsc-disabled/rscDisabledClientEdgeRuntime.mjs +9 -0
- package/dist/esm-node/rsc-disabled/rscDisabledClientNodeRuntime.mjs +10 -0
- package/dist/esm-node/rsc-disabled/rscDisabledRuntimeError.mjs +5 -0
- package/dist/esm-node/rsc-disabled/rscDisabledServerEdgeRuntime.mjs +17 -0
- package/dist/esm-node/rsc-disabled/rscDisabledServerNodeRuntime.mjs +19 -0
- package/dist/esm-node/runtimeContextProjection.mjs +75 -0
- package/dist/esm-node/server-config/bffRuntime.mjs +1 -0
- package/dist/esm-node/server-config/index.mjs +1 -0
- package/dist/esm-node/server-config/serverTelemetry.mjs +1 -0
- package/dist/esm-node/shellStream.mjs +34 -2
- package/dist/esm-node/workspaceEvents.mjs +67 -0
- package/dist/types/buildIdentity.d.ts +37 -0
- package/dist/types/contextExtensions.d.ts +34 -0
- package/dist/types/headRuntime.d.ts +12 -0
- package/dist/types/helmetCompat.d.ts +1 -1
- package/dist/types/helmetContext.d.ts +10 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/localisedLoaderIdentity.d.ts +10 -0
- package/dist/types/localisedUrls/config.d.ts +9 -0
- package/dist/types/localisedUrls/index.d.ts +10 -0
- package/dist/types/localisedUrls/normalise.d.ts +10 -0
- package/dist/types/localisedUrls/pathname.d.ts +4 -0
- package/dist/types/localisedUrls/patterns.d.ts +11 -0
- package/dist/types/localisedUrls/redirect.d.ts +19 -0
- package/dist/types/localisedUrls/resolve.d.ts +7 -0
- package/dist/types/localisedUrls/routeIdentity.d.ts +22 -0
- package/dist/types/localisedUrls/routes.d.ts +3 -0
- package/dist/types/localisedUrls/types.d.ts +14 -0
- package/dist/types/prefetchPolicy.d.ts +4 -0
- package/dist/types/rendererHead.d.ts +5 -3
- package/dist/types/request-policy/browser.d.ts +10 -0
- package/dist/types/request-policy/client.d.ts +14 -0
- package/dist/types/request-policy/node.d.ts +10 -0
- package/dist/types/request-policy/policyCore.d.ts +107 -0
- package/dist/types/request-policy/requestContext.d.ts +22 -0
- package/dist/types/request-policy/traceparent.d.ts +10 -0
- package/dist/types/request-policy/transport.d.ts +12 -0
- package/dist/types/request-policy/types.d.ts +144 -0
- package/dist/types/routeHydration.d.ts +24 -0
- package/dist/types/routerPrefetchPolicy.d.ts +28 -0
- package/dist/types/routerProvider.d.ts +55 -0
- package/dist/types/routerState.d.ts +17 -0
- package/dist/types/routerStatePlugin.d.ts +19 -0
- package/dist/types/routerStateTypes.d.ts +70 -0
- package/dist/types/rsc-disabled/rscDisabledClientBrowserRuntime.d.ts +9 -0
- package/dist/types/rsc-disabled/rscDisabledClientEdgeRuntime.d.ts +7 -0
- package/dist/types/rsc-disabled/rscDisabledClientNodeRuntime.d.ts +8 -0
- package/dist/types/rsc-disabled/rscDisabledRuntimeError.d.ts +1 -0
- package/dist/types/rsc-disabled/rscDisabledServerEdgeRuntime.d.ts +15 -0
- package/dist/types/rsc-disabled/rscDisabledServerNodeRuntime.d.ts +17 -0
- package/dist/types/runtimeContextProjection.d.ts +30 -0
- package/dist/types/server-config/bffRuntime.d.ts +122 -0
- package/dist/types/server-config/index.d.ts +2 -0
- package/dist/types/server-config/serverTelemetry.d.ts +322 -0
- package/dist/types/workspaceEvents.d.ts +62 -0
- package/package.json +240 -15
- package/rslib.config.mts +17 -2
- package/rstest.config.mts +33 -2
- package/src/buildIdentity.ts +61 -0
- package/src/contextExtensions.ts +81 -0
- package/src/headRuntime.tsx +77 -0
- package/src/helmetCompat.ts +1 -1
- package/src/helmetContext.ts +31 -0
- package/src/index.ts +2 -0
- package/src/localisedLoaderIdentity.ts +30 -0
- package/src/localisedUrls/config.ts +18 -0
- package/src/localisedUrls/index.ts +25 -0
- package/src/localisedUrls/normalise.ts +62 -0
- package/src/localisedUrls/pathname.ts +60 -0
- package/src/localisedUrls/patterns.ts +283 -0
- package/src/localisedUrls/redirect.ts +107 -0
- package/src/localisedUrls/resolve.ts +106 -0
- package/src/localisedUrls/routeIdentity.ts +83 -0
- package/src/localisedUrls/routes.ts +451 -0
- package/src/localisedUrls/types.ts +18 -0
- package/src/prefetchPolicy.ts +33 -0
- package/src/rendererHead.ts +25 -8
- package/src/request-policy/browser.ts +22 -0
- package/src/request-policy/client.ts +404 -0
- package/src/request-policy/node.ts +41 -0
- package/src/request-policy/policyCore.ts +424 -0
- package/src/request-policy/requestContext.ts +149 -0
- package/src/request-policy/traceparent.ts +43 -0
- package/src/request-policy/transport.ts +349 -0
- package/src/request-policy/types.ts +229 -0
- package/src/routeHydration.ts +208 -0
- package/src/routerPrefetchPolicy.ts +195 -0
- package/src/routerProvider.ts +160 -0
- package/src/routerState.ts +220 -0
- package/src/routerStatePlugin.ts +125 -0
- package/src/routerStateTypes.ts +76 -0
- package/src/rsc-disabled/rscDisabledClientBrowserRuntime.ts +10 -0
- package/src/rsc-disabled/rscDisabledClientEdgeRuntime.ts +8 -0
- package/src/rsc-disabled/rscDisabledClientNodeRuntime.ts +9 -0
- package/src/rsc-disabled/rscDisabledRuntimeError.ts +3 -0
- package/src/rsc-disabled/rscDisabledServerEdgeRuntime.ts +16 -0
- package/src/rsc-disabled/rscDisabledServerNodeRuntime.ts +18 -0
- package/src/runtimeContextProjection.ts +105 -0
- package/src/server-config/bffRuntime.ts +136 -0
- package/src/server-config/index.ts +2 -0
- package/src/server-config/serverTelemetry.ts +337 -0
- package/src/shellStream.ts +55 -25
- package/src/workspaceEvents.ts +324 -0
- package/tests/buildIdentity.test.ts +51 -0
- package/tests/contextExtensions.test.ts +27 -0
- package/tests/headRuntime.test.tsx +229 -0
- package/tests/localisedUrls.test.ts +560 -0
- package/tests/rendererHead.test.ts +52 -121
- package/tests/request-policy/browser-policy.test.ts +108 -0
- package/tests/request-policy/client-isolation.test.ts +109 -0
- package/tests/request-policy/node-policy.test.ts +447 -0
- package/tests/request-policy/policyCore.test.ts +129 -0
- package/tests/request-policy/requestContext.test.ts +66 -0
- package/tests/request-policy/requestFactory.outbound-contract.test.ts +290 -0
- package/tests/request-policy/traceparent.test.ts +52 -0
- package/tests/request-policy/transport-retry.test.ts +367 -0
- package/tests/routeHydration.test.ts +180 -0
- package/tests/routerPrefetchPolicy.test.ts +102 -0
- package/tests/routerProvider.test.ts +29 -0
- package/tests/routerState.test.ts +77 -0
- package/tests/routerStatePlugin.test.ts +63 -0
- package/tests/runtimeContextProjection.test.ts +83 -0
- package/tests/safeFailure.test.ts +10 -28
- package/tests/shellStream.test.ts +39 -2
- package/tests/workspaceEvents.test.ts +221 -0
- package/dist/cjs/rscHtmlStream.js +0 -128
- package/dist/esm/rscHtmlStream.mjs +0 -86
- package/dist/esm-node/rscHtmlStream.mjs +0 -87
- package/dist/types/rscHtmlStream.d.ts +0 -4
- package/src/rscHtmlStream.ts +0 -142
- package/tests/rscHtmlStream.test.ts +0 -153
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
injectRSCPayload,
|
|
3
|
-
RSC_HTML_CLOSING_TAIL_LIMIT,
|
|
4
|
-
} from '../src/rscHtmlStream';
|
|
5
|
-
|
|
6
|
-
const encoder = new TextEncoder();
|
|
7
|
-
const flight = '<script>(self.__FLIGHT_DATA||=[]).push("payload")</script>';
|
|
8
|
-
|
|
9
|
-
async function readStream(stream: ReadableStream<Uint8Array>) {
|
|
10
|
-
const reader = stream.getReader();
|
|
11
|
-
const decoder = new TextDecoder();
|
|
12
|
-
let value = '';
|
|
13
|
-
for (;;) {
|
|
14
|
-
const result = await reader.read();
|
|
15
|
-
if (result.done) {
|
|
16
|
-
return value + decoder.decode();
|
|
17
|
-
}
|
|
18
|
-
value += decoder.decode(result.value, { stream: true });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
describe('injectRSCPayload', () => {
|
|
23
|
-
test('backpressures at the retained-tail limit and conserves the trailer', async () => {
|
|
24
|
-
let rscController!: ReadableStreamDefaultController<Uint8Array>;
|
|
25
|
-
const rscStream = new ReadableStream<Uint8Array>({
|
|
26
|
-
start(controller) {
|
|
27
|
-
rscController = controller;
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const transform = injectRSCPayload(rscStream);
|
|
31
|
-
const output = readStream(transform.readable);
|
|
32
|
-
const writer = transform.writable.getWriter();
|
|
33
|
-
|
|
34
|
-
const retainedWhitespace = ' '.repeat(
|
|
35
|
-
RSC_HTML_CLOSING_TAIL_LIMIT - '</body>'.length,
|
|
36
|
-
);
|
|
37
|
-
await writer.write(encoder.encode(`<body>x</body>${retainedWhitespace}`));
|
|
38
|
-
|
|
39
|
-
let overflowSettled = false;
|
|
40
|
-
const overflow = writer.write(encoder.encode(' ')).then(() => {
|
|
41
|
-
overflowSettled = true;
|
|
42
|
-
});
|
|
43
|
-
await new Promise(resolve => setTimeout(resolve, 20));
|
|
44
|
-
expect(overflowSettled).toBe(false);
|
|
45
|
-
|
|
46
|
-
rscController.enqueue(encoder.encode('payload'));
|
|
47
|
-
rscController.close();
|
|
48
|
-
await overflow;
|
|
49
|
-
await writer.write(encoder.encode('</html>'));
|
|
50
|
-
await writer.close();
|
|
51
|
-
|
|
52
|
-
const spaces = `${retainedWhitespace} `;
|
|
53
|
-
expect(await output).toBe(`<body>x${flight}</body>${spaces}</html>`);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('does not let flight overtake any split of an ordinary html tag', async () => {
|
|
57
|
-
const tag = '<span class="ordinary">';
|
|
58
|
-
|
|
59
|
-
for (let split = 1; split < tag.length; split++) {
|
|
60
|
-
const rscStream = new ReadableStream<Uint8Array>({
|
|
61
|
-
start(controller) {
|
|
62
|
-
controller.enqueue(encoder.encode('payload'));
|
|
63
|
-
controller.close();
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
const transform = injectRSCPayload(rscStream);
|
|
67
|
-
const output = readStream(transform.readable);
|
|
68
|
-
const writer = transform.writable.getWriter();
|
|
69
|
-
|
|
70
|
-
await writer.write(encoder.encode(`<body>x${tag.slice(0, split)}`));
|
|
71
|
-
await writer.write(
|
|
72
|
-
encoder.encode(`${tag.slice(split)}y</span></body></html>`),
|
|
73
|
-
);
|
|
74
|
-
await writer.close();
|
|
75
|
-
|
|
76
|
-
expect(await output, `split after ${tag.slice(0, split)}`).toBe(
|
|
77
|
-
`<body>x${tag}y</span>${flight}</body></html>`,
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test('conserves multi-chunk html and orders every flight chunk before the trailer', async () => {
|
|
83
|
-
let rscController!: ReadableStreamDefaultController<Uint8Array>;
|
|
84
|
-
const rscStream = new ReadableStream<Uint8Array>({
|
|
85
|
-
start(controller) {
|
|
86
|
-
rscController = controller;
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
const transform = injectRSCPayload(rscStream);
|
|
90
|
-
const output = readStream(transform.readable);
|
|
91
|
-
const writer = transform.writable.getWriter();
|
|
92
|
-
const unicode = encoder.encode('–');
|
|
93
|
-
|
|
94
|
-
await writer.write(encoder.encode('<html><body><main>first'));
|
|
95
|
-
await writer.write(unicode.slice(0, 1));
|
|
96
|
-
await writer.write(unicode.slice(1));
|
|
97
|
-
await writer.write(encoder.encode('middle</main></bo'));
|
|
98
|
-
await writer.write(encoder.encode('dy></ht'));
|
|
99
|
-
await writer.write(encoder.encode('ml>'));
|
|
100
|
-
|
|
101
|
-
rscController.enqueue(encoder.encode('first'));
|
|
102
|
-
rscController.enqueue(encoder.encode('second'));
|
|
103
|
-
rscController.close();
|
|
104
|
-
await writer.close();
|
|
105
|
-
|
|
106
|
-
expect(await output).toBe(
|
|
107
|
-
'<html><body><main>first–middle</main>' +
|
|
108
|
-
'<script>(self.__FLIGHT_DATA||=[]).push("first")</script>' +
|
|
109
|
-
'<script>(self.__FLIGHT_DATA||=[]).push("second")</script>' +
|
|
110
|
-
'</body></html>',
|
|
111
|
-
);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
test('does not truncate or inject inside an over-limit ordinary tag', async () => {
|
|
115
|
-
const attribute = 'x'.repeat(RSC_HTML_CLOSING_TAIL_LIMIT);
|
|
116
|
-
const partialTag = `<div data-value="${attribute}"`;
|
|
117
|
-
const rscStream = new ReadableStream<Uint8Array>({
|
|
118
|
-
start(controller) {
|
|
119
|
-
controller.enqueue(encoder.encode('payload'));
|
|
120
|
-
controller.close();
|
|
121
|
-
},
|
|
122
|
-
});
|
|
123
|
-
const transform = injectRSCPayload(rscStream);
|
|
124
|
-
const output = readStream(transform.readable);
|
|
125
|
-
const writer = transform.writable.getWriter();
|
|
126
|
-
|
|
127
|
-
await writer.write(encoder.encode(`<body>x${partialTag}`));
|
|
128
|
-
await writer.write(encoder.encode('>y</div></body></html>'));
|
|
129
|
-
await writer.close();
|
|
130
|
-
|
|
131
|
-
expect(await output).toBe(
|
|
132
|
-
`<body>x${flight}${partialTag}>y</div></body></html>`,
|
|
133
|
-
);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
test('propagates flight errors without publishing a synthetic trailer', async () => {
|
|
137
|
-
let rscController!: ReadableStreamDefaultController<Uint8Array>;
|
|
138
|
-
const failure = new Error('flight failed');
|
|
139
|
-
const rscStream = new ReadableStream<Uint8Array>({
|
|
140
|
-
start(controller) {
|
|
141
|
-
rscController = controller;
|
|
142
|
-
},
|
|
143
|
-
});
|
|
144
|
-
const transform = injectRSCPayload(rscStream);
|
|
145
|
-
const output = readStream(transform.readable);
|
|
146
|
-
const writer = transform.writable.getWriter();
|
|
147
|
-
|
|
148
|
-
await writer.write(encoder.encode('<body>html</body></html>'));
|
|
149
|
-
rscController.error(failure);
|
|
150
|
-
|
|
151
|
-
await expect(Promise.all([writer.close(), output])).rejects.toBe(failure);
|
|
152
|
-
});
|
|
153
|
-
});
|