Skip to content
Detects if a file is binary in Node.js. Similar to Perl's -B
TypeScript
Branch: master
Clone or download
Latest commit 0d4212f Jan 12, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Oct 8, 2019
src Release 4.0.3 Dec 29, 2019
test tweak API a bit Jan 7, 2019
.gitignore Ignore .vscode Dec 29, 2019
.prettierrc rewrite it into typescript Jan 7, 2019
.travis.yml speed up travis Jan 7, 2019
LICENSE.txt rewrite it into typescript Jan 7, 2019
README.md Update example Jan 8, 2019
jestconfig.json rewrite it into typescript Jan 7, 2019
package-lock.json Release 4.0.4 Jan 12, 2020
package.json Release 4.0.4 Jan 12, 2020
tsconfig.json rewrite it into typescript Jan 7, 2019
tslint.json rewrite it into typescript Jan 7, 2019

README.md

isBinaryFile

Detects if a file is binary in Node.js using promises. Similar to Perl's -B switch, in that:

  • it reads the first few thousand bytes of a file
  • checks for a null byte; if it's found, it's binary
  • flags non-ASCII characters. After a certain number of "weird" characters, the file is flagged as binary

Much of the logic is pretty much ported from ag.

Note: if the file doesn't exist or is a directory, an error is thrown.

Installation

npm install isbinaryfile

Usage

Returns Promise<boolean> (or just boolean for *Sync). true if the file is binary, false otherwise.

isBinaryFile(filepath)

  • filepath - a string indicating the path to the file.

isBinaryFile(bytes[, size])

  • bytes - a Buffer of the file's contents.
  • size - an optional number indicating the file size.

isBinaryFileSync(filepath)

  • filepath - a string indicating the path to the file.

isBinaryFileSync(bytes[, size])

  • bytes - a Buffer of the file's contents.
  • size - an optional number indicating the file size.

Examples

Here's an arbitrary usage:

const isBinaryFile = require("isbinaryfile").isBinaryFile;
const fs = require("fs");

const filename = "fixtures/pdf.pdf";
const data = fs.readFileSync(filename);
const stat = fs.lstatSync(filename);

isBinaryFile(data, stat.size).then((result) => {
  if (result) {
    console.log("It is binary!")
  }
  else {
    console.log("No it is not.")
  }
});

const isBinaryFileSync = require("isbinaryfile").isBinaryFileSync;
const bytes = fs.readFileSync(filename);
const size = fs.lstatSync(filename).size;
console.log(isBinaryFileSync(bytes, size)); // true or false

Testing

Run npm install, then run npm test.

You can’t perform that action at this time.