Check with minimal effort if a file is binary, e.g. before trying to apply text file methods
Does not conflict with non-English character encodings, see Demo with Hebrew text.
hh lohmann <hh.lohmann@gmail.com>
For being fast and simple, the file is not fully analyzed (see Details), but sufficently enough for every day files. It is not a tool against malicious files hiding executable code in seemingly harmless text files and of course not a validator for potentially malformed files.
import { isBinaryFileSimple } from 'is-binary-file-simple'
isBinaryFileSimple( file )
File to check (filename with or without path)
true if given file is a binary file, false else
const getFirstLine = async function( file ){
if( isBinaryFileSimple( file ) ){
console.log( 'Binary files cannot be read by line' );
}
else{
// ... code ...
console.log( `First line of ${ file }:\n${ firstLine }` );
}
}
getFirstLine( 'README.md' );
See demos
Pick for your preferred package manager:
npm i is-binary-file-simple
pnpm i is-binary-file-simple
bun i is-binary-file-simple
# For Yarn you should double check docs for your and / or
# current Yarn version, newer versions do not treat `i package_name`
# as an alias for `add ...` and exclude global installations
yarn add is-binary-file-simple
The first 256 Bytes of the given file are checked for containing Control Characters. If Control Characters (execpt LF (Line Feed) and CR (Carriage Return) for line breaks) exist, the file is binary.
For PDFs the magic signature is checked