isbinaryfile
    Overview
    Documentation
    Tutorials
    Chat
    Insights
    Code
    Dependencies
    Contributors
    Jobs

isbinaryfile

Detects if a file is binary in Node.js. Similar to Perl's -B.

4.0.2  •  Updated 9 months ago  •  by Garen Torikian  •  MIT License

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.

Popularity

Maintenance

Development

Last ver 9 months ago
Created 7 years ago
Last commit 6 months ago
21 days between commits

Technology

Node version: 10.11.0
10K unpacked

Compliance

MIT License
OSI Approved
0 vulnerabilities

Contributors

14 contributors
Garen Torikian
Maintainer, 104 commits, 21 merges, 9 PRs
Sean Lang
9 commits, 1 PRs
Works at RokkinCat
Kyle P Davis
2 commits, 1 PRs
Works at Apple
Mostafa Eweda
2 commits
Pablo Duboue
1 commits, 1 PRs
Kevin Sawicki
1 commits, 1 PRs
Works at GitHub Inc.

Tags

text
binary
encoding
istext
is text
isbinary
is binary
is text or binary
is text or binary file
isbinaryfile
is binary file
istextfile
is text file
Openbase helps developers choose among and use millions of open-source packages, so they can build amazing products faster.
FacebookTwitterLinkedIn
© 2020 Devstore, Inc.