microsoft / dtslint

A utility built on TSLint for linting TypeScript declaration (.d.ts) files.
MIT License
925 stars 86 forks source link

Migrate from TSLint to ESLint #214

Open Ethan-Arrowood opened 5 years ago

Ethan-Arrowood commented 5 years ago

Per TypeScript's official move to supporting ESLint, I believe this library should migrate as well.

I haven't had a chance to look at the source code for dtslint yet. If a maintainer believes this is a somewhat simple change I'm happy to work on it. If they believe it would be a major overhaul then I'd rather let a maintainer with a deeper understanding of the module make the change.

sandersn commented 5 years ago

The main requirement for this switch is good knowledge of tslint, eslint and how to port rules. Only @uniqueiniquity has the knowledge on our team, so I'll have to acquire it to make this happen myself.

A lot of the rules aren't even very good lint rules, in that they do NOT walk the tree, just do some full-text searches and log errors.

We on the typescript team are not going to put any time into the switch until after Typescript itself has moved to eslint. I think this is a fine task for a contributor who wants to make it happen sooner rather than later. You'll want to check out https://github.com/sandersn/dtslint-runner, which just runs dtslint on all of Definitely Typed. It makes it easier to make sure that DT passes with no breaks on the ESLint port.

Note that dtslint uses tslint:all but I have been meaning to turn that off. In other words, the set of eslint rules doesn't need to be completely as strict as the tslint set.

Ethan-Arrowood commented 5 years ago

Thank you for the reply @sandersn! Yeah I totally understand that this is a big ask and shouldn't be a priority right now. Always good to get the idea out there so others can land on it if they have similar questions that I do. I found this alternate definition testing library that suites my current needs: https://github.com/SamVerschueren/tsd Thanks for all the incredible work you and the TS team are doing 👍

43081j commented 5 years ago

I'm happy to contribute the conversion if I get time. I've been spending a lot of time in ESLint recently so could be nice to give it a go.

Will push a branch up when I get around to it.

FYI its not quite possible yet because the typescript-eslint team pushed incompatible types so plugins aren't possible without some hacky bits. I'll continue my branch once they sort that out.