Package Exports
- istextorbinary
- istextorbinary/source/index
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (istextorbinary) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Is Text or Binary?
Determine if a filename and/or buffer is text or binary. Smarter detection than the other solutions.
Determination works like so:
- If filename is available, check if its extension is a text extension or if it is a binary extension, this is near instant.
- If no filename was provided, or the extension check was indeterminate, then check the buffer.
The buffer check (with the default options) will check 24 bytes at the start, middle, and end of the buffer. History has shown that checking all three locations is mandatory for accuracy, and that anything less is not accurate. This technique offers superior performance while still offering superior accuracy. Alternatives generally just do 1000 bytes at the start, which is slower, and inaccurate.
One cannot just do the buffer check alone because UTF16 characters are indistinguishable from binary which would return an inaccurate result, hence why the combination is necessary for accuracy, with performance for known extensions a side-effect.
As such, this library's combination of text check (if filename is provided), then buffer check (if buffer is provided), offers superior performance and accuracy to alternatives.
Ever since 2012, this module's superior accuracy and performance has been essential to the operation of DocPad and its other dependents.
Usage
Install
- Install:
npm install --save istextorbinary
- Require:
require('istextorbinary')
<script type="module">
import * as pkg from '//dev.jspm.io/istextorbinary'
</script>
Editions
This package is published with the following editions:
istextorbinary
aliasesistextorbinary/index.js
which uses Editions to automatically select the correct edition for the consumers environmentistextorbinary/source/index.js
is esnext source code with require for modulesistextorbinary/edition-browsers/index.js
is esnext compiled for browsers with require for modulesistextorbinary/edition-node-0.12/index.js
is esnext compiled for node.js 0.12 with require for modules
TypeScript
This project provides its type information via inline JSDoc Comments. To make use of this in TypeScript, set your maxNodeModuleJsDepth
compiler option to 5
or thereabouts. You can accomlish this via your tsconfig.json
file like so:
{
"compilerOptions": {
"maxNodeModuleJsDepth": 5
}
}
History
Discover the release history by heading on over to the HISTORY.md
file.
Contribute
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
Backers
Maintainers
These amazing people are maintaining this project:
- Benjamin Lupton — view contributions
- Rob Loach — view contributions
- Michael Mooring — view contributions
Sponsors
No sponsors yet! Will you be the first?
Contributors
These amazing people have contributed code to this project:
- Benjamin Lupton — view contributions
- Shinnosuke Watanabe — view contributions
- Ian Sibner — view contributions
- Sean — view contributions
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
License
Unless stated otherwise all works are:
- Copyright © 2012+ Bevry Pty Ltd
- Copyright © 2011 Benjamin Lupton
and licensed under: