Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.0.0 breaking changes #2330

Merged
merged 16 commits into from Aug 29, 2020
Merged

v4.0.0 breaking changes #2330

merged 16 commits into from Aug 29, 2020

Commits on Aug 29, 2020

  1. Configuration menu
    Copy the full SHA
    17edfeb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4dd244 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0ce7302 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    dc03300 View commit details
    Browse the repository at this point in the history
  5. feat(eslint-plugin): [ban-ts-comment] change default for `ts-expect-e…

    …rror` to `allow-with-description` (#2351)
    
    BREAKING CHANGE:
    
    Default rule options is a breaking change.
    Fixes #2146
    bradzacher committed Aug 29, 2020
    Configuration menu
    Copy the full SHA
    7081320 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0276347 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    26e2155 View commit details
    Browse the repository at this point in the history
  8. fix: correct decorator traversal for AssignmentPattern (#2375)

    BREAKING CHANGE:
    - Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
    - Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.
    bradzacher committed Aug 29, 2020
    Configuration menu
    Copy the full SHA
    3c2625a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    89404f9 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    73d605d View commit details
    Browse the repository at this point in the history
  11. feat(eslint-plugin): [no-unnecessary-condition][strict-boolean-expres…

    …sions] add option to make the rules error on files without `strictNullChecks` turned on (#2345)
    bradzacher committed Aug 29, 2020
    Configuration menu
    Copy the full SHA
    f5adf22 View commit details
    Browse the repository at this point in the history
  12. feat(typescript-estree): switch to globby (#2418)

    Fixes #2398
    
    If the user has a particularly large node_modules folder and uses globs for `parserOption.project`, then the `glob` library can spend a decent chunk of time searching the `node_modules` folder.
    In some cases, this can be on the order of hundreds to thousands of milliseconds.
    This wouldn't be a problem, but for safety and correctness during a persistent parse, we have to do this check for every call to the parser (i.e. every file that's being linted).
    Over a whole project, this can easily add up to many, many seconds wasted.
    
    Previously, we:
    - applied the project globs, one by one
    - then manually excluded `tsconfig`s from the list.
    
    This meant that we are always slow. I remember I did this because I had issues getting `glob`'s `ignore` option to work at all.
    
    ## The solution
    
    `globby` is a better glob library:
    - it accepts an array of globs, which saves us doing manual looping
    - it supports exclusion globs (globs prefixed with `!`), which  are evaluated as part of the glob process
    - it has caching built in by default
    
    This allows us to evaluate all of the `project` globs at once, as opposed to one at a time (so should be less duplicated work).
    This also allows us to evaluate the `projectFolderIgnoreList` at the same time as the `project` globs (so should be no useless work done).
    
    All of these together should cut the glob evaluation time down to ~50ms for the first parse, and ~2ms for each parse after that (due to caching).
    For comparison, previously, in bad cases we would spend ~3-500ms, per project, per parsed file.
    
    Example to illustrate how much faster this can potentially be:
    For a project that provides 2 globs and has 100 files.
    Before: 300ms * 2 * 100 = 60,000ms (60s)
    After: 50ms + 2 * 100 = 250ms
    
    This should also save a non-trival amount of time in other, more optimal setups.
    
    BREAKING CHANGE:
    - removes the ability to supply a `RegExp` to `projectFolderIgnoreList`, and changes the meaning of the string value from a regex to a glob.
    bradzacher committed Aug 29, 2020
    Configuration menu
    Copy the full SHA
    2c632c1 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    63c8d09 View commit details
    Browse the repository at this point in the history
  14. chore: update dependencies

    bradzacher committed Aug 29, 2020
    Configuration menu
    Copy the full SHA
    497adb9 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a257183 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    2a75bb1 View commit details
    Browse the repository at this point in the history