npm package

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 <hh.lohmann@gmail.com>

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-simple

Details

Tests

Source Code

License

References

RFC 20: ASCII format for network interchange: Control Characters

Wikipedia: List of file signatures

Endspacer: './markdown-assets/endspacer.png' missing - see https://hh-lohmann.github.io/html-endspacer
[top]