import { extname } from 'path'; const binaryExtensions = new Set([ // types originally from https://github.com/sindresorhus/binary-extensions/blob/40e44b510d87a63dcf42300bc8fbcb105f45a61c/binary-extensions.json '.3dm', '.3ds', '.3g2', '.3gp', '.7z', '.a', '.aac', '.adp', '.ai', '.aif', '.aiff', '.alz', '.ape', '.apk', '.appimage', '.ar', '.arj', '.asf', '.au', '.avi', '.bak', '.baml', '.bh', '.bin', '.bk', '.bmp', '.btif', '.bz2', '.bzip2', '.cab', '.caf', '.cgm', '.class', '.cmx', '.cpio', '.cr2', '.cur', '.dat', '.dcm', '.deb', '.dex', '.djvu', '.dll', '.dmg', '.dng', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dra', '.DS_Store', '.dsk', '.dts', '.dtshd', '.dvb', '.dwg', '.dxf', '.ecelp4800', '.ecelp7470', '.ecelp9600', '.egg', '.eol', '.eot', '.epub', '.exe', '.f4v', '.fbs', '.fh', '.fla', '.flac', '.flatpak', '.fli', '.flv', '.fpx', '.fst', '.fvt', '.g3', '.gh', '.gif', '.glb', '.graffle', '.gz', '.gzip', '.h261', '.h263', '.h264', '.icns', '.ico', '.ief', '.img', '.ipa', '.iso', '.jar', '.jpeg', '.jpg', '.jpgv', '.jpm', '.jxr', '.key', '.ktx', '.lha', '.lib', '.lvp', '.lz', '.lzh', '.lzma', '.lzo', '.m3u', '.m4a', '.m4v', '.mar', '.mdi', '.mht', '.mid', '.midi', '.mj2', '.mka', '.mkv', '.mmr', '.mng', '.mobi', '.mov', '.movie', '.mp3', '.mp4', '.mp4a', '.mpeg', '.mpg', '.mpga', '.msi', '.mxu', '.nef', '.npx', '.numbers', '.nupkg', '.o', '.odp', '.ods', '.odt', '.oga', '.ogg', '.ogv', '.otf', '.ott', '.pages', '.pbm', '.pbf', '.pcx', '.pdb', '.pdf', '.pea', '.pgm', '.pic', '.png', '.pnm', '.pot', '.potm', '.potx', '.ppa', '.ppam', '.ppm', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx', '.psd', '.pxd', '.pxz', '.pya', '.pyc', '.pyo', '.pyv', '.qt', '.rar', '.ras', '.raw', '.resources', '.rgb', '.rip', '.rlc', '.rmf', '.rmvb', '.rpm', '.rtf', '.rz', '.s3m', '.s7z', '.scpt', '.sgi', '.shar', '.snap', '.sil', '.sketch', '.slk', '.smv', '.snk', '.so', '.stl', '.suo', '.sub', '.swf', '.tar', '.tbz', '.tbz2', '.tga', '.tgz', '.thmx', '.tif', '.tiff', '.tlz', '.ttc', '.ttf', '.txz', '.udf', '.uvh', '.uvi', '.uvm', '.uvp', '.uvs', '.uvu', '.viv', '.vob', '.war', '.wav', '.wax', '.wbmp', '.wdp', '.weba', '.webm', '.webp', '.whl', '.wim', '.wm', '.wma', '.wmv', '.wmx', '.woff', '.woff2', '.wrm', '.wvx', '.xbm', '.xif', '.xla', '.xlam', '.xls', '.xlsb', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.xm', '.xmind', '.xpi', '.xpm', '.xwd', '.xz', '.z', '.zip', '.zipx', ]); export function isBinaryPath(path: string): boolean { return binaryExtensions.has(extname(path).toLowerCase()); }