Skip to content

Commit 1f8194c

Browse files
refactor: address CodeRabbit nitpicks (explicit types, simpler assertions)
1 parent b39afe4 commit 1f8194c

2 files changed

Lines changed: 19 additions & 16 deletions

File tree

src/scripts/metadata/ogg.test.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -368,15 +368,13 @@ describe('getOggMetadata', () => {
368368
[createBuffer()],
369369
`test_${name.replace(/\s+/g, '_')}.ogg`
370370
)
371-
await expect(getOggMetadata(file)).resolves.toSatisfy((result) => {
372-
if (expectedPrompt !== undefined) {
373-
expect(result.prompt).toEqual(expectedPrompt)
374-
} else {
375-
expect(result.prompt).toBeUndefined()
376-
}
377-
expect(result.workflow).toBeUndefined()
378-
return true
379-
})
371+
const result = await getOggMetadata(file)
372+
if (expectedPrompt !== undefined) {
373+
expect(result.prompt).toEqual(expectedPrompt)
374+
} else {
375+
expect(result.prompt).toBeUndefined()
376+
}
377+
expect(result.workflow).toBeUndefined()
380378
})
381379
}
382380
})

src/scripts/metadata/ogg.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
export async function getOggMetadata(file: File) {
1+
import type { ComfyMetadata } from '@/types/metadataTypes'
2+
3+
export async function getOggMetadata(file: File): Promise<ComfyMetadata> {
24
// Read the entire file into memory (Opus files are generally small enough)
35
const arrayBuffer = await file.arrayBuffer()
46
const data = new Uint8Array(arrayBuffer)
@@ -82,7 +84,10 @@ function extractOpusTags(data: Uint8Array, decoder: TextDecoder): Uint8Array[] {
8284
return segments
8385
}
8486

85-
function parseVorbisComments(packetData: Uint8Array, decoder: TextDecoder) {
87+
function parseVorbisComments(
88+
packetData: Uint8Array,
89+
decoder: TextDecoder
90+
): ComfyMetadata {
8691
let readIndex = 8 // Skip 'OpusTags' magic string (8 bytes)
8792
const packetView = new DataView(
8893
packetData.buffer,
@@ -111,7 +116,7 @@ function parseVorbisComments(packetData: Uint8Array, decoder: TextDecoder) {
111116
const userCommentListLength = packetView.getUint32(readIndex, true)
112117
readIndex += 4
113118

114-
let prompt, workflow
119+
const result: ComfyMetadata = {}
115120
for (let i = 0; i < userCommentListLength; i++) {
116121
// Bounds check: ensure comment length field is within packet
117122
if (readIndex + 4 > packetData.length) break
@@ -135,21 +140,21 @@ function parseVorbisComments(packetData: Uint8Array, decoder: TextDecoder) {
135140
const value = text.substring(separatorIndex + 1)
136141
if (key === 'prompt') {
137142
try {
138-
prompt = JSON.parse(value)
143+
result.prompt = JSON.parse(value)
139144
} catch (e) {
140145
console.warn('Ogg metadata parsing failed for prompt:', e)
141146
}
142147
} else if (key === 'workflow') {
143148
try {
144-
workflow = JSON.parse(value)
149+
result.workflow = JSON.parse(value)
145150
} catch (e) {
146151
console.warn('Ogg metadata parsing failed for workflow:', e)
147152
}
148153
}
149154
}
150155

151-
if (prompt !== undefined && workflow !== undefined) break
156+
if (result.prompt !== undefined && result.workflow !== undefined) break
152157
}
153158

154-
return { prompt, workflow }
159+
return result
155160
}

0 commit comments

Comments
 (0)