Skip to content
This repository has been archived by the owner on Aug 25, 2023. It is now read-only.

snyk/eslint-plugin-sinful

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eslint-plugin-sinful

Some rules are just not clean enough for upstream.

At least, according to upstream. We love all rules equally.

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 });

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%