From 50d1dba959513715cf4d40bc54a89b5373966506 Mon Sep 17 00:00:00 2001 From: illiakovalenko Date: Tue, 28 Jan 2025 10:52:22 +0200 Subject: [PATCH 1/4] [Next.js] Simplify sitemap.xml handling --- .../nextjs-sxa/src/pages/api/sitemap.ts | 14 ++--------- .../sitecore-jss/src/native-fetcher.test.ts | 24 ------------------- packages/sitecore-jss/src/native-fetcher.ts | 5 +--- 3 files changed, 3 insertions(+), 40 deletions(-) diff --git a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts index 2fb54de46f..dfa7c59944 100644 --- a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts +++ b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts @@ -36,19 +36,9 @@ const sitemapApi = async ( try { const fetcher = new NativeDataFetcher(); - const response = await fetcher.fetch>(sitemapUrl); + const xmlResponse = await fetcher.fetch(sitemapUrl); - const reader = response.data.getReader(); - if (reader) { - while (true) { - const { done, value } = await reader.read(); - - if (done) break; - if (value) res.write(value); - } - } - - res.end(); + res.send(xmlResponse.data); } catch (error) { return res.redirect('/404'); } diff --git a/packages/sitecore-jss/src/native-fetcher.test.ts b/packages/sitecore-jss/src/native-fetcher.test.ts index 1ce7bf4972..39ae5c011b 100644 --- a/packages/sitecore-jss/src/native-fetcher.test.ts +++ b/packages/sitecore-jss/src/native-fetcher.test.ts @@ -136,30 +136,6 @@ describe('NativeDataFetcher', () => { expect(fetchInit?.body).to.be.undefined; }); - it('should execute request with stream response type', async () => { - const fetcher = new NativeDataFetcher(); - - const fakeRes = { body: new ReadableStream() }; - - spy.on( - global, - 'fetch', - mockFetch(200, fakeRes, { - customHeaders: { - 'Content-Type': 'text/xml', - }, - }) - ); - - const response = await fetcher.fetch('http://test.com/api'); - - expect(response.status).to.equal(200); - expect(response.data instanceof ReadableStream).to.be.true; - expect(fetchInput).to.equal('http://test.com/api'); - expect(fetchInit?.method).to.equal('GET'); - expect(fetchInit?.body).to.be.undefined; - }); - it('should execute POST request with data', async () => { const fetcher = new NativeDataFetcher(); const postData = { x: 'val1', y: 'val2' }; diff --git a/packages/sitecore-jss/src/native-fetcher.ts b/packages/sitecore-jss/src/native-fetcher.ts index 8356a3a444..7155863509 100644 --- a/packages/sitecore-jss/src/native-fetcher.ts +++ b/packages/sitecore-jss/src/native-fetcher.ts @@ -216,15 +216,12 @@ export class NativeDataFetcher { debug: (message: string, ...optionalParams: any[]) => void ): Promise { const contentType = response.headers.get('Content-Type') || ''; + try { if (contentType.includes('application/json')) { return await response.json(); } - if (response.body instanceof ReadableStream) { - return response.body; - } - return await response.text(); } catch (error) { debug('Response parsing error: %o', error); From d6e7866c90991c2de1874f1215a98e230a1910cb Mon Sep 17 00:00:00 2001 From: illiakovalenko Date: Tue, 28 Jan 2025 10:55:07 +0200 Subject: [PATCH 2/4] Updated CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ceecee2b86..cebdd9fb3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Our versioning strategy is as follows: ### 🐛 Bug Fixes * `[sitecore-jss-nextjs]` Fix Chromes editing mode when rendering host URL is internally redirected in XMCloud ([#2019](https://github.com/Sitecore/jss/pull/2019)) -* `[sitecore-jss]` NativeDataFetcher doesn't return stream response ([#2020](https://github.com/Sitecore/jss/pull/2020)) +* `[templates/next.js]` Simplify sitemap.xml handling ([#2023](https://github.com/Sitecore/jss/pull/2023)) ## 22.4.0 From 931d71a2884006a80037ff074a645b0c116b9d5c Mon Sep 17 00:00:00 2001 From: illiakovalenko Date: Tue, 28 Jan 2025 11:07:27 +0200 Subject: [PATCH 3/4] Simplified --- .../src/templates/nextjs-sxa/src/pages/api/sitemap.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts index dfa7c59944..5902974431 100644 --- a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts +++ b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/pages/api/sitemap.ts @@ -38,12 +38,10 @@ const sitemapApi = async ( const fetcher = new NativeDataFetcher(); const xmlResponse = await fetcher.fetch(sitemapUrl); - res.send(xmlResponse.data); + return res.send(xmlResponse.data); } catch (error) { return res.redirect('/404'); } - - return; } // index /sitemap.xml that includes links to all sitemaps From c4a995bbb1438a203836f57015d607c9e0ef2f09 Mon Sep 17 00:00:00 2001 From: illiakovalenko Date: Tue, 28 Jan 2025 11:23:26 +0200 Subject: [PATCH 4/4] Updated CHANGELOG [skip ci] --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cebdd9fb3e..0b0a00ef23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Our versioning strategy is as follows: ### 🐛 Bug Fixes * `[sitecore-jss-nextjs]` Fix Chromes editing mode when rendering host URL is internally redirected in XMCloud ([#2019](https://github.com/Sitecore/jss/pull/2019)) -* `[templates/next.js]` Simplify sitemap.xml handling ([#2023](https://github.com/Sitecore/jss/pull/2023)) +* `[templates/next.js]` sitemap.xml endpoint returns 404 ([#2023](https://github.com/Sitecore/jss/pull/2023)) ## 22.4.0