Support mime types with additional data, fixes #1074

This commit is contained in:
Renée Kooi 2018-10-08 15:26:32 +02:00
parent e768bbfdde
commit 626f511ebd
No known key found for this signature in database
GPG key ID: 8CDD5F0BC448F040
2 changed files with 6 additions and 0 deletions

View file

@ -7,10 +7,13 @@ const mimeToExtensions = {
'audio/ogg': 'ogg',
'video/webm': 'webm',
'audio/webm': 'webm',
'video/x-matroska': 'mkv',
'video/mp4': 'mp4',
'audio/mp3': 'mp3'
}
module.exports = function getFileTypeExtension (mimeType) {
// Remove the ; bit in 'video/x-matroska;codecs=avc1'
mimeType = mimeType.replace(/;.*$/, '')
return mimeToExtensions[mimeType] || null
}

View file

@ -5,6 +5,9 @@ describe('getFileTypeExtension', () => {
expect(getFileTypeExtension('video/ogg')).toEqual('ogv')
expect(getFileTypeExtension('audio/ogg')).toEqual('ogg')
expect(getFileTypeExtension('video/webm')).toEqual('webm')
// Supports mime types with additional data
expect(getFileTypeExtension('video/webm;codecs=vp8,opus')).toEqual('webm')
expect(getFileTypeExtension('video/x-matroska;codecs=avc1')).toEqual('mkv')
expect(getFileTypeExtension('audio/webm')).toEqual('webm')
expect(getFileTypeExtension('video/mp4')).toEqual('mp4')
expect(getFileTypeExtension('audio/mp3')).toEqual('mp3')