eslint-ts-patch-bun
v8.57.0-0
Published
Support eslint.config.mjs and eslint.config.ts for ESLint using Bun
Downloads
5
Readme
eslint-ts-patch-bun
Support loading eslint.config.mjs
or eslint.config.ts
as flat config file for ESLint.
Configure files will be searched in the following order, the first one found will be used:
eslint.config.js
eslint.config.mjs
eslint.config.cjs
eslint.config.ts
eslint.config.mts
eslint.config.cts
All these config files are loaded natively by Bun.
Context:
- ~~Unfortunately ESLint team decided to not support the detection of
.cjs
and.mjs
as flat config~~. - ~~Update: ESLint revised the decision to support
eslint.config.mjs
andeslint.config.cjs
but haven't landed yet.~~ - Update: ESLint v8.57.0 added support for
eslint.config.mjs
andeslint.config.cjs
.
Install
bun add -D eslint-ts-patch-bun eslint@npm:eslint-ts-patch-bun
It should make your eslint
CLI work for those config files automatically. If it's still not, you can try switching the CLI to eslint-ts
.
Compatibility
Tested with the following tools:
Package Managers
bun
✅
Integrations
eslint
CLI ✅- VSCode ESLint extension ✅ (as it's executing your local
node_modules/.bin/eslint
)
Haven't gotten chance to test with other integrations, contributions are welcome.
Versioning
This package proxies all ESLint exports, it should be compatible by aliasing the eslint
package. The version of this package is the same as the latest supported ESLint version in addition to a patch number suffix indicating the patches of this package (e.g. 8.55.0-1
). It's using ^
relaxed dependency of eslint
, so it should work with any newer versions of ESLint.
How it works
As the support of eslint.config.js
seems to be quite hard-coded in ESLint, this package proxies all exports of ESLint and installs this register beforehand. The register will swap some internal code of ESLint at runtime to make it work.
Disclaimer
It's only recommended to install this as top-level development dependency (user-aware). For plugin and library authors, it's ok to document the usage of this package for better DX. But we suggest avoiding having this as the dependency of your library or plugin, otherwise, take your own risk.
Troubleshooting
Is the Patch Working
This patch is designed to be as transparent as possible. If you want to verify if it's working, you can add DEBUG="eslint-ts-patch-bun"
environment variable to your command to see the debug logs.
➜ DEBUG="eslint-ts-patch-bun" bunx --bun eslint -v
eslint-ts-patch initialized +0ms
eslint-ts-patch patched lib/eslint/flat-eslint.js +59ms
v8.55.0
Sponsors
License
MIT License © 2023-PRESENT Anthony Fu