-
-
Notifications
You must be signed in to change notification settings - Fork 578
/
is-binary.coffee
42 lines (32 loc) · 1.29 KB
/
is-binary.coffee
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
sysPath = require 'path'
extensions = [
# Audio files.
'adp', 'au', 'mid', 'mp4a', 'mpga', 'oga', 's3m', 'sil', 'eol', 'dra',
'dts', 'dtshd', 'lvp', 'pya', 'ecelp4800', 'ecelp7470', 'ecelp9600',
'rip', 'weba', 'aac', 'aif', 'caf', 'flac',
# Video files.
'mka', 'm3u', 'wax', 'wma', 'wav', 'xm', 'flac', '3gp', '3g2', 'h261',
'h263', 'h264', 'jpgv', 'jpm', 'mj2', 'mp4', 'mpeg', 'ogv', 'qt', 'uvh',
'uvm', 'uvp', 'uvs', 'dvb', 'fvt', 'mxu', 'pyv', 'uvu', 'viv', 'webm',
'f4v', 'fli', 'flv', 'm4v', 'mkv', 'mng', 'asf', 'vob', 'wm', 'wmv',
'wmx', 'wvx', 'movie', 'smv', 'ts',
# Pictures.
'bmp', 'cgm', 'g3', 'gif', 'ief', 'jpg', 'jpeg', 'ktx', 'png', 'btif',
'sgi', 'svg', 'tiff', 'psd', 'uvi', 'sub', 'djvu', 'dwg', 'dxf', 'fbs',
'fpx', 'fst', 'mmr', 'rlc', 'mdi', 'wdp', 'npx', 'wbmp', 'xif', 'webp',
'3ds', 'ras', 'cmx', 'fh', 'ico', 'pcx', 'pic', 'pnm', 'pbm', 'pgm',
'ppm', 'rgb', 'tga', 'xbm', 'xpm', 'xwd',
# Archives.
'zip', 'rar', 'tar', 'bz2',
# Fonts.
'eot', 'ttf', 'woff'
]
exts = Object.create(null)
extensions.forEach (extension) ->
exts[extension] = true
isBinary = (extension) -> !!exts[extension]
isBinaryPath = (path) ->
extension = sysPath.extname(path).slice(1)
return no if extension is ''
isBinary extension
module.exports = isBinaryPath