Page MenuHomePhorge

D15330.1765061050.diff
No OneTemporary

Size
6 KB
Referenced Files
None
Subscribers
None

D15330.1765061050.diff

diff --git a/keyserver/src/responders/landing-handler.js b/keyserver/src/responders/landing-handler.js
--- a/keyserver/src/responders/landing-handler.js
+++ b/keyserver/src/responders/landing-handler.js
@@ -229,37 +229,6 @@
// We remove trailing slash for `react-router`
const routerBasename = basePath.replace(/\/$/, '');
const clientPath = routerBasename + req.url;
- await new Promise<void>((resolve, reject) => {
- const {
- pipe,
- }: {
- +pipe: (
- destination: $Response,
- options?: { +end?: boolean, ... },
- ) => void,
- ...
- } = renderToPipeableStream(
- <LandingSSR
- url={clientPath}
- basename={routerBasename}
- siweNonce={siweNonce}
- siwePrimaryIdentityPublicKey={siwePrimaryIdentityPublicKey}
- siweMessageType={siweMessageType}
- siweMessageIssuedAt={siweMessageIssuedAt}
- />,
- {
- onShellReady() {
- pipe(res, { end: false });
- },
- onAllReady() {
- resolve();
- },
- onError(error) {
- reject(error);
- },
- },
- );
- });
const siweNonceString = siweNonce ? `"${siweNonce}"` : 'null';
const siwePrimaryIdentityPublicKeyString = siwePrimaryIdentityPublicKey
@@ -271,17 +240,46 @@
const siweMessageIssuedAtString = siweMessageIssuedAt
? `"${siweMessageIssuedAt}"`
: 'null';
- // prettier-ignore
- res.end(html`</div>
- <script>var routerBasename = "${routerBasename}";</script>
- <script>var siweNonce = ${siweNonceString};</script>
- <script>var siwePrimaryIdentityPublicKey = ${siwePrimaryIdentityPublicKeyString};</script>
- <script>var siweMessageType = ${siweMessageTypeString};</script>
- <script>var siweMessageIssuedAt = ${siweMessageIssuedAtString};</script>
- <script src="${jsURL}"></script>
- </body>
- </html>
- `);
+
+ await new Promise((resolve, reject) => {
+ let didError = false;
+ const { pipe }: { pipe: ($Response, options?: { end: boolean }) => mixed } =
+ renderToPipeableStream(
+ <LandingSSR
+ url={clientPath}
+ basename={routerBasename}
+ siweNonce={siweNonce}
+ siwePrimaryIdentityPublicKey={siwePrimaryIdentityPublicKey}
+ siweMessageType={siweMessageType}
+ siweMessageIssuedAt={siweMessageIssuedAt}
+ />,
+ {
+ onAllReady() {
+ pipe(res, { end: false });
+ res.statusCode = didError ? 500 : 200;
+
+ // prettier-ignore
+ res.end(html`</div>
+ <script>var routerBasename = "${routerBasename}";</script>
+ <script>var siweNonce = ${siweNonceString};</script>
+ <script>var siwePrimaryIdentityPublicKey = ${siwePrimaryIdentityPublicKeyString};</script>
+ <script>var siweMessageType = ${siweMessageTypeString};</script>
+ <script>var siweMessageIssuedAt = ${siweMessageIssuedAtString};</script>
+ <script src="${jsURL}"></script>
+ </body>
+ </html>
+ `);
+
+ resolve();
+ },
+ onError(x) {
+ didError = true;
+ console.error('Stream error', x);
+ reject(x);
+ },
+ },
+ );
+ });
}
export default landingHandler;
diff --git a/keyserver/src/responders/website-responders.js b/keyserver/src/responders/website-responders.js
--- a/keyserver/src/responders/website-responders.js
+++ b/keyserver/src/responders/website-responders.js
@@ -179,41 +179,39 @@
`);
const Loading = await loadingPromise;
- await new Promise<void>((resolve, reject) => {
- const {
- pipe,
- }: {
- +pipe: (
- destination: $Response,
- options?: { +end?: boolean, ... },
- ) => void,
- ...
- } = renderToPipeableStream(<Loading />, {
- onShellReady() {
- pipe(res, { end: false });
- },
- onAllReady() {
- resolve();
- },
- onError(error) {
- reject(error);
- },
- });
+
+ await new Promise((resolve, reject) => {
+ let didError = false;
+ const { pipe }: { pipe: ($Response, options?: { end: boolean }) => mixed } =
+ renderToPipeableStream(<Loading />, {
+ onAllReady() {
+ pipe(res);
+ res.statusCode = didError ? 500 : 200;
+
+ // prettier-ignore
+ res.end(html`
+ </div>
+ <script>
+ var keyserverURL = "${keyserverURL}";
+ var baseURL = "${baseURL}";
+ var olmFilename = "${olmFilename}";
+ var commQueryExecutorFilename = "${commQueryExecutorFilename}";
+ var backupClientFilename = "${backupClientFilename}";
+ var webworkersOpaqueFilename = "${webworkersOpaqueFilename}"
+ </script>
+ <script src="${jsURL}"></script>
+ </body>
+ </html>
+ `);
+ resolve();
+ },
+ onError(x) {
+ didError = true;
+ console.error('Stream error', x);
+ reject(x);
+ },
+ });
});
- res.end(html`
- </div>
- <script>
- var keyserverURL = "${keyserverURL}";
- var baseURL = "${baseURL}";
- var olmFilename = "${olmFilename}";
- var commQueryExecutorFilename = "${commQueryExecutorFilename}";
- var backupClientFilename = "${backupClientFilename}";
- var webworkersOpaqueFilename = "${webworkersOpaqueFilename}"
- </script>
- <script src="${jsURL}"></script>
- </body>
- </html>
- `);
}
// On native, if this responder is called, it means that the app isn't
diff --git a/yarn.lock b/yarn.lock
--- a/yarn.lock
+++ b/yarn.lock
@@ -21227,14 +21227,6 @@
dnd-core "^11.1.3"
hoist-non-react-statics "^3.3.0"
-react-dom@18.1.0:
- version "18.1.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
- integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
- dependencies:
- loose-envify "^1.1.0"
- scheduler "^0.22.0"
-
react-dom@19.1.0:
version "19.1.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623"
@@ -21755,13 +21747,6 @@
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
-react@18.1.0:
- version "18.1.0"
- resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
- integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==
- dependencies:
- loose-envify "^1.1.0"
-
react@19.1.0:
version "19.1.0"
resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75"

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 10:44 PM (16 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5841232
Default Alt Text
D15330.1765061050.diff (6 KB)

Event Timeline