is-binary-file-simple
v1.0.3
Published
Check with minimal effort if a file is binary, e.g. before trying to apply text file methods
Readme
is-binary-file-simple
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 <[email protected]>
Caution
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.
Synopsis
import { isBinaryFileSimple } from 'is-binary-file-simple'
isBinaryFileSimple( file )Parameters
file
File to check (filename with or without path)
Returns
true if given file is a binary file, false else
Examples
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' );Demo
See demos on GitHub Pages for this repo
Installation
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-simpleDetails
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
Tests
- Code tests to be run with Node.js / Bun available in Source Code
Source Code
License
- MIT (see LICENSE.txt)
References
RFC 20: ASCII format for network interchange: Control Characters
Wikipedia: List of file signatures
- NB: File signatures are often called "magic number / pattern / bytes"
- https://en.wikipedia.org/wiki/List_of_file_signatures
