{"id":13454418,"url":"https://github.com/bevry/istextorbinary","last_synced_at":"2025-05-16T03:04:52.631Z","repository":{"id":12415353,"uuid":"15069510","full_name":"bevry/istextorbinary","owner":"bevry","description":"Determine if a filename and/or buffer is text or binary. Smarter detection than the other solutions.","archived":false,"fork":false,"pushed_at":"2024-10-12T23:22:49.000Z","size":1610,"stargazers_count":152,"open_issues_count":9,"forks_count":17,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-12T11:37:12.235Z","etag":null,"topics":["nodejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bevry.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["balupton"],"patreon":"bevry","open_collective":"bevry","ko_fi":"balupton","liberapay":"bevry","tidelift":"npm/istextorbinary","custom":["https://bevry.me/fund"]}},"created_at":"2013-12-10T06:57:44.000Z","updated_at":"2025-03-12T09:26:18.000Z","dependencies_parsed_at":"2024-01-11T22:01:50.981Z","dependency_job_id":"9beb83c8-1532-4b3b-a44e-2dfc921b6e71","html_url":"https://github.com/bevry/istextorbinary","commit_stats":{"total_commits":152,"total_committers":9,"mean_commits":16.88888888888889,"dds":0.5197368421052632,"last_synced_commit":"597fa8109c5a6d411cdb7b418b0ac8ebe078ee9b"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevry%2Fistextorbinary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevry%2Fistextorbinary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevry%2Fistextorbinary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bevry%2Fistextorbinary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bevry","download_url":"https://codeload.github.com/bevry/istextorbinary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nodejs"],"created_at":"2024-07-31T08:00:53.912Z","updated_at":"2025-05-16T03:04:47.622Z","avatar_url":"https://github.com/bevry.png","language":"TypeScript","readme":"\u003c!-- TITLE/ --\u003e\n\n# Is Text or Binary?\n\n\u003c!-- /TITLE --\u003e\n\n\u003c!-- BADGES/ --\u003e\n\n\u003cspan class=\"badge-githubworkflow\"\u003e\u003ca href=\"https://github.com/bevry/istextorbinary/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"\u003e\u003cimg src=\"https://github.com/bevry/istextorbinary/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-npmversion\"\u003e\u003ca href=\"https://npmjs.org/package/istextorbinary\" title=\"View this project on NPM\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/istextorbinary.svg\" alt=\"NPM version\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-npmdownloads\"\u003e\u003ca href=\"https://npmjs.org/package/istextorbinary\" title=\"View this project on NPM\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/istextorbinary.svg\" alt=\"NPM downloads\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cbr class=\"badge-separator\" /\u003e\n\u003cspan class=\"badge-githubsponsors\"\u003e\u003ca href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-thanksdev\"\u003e\u003ca href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"\u003e\u003cimg src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-patreon\"\u003e\u003ca href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-liberapay\"\u003e\u003ca href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"\u003e\u003cimg src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-buymeacoffee\"\u003e\u003ca href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-opencollective\"\u003e\u003ca href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"\u003e\u003cimg src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-crypto\"\u003e\u003ca href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"\u003e\u003cimg src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-paypal\"\u003e\u003ca href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"\u003e\u003cimg src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cbr class=\"badge-separator\" /\u003e\n\u003cspan class=\"badge-discord\"\u003e\u003ca href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"\u003e\u003cimg src=\"https://img.shields.io/discord/1147436445783560193?logo=discord\u0026amp;label=discord\" alt=\"Discord server badge\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-twitch\"\u003e\u003ca href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"\u003e\u003cimg src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\n\u003c!-- /BADGES --\u003e\n\n\u003c!-- DESCRIPTION/ --\u003e\n\nDetermine if a filename and/or buffer is text or binary. Smarter detection than the other solutions.\n\n\u003c!-- /DESCRIPTION --\u003e\n\n\nDetermination works like so:\n\n1. Extension Check: If filename is available, check if any of its extensions (from right to left) are an [text extension](https://github.com/bevry/textextensions) or a [binary extension](https://github.com/bevry/binaryextensions), this is near instant.\n2. Contents Check: If no filename was provided, or the extension check was indeterminate, then check the contents of the buffer.\n\nThe extension check will check each of the filename's extensions, from right to left. This is done as certain applications utilise multiple extensions for transformations, such as `app.x.y` may tell a compiler to transform from `x` format to `y` format, in this case perhaps `x` is not a recognized extension but `y` is, in which case we can make use of that to provide superior accuracy and convenience compared to just checking the rightmost extension.\n\nThe contents 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.\n\nOne cannot just do the contents 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.\n\nAs such, this library's combination of extension check (if filename is provided), then contents check (if buffer is provided), offers superior performance and accuracy to alternatives.\n\nEver since 2012, this module's superior accuracy and performance has been essential to the operation of [DocPad](https://docpad.org) and its other dependents.\n\n## Usage\n\n[Complete API Documentation.](http://master.istextorbinary.bevry.surge.sh/docs/)\n\n```typescript\nimport { isText, isBinary, getEncoding } from 'istextorbinary'\n```\n\nor\n\n```javascript\nconst { isText, isBinary, getEncoding } = require('istextorbinary')\n```\n\nthen\n\n```javascript\nisText(aFilename) // returns true if a text file otherwise false, checks only filename\nisText(null, aBuffer) // returns true if a text file otherwise false, checks only buffer\nisText(aFilename, aBuffer) // returns true if a text file otherwise false, checks filename then buffer\nisText(null, null) // returns null\n\nisBinary(aFilename) // returns true if a binary file otherwise false, checks only filename\nisBinary(null, aBuffer) // returns true if a binary file otherwise false, checks only buffer\nisBinary(aFilename, aBuffer) // returns true if a binary file otherwise false, checks filename then buffer\nisBinary(null, null) // returns null\n\ngetEncoding(aBuffer) // returns 'binary' if it contained non-utf8 characters, otherwise returns 'utf8'\n```\n\n\u003c!-- INSTALL/ --\u003e\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n-   Install: `npm install --save istextorbinary`\n-   Import: `import * as pkg from ('istextorbinary')`\n-   Require: `const pkg = require('istextorbinary')`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/istextorbinary@^9.5.0/edition-deno/index.ts'\n```\n### [Skypack](https://www.skypack.dev \"Skypack is a JavaScript Delivery Network for modern web apps\")\n\n``` html\n\u003cscript type=\"module\"\u003e\n    import * as pkg from '//cdn.skypack.dev/istextorbinary@^9.5.0'\n\u003c/script\u003e\n```\n### [unpkg](https://unpkg.com \"unpkg is a fast, global content delivery network for everything on npm\")\n\n``` html\n\u003cscript type=\"module\"\u003e\n    import * as pkg from '//unpkg.com/istextorbinary@^9.5.0'\n\u003c/script\u003e\n```\n### [jspm](https://jspm.io \"Native ES Modules CDN\")\n\n``` html\n\u003cscript type=\"module\"\u003e\n    import * as pkg from '//dev.jspm.io/istextorbinary@9.5.0'\n\u003c/script\u003e\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `istextorbinary` aliases `istextorbinary/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `istextorbinary/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `istextorbinary/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `istextorbinary/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `istextorbinary/edition-es2017/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `istextorbinary/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `istextorbinary/edition-es2017-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `istextorbinary/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `istextorbinary/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n\u003c!-- /INSTALL --\u003e\n\n\u003c!-- HISTORY/ --\u003e\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/istextorbinary/blob/HEAD/HISTORY.md#files)\n\n\u003c!-- /HISTORY --\u003e\n\n\u003c!-- BACKERS/ --\u003e\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/istextorbinary/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/istextorbinary\")\n-   [Ian Sibner](https://github.com/sibnerian) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=sibnerian \"View the GitHub contributions of Ian Sibner on repository bevry/istextorbinary\")\n-   [Kukhyeon Heo](https://github.com/sainthkh) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=sainthkh \"View the GitHub contributions of Kukhyeon Heo on repository bevry/istextorbinary\")\n-   [Michael Duane Mooring](https://github.com/mikeumus) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=mikeumus \"View the GitHub contributions of Michael Duane Mooring on repository bevry/istextorbinary\")\n-   [Rob Loach](https://github.com/robloach) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=robloach \"View the GitHub contributions of Rob Loach on repository bevry/istextorbinary\")\n-   [Sean](https://github.com/AlbinoDrought) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=AlbinoDrought \"View the GitHub contributions of Sean on repository bevry/istextorbinary\")\n-   [shinnn](https://github.com/shinnn) — [view contributions](https://github.com/bevry/istextorbinary/commits?author=shinnn \"View the GitHub contributions of shinnn on repository bevry/istextorbinary\")\n\n### Finances\n\n\u003cspan class=\"badge-githubsponsors\"\u003e\u003ca href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-thanksdev\"\u003e\u003ca href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"\u003e\u003cimg src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-patreon\"\u003e\u003ca href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-liberapay\"\u003e\u003ca href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"\u003e\u003cimg src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-buymeacoffee\"\u003e\u003ca href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-opencollective\"\u003e\u003ca href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"\u003e\u003cimg src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-crypto\"\u003e\u003ca href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"\u003e\u003cimg src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\u003cspan class=\"badge-paypal\"\u003e\u003ca href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"\u003e\u003cimg src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n\u003c!-- /BACKERS --\u003e\n\n\u003c!-- LICENSE/ --\u003e\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright \u0026copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n\u003c!-- /LICENSE --\u003e\n","funding_links":["https://github.com/sponsors/balupton","https://patreon.com/bevry","https://opencollective.com/bevry","https://ko-fi.com/balupton","https://liberapay.com/bevry","https://tidelift.com/funding/github/npm/istextorbinary","https://bevry.me/fund","https://thanks.dev/u/gh/bevry","https://buymeacoffee.com/balupton","https://opencollective.com/chad8"],"categories":["Packages","包","Repository","TypeScript","目录","Filesystem","Uncategorized"],"sub_categories":["Filesystem","文件系统","File system","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevry%2Fistextorbinary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbevry%2Fistextorbinary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbevry%2Fistextorbinary/lists"}