tslint-to-eslint-config

Converts your TSLint configuration to the closest possible ESLint equivalent. 🚀

MIT License

Downloads
108.3K
Stars
829
Committers
57

Bot releases are hidden (Show)

tslint-to-eslint-config - v2.4.0: Angular Rules Fixups

Published by JoshuaKGoldberg over 3 years ago

This minor release includes a few rule touchups in preparation for Angular v12.

  • #1050: feat: changes to some angular-eslint rules for v12

Thanks @JamesHenry for sending in the PR!

tslint-to-eslint-config - v2.3.0: An Angular Notice

Published by JoshuaKGoldberg over 3 years ago

This release contains an assortment of new rules or fixes for rule ports from codelyzer to angular-eslint, as well as a more explicit notice in our README.md to use the native angular-eslint tooling for setting up typescript-eslint on Angular projects. (tip: do that!)

We also have a new rule ported from tslint-microsoft-contrib and a bugfix for no-param-reassign's converter.

Contains:

  • #988: Fix codelyzer template-accessibility-label-for converter
  • #986: Add codelyzer contextual-decorator converter
  • #987: Add codelyzer template-i18n converter
  • #959: Added angular-eslint notice to README.md
  • #1008: Added mocha-avoid-only converter
  • #1016: Fixed no-param-reassign converter to not have prefix

Cheers to the co-maintainers who worked on these changes: @KingDarBoja and @JoshuaKGoldberg!

tslint-to-eslint-config - v2.2.0: Much More Angular

Published by JoshuaKGoldberg over 3 years ago

It's almost springtime! To celebrate, we've added a rule merger for jsx-no-bind and set of Angular-specific rules that were added to angular-eslint since our first big Angular push.

  • Add missing jsx-no-bind rule merger #933
  • Add codelyzer template-accessibility-alt-text converter #968
  • Add codelyzer template-accessibility-elements-content converter #969
  • Add codelyzer template-click-events-have-key-events converter #970
  • Add codelyzer template-accessibility-valid-aria converter #971
  • Add codelyzer template-accessibility-table-scope converter #972
  • Add codelyzer template-accessibility-label-for converter #973
  • Add codelyzer template-mouse-events-have-key-events converter #974
  • Add codelyzer template-no-distracting-elements converter #975
  • Add codelyzer template-conditional-complexity converter #976
  • Add codelyzer template-no-any converter #977
  • Add codelyzer template-use-track-by-function converter #978

Many thanks to @highvolt-dev for all the Angular rules, as well as @KingDarBoja for co-maintaining and adding the rule merger!

tslint-to-eslint-config - v2.1.0: JSX errata; removed use-pipe-decorator

Published by JoshuaKGoldberg almost 4 years ago

Happy belated holidays and new year, everyone! This release contains a few additional jsx rule converters, as well as a bugfix for no-shadow conversion and a removal of now-unnecessary @angular-eslint/use-pipe-decorator rule from conversion.

  • Used typescript-eslint's no-shadow in conversion #860
  • Added jsx-space-before-trailing-slash converter #861
  • Added converter for jsx-self-close rule #862
  • Added converter for jsx-no-lambda #863
  • Added converter for jsx-ban-props #864
  • refactor: remove use-pipe-decorator converter #924

Many thanks to @rafaelss95, the community contributor behind #924!

tslint-to-eslint-config - v2.0.1: Pins and Missing File Reporting

Published by JoshuaKGoldberg almost 4 years ago

This release has but a few small changes for edge cases and dependency bumps. The dependency bumps include a version of cson-parser with a pinned version of the coffeescript dependency (see #839). Many thanks to co-maintainer-extraordinaire @KingDarBoja for working with our friends coming from Angular land to identify and push on the cson-parser versioning issues!

Otherwise, this just contains two behavior improvements:

  • #827: Added explicit error for a missing TSLint configuration file
  • #837: Added explicit error for TSLint not being found
tslint-to-eslint-config - v2.0.0: Stable Node APIs

Published by JoshuaKGoldberg almost 4 years ago

Version 2.0! Hooray! 🎊

This release marks the stabilization of the package's Node API, as introduced in the v2.0.0-beta* releases. We're already seeing great usage of the APIs in the angular-eslint schematic.

This stable release adds a comment conversion API alongside the configuration file API released in the betas, as well as a couple missing RxJS rule converters::

  • #809: rxjs-no-implicit-any-catch
  • #798: rxjs-no-unsafe-takeuntil and fix in rxjs-no-async-subscribe
  • #821: Added convertFileComments API

Thanks to this release's community contributor @criskrzysiu!

tslint-to-eslint-config - v2.0.0-beta3: Node API; RxJS; Editor Opt-in

Published by JoshuaKGoldberg almost 4 years ago

Yes, that's right, beta three. After three testing betas from the Node API branch in #732, we're releasing a v2 beta under the stable tag on npm to let people try it out. This will most likely be the same set of features and API changes as the full 2.0 release, but just in case, we're keeping it as a beta tag now.

This release contains a ton of goodness, much of which comes from the efforts of community contributor @criskrzysiu sending a ton of issues and subsequent PRs for rxjs rules. Much appreciated!

Two additional major changes are included:

  • Editor conversion is now opt-in, and can now also support Atom configs.
  • A Node API is available to run individual portions of the package's logic.

The full list of user-facing changes in this release are:

  • #728: Opt-in Atom editor conversion
  • #732: Added Node API
  • #755: Used JSON5 for config file parsing
  • #792: Added Codelyzer template-no-autofocus converter
  • #799: rxjs-no-unsafe-subject-next
  • #800: rxjs-no-unbound-methods
  • #801: rxjs-no-subject-value
  • #802: rxjs-no-subject-unsubscribe
  • #803: rxjs-no-sharereplay
  • #804: rxjs-no-redundant-notify
  • #805: rxjs-no-nested-subscribe
  • #806: rxjs-no-internal
  • #807: rxjs-no-index
  • #808: rxjs-no-ignored-takewhile-value
  • #810: rxjs-no-ignored-replay-buffer
  • #811: rxjs-no-ignored-notifier
  • #812: rxjs-no-create
  • #816: Exported lint rule types for Node APIs

Many thanks to all the code contributors for the PRs shipped in this release!

  • @criskrzysiu
  • @JoshuaKGoldberg
  • @KingDarBoja
tslint-to-eslint-config - v1.5.0: Informed Comment Conversions

Published by JoshuaKGoldberg about 4 years ago

Behold, at long last: an intelligent system for converting tslint:disable comments to their eslint-disable counterparts!

Prior to this release, tslint-to-eslint-config would directly convert rule names from comments without factoring in the project's TSLint configuration. This was fine in most cases but would occasionally result in a surprising rule name in the cases of TSLint rules that map to different ESLint rules based on their configuration.

As of this release, tslint-to-eslint-config will cache rule conversions from looking at a project's original TSLint configuration and use them to inform comment conversions when possible. This should cover the vast majority of the dynamic comment conversions for most users. Although it's possible that comments refer to rules not present in the original TSLint configuration, we expect this to be applicable for exceedingly few users.

This release also includes a bugfix for the indent rule converter when set to tabs.

  • #712: Factored config rule conversions into comment conversions
  • #720: Fix invalid indent rule when using tabs

Many thanks to this release's external contributor, @kuzivany!

tslint-to-eslint-config - v1.4.0: Plugin Inclusions and Comment Defaults

Published by JoshuaKGoldberg about 4 years ago

This release most notably fixes a bug in generated configurations that prevented plugins such as eslint-plugin-import from being included in the configuration file. It also allows --comment globs to specify or reuse TypeScript files and adds a notice for incompatible arguments in the arrow-return-shorthandconverter.

  • #681: Add notice to arrow-return-shorthand converter
  • #706: Added missing output plugins to configuration file
  • #707: Defaulted --comment globs to --typescript settings
  • #713: Allowed passing a tsconfig.json to --comments

These issues were tackled by the repository's maintainers, @JoshuaKGoldberg and @KingDarBoja.

tslint-to-eslint-config - v1.3.0: Naming Conventions and Editor Settings Clarity

Published by JoshuaKGoldberg about 4 years ago

Hot on the heels of 1.2.0 comes our new 1.3.0 release with two quality of life improvements:

  • #652: Added editor settings converter for tslint.configFile, with full settings access
  • #674: Add naming-convention merger

These should reduce the amount of logs output for most conversions. They were authored by the library's core maintainers:

  • @JoshuaKGoldberg
  • @KingDarBoja
tslint-to-eslint-config - v1.2.0: CLI Fixes; tslint-react Recognition

Published by JoshuaKGoldberg about 4 years ago

This release introduces recognition for mapping between an original configuration's use of tslint-react to the new eslint-plugin-react, as well as a few new rule converters. Exciting! It also comes with a fix for CLI parsing that was introduced by a breaking change in a dependency.

  • #654: Add jsx-no-bind rule
  • #656: Recognize tslint-react as an extended ruleset
  • #658: Adding the rule converter for jsx-wrap-multiline
  • #669: fix: Convert options for no-inferrable-types
  • #672: Used commander's .opts() to parse raw argv

Thanks as always to our contributors!

  • bhavinkotak07
  • KingDarBoja
  • rami6
  • sakshi-gupta95
  • yasarsid
  • yasarsid
tslint-to-eslint-config - v1.1.0: React Progress

Published by JoshuaKGoldberg about 4 years ago

This release marks the first minor version since the 1.0 stable release. It comes with a group of converters for the community React rules, and a few assorted bugfixes.

  • improve type safety with regards to config files #601
  • Added jsx-boolean-value converter #615
  • refactor: ban-ts-ignore converter to ban-ts-comment #616
  • fix: converters now uses naming-convention #617
  • Added jsx-curly-spacing converter #636
  • Added jsx-equals-spacing converter #637
  • Added jsx-key converter #638
  • Quote wildcards for shell command #644
  • fix: do not convert next-line to line for comments #648
  • Ignore all unknown editor settings in conversion #650

Many thanks to all our contributors!

  • @bbarry
  • @danvk
  • @KingDarBoja
tslint-to-eslint-config - v1.0.0: Stable Release!

Published by JoshuaKGoldberg about 4 years ago

Hooray! 🎉

This release marks the stable 1.0 version of tslint-to-eslint-config. After a long waiting period of beta versions, this contains just the one bug fix to bring the library to stability:

  • #586: Fixed crash when ESLint rule has multiple rule arguments
tslint-to-eslint-config - v1.0.0-beta2: Case Sensitivity and "Completed" Angular

Published by JoshuaKGoldberg over 4 years ago

Thanks to an issue with case sensitivity in the 1.0.0-beta1 release, we're releasing this new beta quickly.

It also includes converters for the remaining Codelyzer TSLint rules that have angular-eslint ESLint equivalents. See the Angular Support project for the list of rules that are blocked or completed.

This release contains commits from the repository maintainers: @JoshuaKGoldberg and @KingDarBoja.

tslint-to-eslint-config - v1.0.0-beta1: Cleaner Outputs; Starting on Angular

Published by JoshuaKGoldberg over 4 years ago

This one's another big release! Thanks to users of the first 1.0 beta, there were enough important issues discovered that a second 1.0 beta seems appropriate.

In addition to bugfixes and slight improvements to the CLI and configuration file outputs, this release marks the start of our dedicated push for Angular ("Codelyzr") rule migrations. About a quarter of the known existing rules have been converted. Expect more in subsequent 1.X versions!

Many thanks to all our contributors:

  • KingDarBoja
  • nschonni
  • rwaskiewicz

Additionally, I'm personally thrilled to welcome @KingDarBoja as a new repository maintainer to help push the repository forward! 💪 @KingDarBoja has contributed to practically every released version for the last few months and recently cranked out a great deal of Angular rule converters. I'm excited to see what we'll accomplish post-1.0.

The full list of relevant changes in this version is:

  • #422: Add no-unused-variable converter
  • #432: Add codelyzer component-class-suffix converter
  • #441: fix: Missing domain in error messages
  • #443: Allowed --comments not to be provided
  • #444: Corrected Prettier plugin inclusion in config files
  • #446: Stopped logging package notice when none are missing
  • #448: Don't output ESLint rules that match extended configurations
  • #450: Prefer @typescript-eslint/no-unused-expression
  • #451: Add codelyzer component-max-inline-declarations converter
  • #452: Add codelyzer component-selector converter
  • #454: Prefer @typescript-eslint/dot-notation to native ESLint version
  • #456: Add codelyzer contextual-lifecycle converter
  • #457: Add codelyzer directive-class-suffix converter
  • #458: Add codelyzer directive-selector converter
  • #459: Add codelyzer no-attribute-decorator converter
  • #460: Add codelyzer use-pipe-decorator converter
  • #529: Add codelyzer no-forward-ref converter
  • #530: Add codelyzer no-host-metadata-property converter
  • #531: Add codelyzer no-input-prefix converter
  • #532: Add codelyzer no-input-rename converter
  • #533: Add codelyzer no-inputs-metadata-property converter
  • #536: Corrected --comment/--comments spelling
  • #538: Add codelyzer no-conflicting-lifecycle converter
  • #539: Stopped writing empty root members in output configurations
tslint-to-eslint-config - v1.0.0-beta: Experimental --comments support

Published by JoshuaKGoldberg over 4 years ago

This one's a big one! Thanks to a PR from @KingDarBoja, a new --comment flag is now experimentally available to convert TSLint inline rule flags:

// tslint:disable-next-line no-floating-promises

...to their ESLint equivalents:

// eslint-disable-line @typescript-eslint/no-floating-promises
  • #246: [Experimental Feature] Opt in flag convert disable comments
tslint-to-eslint-config - v0.7.1: Cleaner Package Outputs

Published by JoshuaKGoldberg over 4 years ago

This patch release, hot off the press from 0.7.0, comes with a new rule converter and more intelligent package install commands. Previous versions would suggest installing all new packages related to ESLint and/or typescript-eslint. This release will only suggest packages that don't exist in your package.json.

The full list of released PRs is:

  • Add one-line rule converter #413
  • Removed already-installed packages from install command #424

Thanks as usual to this release's dedicated external contributor, @KingDarBoja!

Screenshot of the new trim CLI output

tslint-to-eslint-config - v0.7.0: CLI Improvements and --prettier

Published by JoshuaKGoldberg over 4 years ago

This v0.7.0 brings us much closer to completing the 1.0 milestone. It's got a few converter and merger fixes along with a hefty dose of CLI output improvements. The CLI output is now more consistent from area-to-area and keeps detailed log output to the generated ./tslint-to-eslint-config.log. It'll also be more aggressive in asking to install packages if it fails to read from existing configuration files due to a package not being installed.

Additionally, a new --prettier flag will now indicate to include eslint-config-prettier in generated rulesets. It's enabled by default if no formatting rules already exist; otherwise, the CLI will strongly recommend using it.

Screenshot of the new CLI output, including --prettier

The full list of changes is:

  • #368: Support a converter for no-reference-import rule
  • #385: Add merger for @typescript-eslint/consistent-type-assertions
  • #386: Adjusted comment-format's check-space output for markers
  • #405: Used package install command for list of required ESLint-related packages
  • #408: Standardized outputs: CLI summaries, log details
  • #409: Added tslint-eslint-plugin package as necessary to install commands
  • #412: Added recommended --prettier flag to include eslint-config-prettier
  • #418: Corrected 'tslint-eslint-plugin' to be 'eslint-plugin-tslint'
  • #419: Intentionally fail fast on module lookup failures
  • #420: Added basic @typescript-eslint/triple-slash-reference merger

Thanks as always to our great contributors!

  • @KingDarBoja
  • @mattleff
  • @moznion
tslint-to-eslint-config - v0.6.0: FAQ Links

Published by JoshuaKGoldberg over 4 years ago

This new minor version release adds an FAQ notice explaining the generated ESLint file, which starts this project's journey towards better documenting best practices for generated configurations. Hooray!

In total, it contains:

  • #238: [Feature] Add jsdoc-format converter
  • #337: Add no-boolean-literal-compare converter
  • #347: Fix arrow-parens converter
  • #348: Added usage and base configuration FAQs
  • #351: chore: set minimum node version to 10
  • #353: Respect the original TSLint configuration of ban-types

Many thanks to our community contributors!

  • @KingDarBoja
  • @moznion
  • @Zip753
tslint-to-eslint-config - v0.5.2: Happy Valentine's Day!

Published by JoshuaKGoldberg over 4 years ago

This release celebrates our collective love of linting JavaScript & TypeScript code! 💖

  • #323: Change notice behavior for trailing-comma esSpecCompliant
  • #326: Set strict Node engine requirement on package
  • #332: Fix space-within-parens with option 0
  • #336: Fixed member-access converter for option length 1

Great appreciation and love to this version's contributors:

  • @KingDarBoja
  • @MatthiasKunnen
Package Rankings
Top 1.45% on Npmjs.org
Top 6.68% on Proxy.golang.org
Badges
Extracted from project README
Code Style: Prettier NPM version Circle CI Join the chat at https://gitter.im/tslint-to-eslint-config/community Speed: Blazingly Fast