eslint-plugin-airtight
v2.0.0
Published
A collection of additional `eslint` rules, initially derived from [eslint-plugin-sinful](https://github.com/FauxFaux/eslint-plugin-sinful).
Downloads
4,594
Readme
eslint-plugin-airtight
A collection of additional eslint
rules, initially derived from
eslint-plugin-sinful.
Rules
export-inline
Stylistic. Tranforms "declare at top" exports into "inline" exports.
In:
export { foo }; function foo(...
Out:
export function foo(...
param-types
Migration. Can be configured to add a type to any parameter by name,
e.g. to ensure all your user
parameters are labelled with the UserDTO
type.
Config:
{ "user": ["./lib/dtos", "UserDTO"] }
In:
function foo(user, name: string) {`
Out:
import type { UserDTO } from '../../../lib/dtos';
function foo(user: User, name: string) {
return-await
Bug finder. Finds worrying catch blocks without making your code invalid, unlike upstream's version.
In:
try { return fooAsync(); }
catch (err) { /* never called */ }
Out:
try { return await fooAsync(); }
catch (err) { /* now called */ }
sequelize-comment
Feature. Adds the path/function to sequelize calls, such that some comment plugin could read them out and put them into the query.
In:
models.Potato.findOne({ where: { id } })
Out:
models.Potato.findOne({
comment: 'lib/potato/read.ts:getById',
where: { id },
})
unbounded-concurrency
Bug finder. Discourages the use of promise machinery which will result in resource starvation for other requests.
In:
return await Promise.all(longList.map((v) => someFunc(v)));
Out:
import { pMap } from 'p-map';
return await pMap(longList, (v) => someFunc(v), { concurrency: 6 });