diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index a4c31afed65932..c12e7d170d2a8b 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -2,3 +2,5 @@ 134ce6817984bad0f5fb043481502531fee9b1db # chore: rename test packages (#11172) 5170e44920458090b8b43ee9cfe5010c25dfe22b +# chore: use oxfmt sortImports (#23319) +97ad042170f4c71b518239723b733dd98e8e3e76 diff --git a/packages/vite/src/node/__tests__/utils.spec.ts b/packages/vite/src/node/__tests__/utils.spec.ts index 998a48637fdf3d..7974ab754301da 100644 --- a/packages/vite/src/node/__tests__/utils.spec.ts +++ b/packages/vite/src/node/__tests__/utils.spec.ts @@ -629,6 +629,18 @@ describe('processSrcSetSync', () => { expect(processSrcSetSync(source, ({ url }) => url)).toBe(result) }) + test('should convert newline-separated srcset candidates to space-separated', async () => { + const source = 'asset.png\n1x,\nnested/asset.png\n2x' + const result = 'asset.png 1x, nested/asset.png 2x' + expect(processSrcSetSync(source, ({ url }) => url)).toBe(result) + }) + + test('should convert CRLF-separated srcset candidates to space-separated', async () => { + const source = 'asset.png\r\n1x,\r\nnested/asset.png\r\n2x' + const result = 'asset.png 1x, nested/asset.png 2x' + expect(processSrcSetSync(source, ({ url }) => url)).toBe(result) + }) + test('should not break URLs with commas in image-set-options', async () => { const source = `url(https://example.com/dpr_1,f_auto,fl_progressive,q_auto,w_100/v1/img) 1x, url("https://example.com/dpr_2,f_auto,fl_progressive,q_auto,w_100/v1/img")\t\t2x diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 703f8ea8016df7..a501e50eda397b 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -821,7 +821,6 @@ export function parseSrcset(string: string): ImageCandidate[] { const matches = string .trim() .replace(escapedSpaceCharacters, ' ') - .replace(/\r?\n/, '') .replace(/,\s+/, ', ') .replaceAll(/\s+/g, ' ') .matchAll(imageCandidateRegex)