-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathbinaryTypes.ts
68 lines (66 loc) · 1.7 KB
/
binaryTypes.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// TODO: check if we can replace this with https://www.npmjs.com/package/mime-types
/**
* Common binary MIME types
* @see https://github.com/architect/functions/blob/45254fc1936a1794c185aac07e9889b241a2e5c6/src/http/helpers/binary-types.js
*/
const binaryTypes = [
'application/octet-stream',
// Docs
'application/epub+zip',
'application/msword',
'application/pdf',
'application/rtf',
'application/vnd.amazon.ebook',
'application/vnd.ms-excel',
'application/vnd.ms-powerpoint',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
// Fonts
'font/otf',
'font/woff',
'font/woff2',
// Images
'image/bmp',
'image/gif',
'image/jpeg',
'image/png',
'image/tiff',
'image/vnd.microsoft.icon',
'image/webp',
// Audio
'audio/3gpp',
'audio/aac',
'audio/basic',
'audio/mpeg',
'audio/ogg',
'audio/wavaudio/webm',
'audio/x-aiff',
'audio/x-midi',
'audio/x-wav',
// Video
'video/3gpp',
'video/mp2t',
'video/mpeg',
'video/ogg',
'video/quicktime',
'video/webm',
'video/x-msvideo',
// Archives
'application/java-archive',
'application/vnd.apple.installer+xml',
'application/x-7z-compressed',
'application/x-apple-diskimage',
'application/x-bzip',
'application/x-bzip2',
'application/x-gzip',
'application/x-java-archive',
'application/x-rar-compressed',
'application/x-tar',
'application/x-zip',
'application/zip',
]
export function isBinaryType(contentType: string | null | undefined) {
if (!contentType) return false
return binaryTypes.some((t) => contentType.includes(t))
}