@jellydn/eslint-fixer
v0.3.1
Published
<h1 align="center">Welcome to @jellydn/eslint-fixer ๐</h1>
Downloads
25
Maintainers
Readme
Prerequisites
- Node.js >= 18.20.0 or later
Motivation
We will continue to use @typescript-eslint/parser
and @typescript-eslint/eslint-plugin
to lint TypeScript files until this issue โ๏ธ Type-aware linter ยท Issue #3187 ยท biomejs/biome is resolved.
Enabled rules
The following rules are enabled to effectively lint TypeScript files:
{
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-redundant-type-constituents": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
"@typescript-eslint/require-await": "error"
}
Usage
# Install eslint-fixer
npm install -g @jellydn/eslint-fixer
# Or Run eslint-fixer
npx @jellydn/eslint-fixer "examples/**/*.ts,examples/**/*.tsx"
How to use with Neovim
To use eslint-fixer with lazy.nvim and nvim-lint, you should define as a custom linter:
return {
{
"mfussenegger/nvim-lint",
event = "VeryLazy",
opts = {},
init = function()
-- Register customer linter
require("lint").linters.eslint_fixer = {
name = "eslint_fixer",
cmd = "eslint-fixer", -- e.g: npm install -g @jellydn/eslint-fixer
stdin = false,
stream = "stdout",
ignore_exitcode = true,
parser = function(output, bufnr)
local trimmed_output = vim.trim(output)
if trimmed_output == "" then
return {}
end
-- Skip if Parsing error on output
if string.match(trimmed_output, "Parsing error") then
return {}
end
-- Parse output base on Eslint errorformat
local diagnostic = require("lint.parser").from_errorformat("%f %l:%c %m", {
error = vim.diagnostic.severity.ERROR,
})(trimmed_output, bufnr)
return diagnostic
end,
}
end,
config = function(_, opts)
-- Your setup here
end,
keys = {
{
-- Run lint by name
"<leader>rl",
function()
local items = {
-- Eslint fixer
"eslint_fixer", -- npm install -g @jellydn/eslint-fixer
}
vim.ui.select(items, {
prompt = "Select Linter to run",
}, function(choice)
if choice ~= nil then
run_linter_by(choice)
end
end)
end,
desc = "Run Nvim Lint",
}
}
},
}
GitHub Actions
To use eslint-fixer in GitHub Actions, follow these steps:
name: ESLint Fixer
on:
push:
branches:
- main
jobs:
eslint-fixer:
name: ESLint Fixer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npx --yes @jellydn/[email protected] "examples/**/*.ts" # change to the latest release
oxlint:
name: Lint JS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npx --yes [email protected] --deny-warnings # change to the latest release
quality:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
version: latest
- name: Run Biome
run: biome ci .
How to publish
make release
Resources
- Linting with Type Information | typescript-eslint
- jellydn/biome-interactive: Simple interactive to install biome to your project. Migrate from ESLint and Prettier with a single command
Author
๐ค Dung Huynh
Show your support
Give a โญ๏ธ if this project helped you!