diff --git a/Build/lib/create-file.test.ts b/Build/lib/create-file.test.ts index 9da5c52a..eae248cf 100644 --- a/Build/lib/create-file.test.ts +++ b/Build/lib/create-file.test.ts @@ -86,4 +86,10 @@ describe('fileEqual', () => { ['A', 'B', ''], false )); + + it('sgmodule', () => test( + ['#!name=[Sukka] URL Redirect', '#!desc=Last Updated: 2025-04-21T13:01:42.570Z Size: 127', '', 'always-real-ip'], + ['#!name=[Sukka] URL Redirect', '#!desc=Last Updated: 2025-04-20T13:01:42.570Z Size: 130', '', 'always-real-ip'], + true + )); }); diff --git a/Build/lib/create-file.ts b/Build/lib/create-file.ts index 1db0a408..54797bab 100644 --- a/Build/lib/create-file.ts +++ b/Build/lib/create-file.ts @@ -40,6 +40,16 @@ export async function fileEqual(linesA: string[], source: AsyncIterable const lineA = linesA[index]; + if (lineA.length === 0) { + if (lineB.length === 0) { + // eslint-disable-next-line no-await-in-loop -- sequential + result = await iterator.next(); + lineB = result.value; + continue; + } + return false; + } + const aFirstChar = lineA.charCodeAt(0); if (aFirstChar !== lineB.charCodeAt(0)) { return false; @@ -85,7 +95,7 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath return; } - await span.traceChildAsync(`writing ${filePath}`, async () => { + return span.traceChildAsync(`writing ${filePath}`, async () => { const linesALen = linesA.length; // The default highwater mark is normally 16384,