Skip to content

Releases

veslint v0.21.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 21:19
  • 8 rules of eslint-plugin-unicorn for spreads and redundant calls: unicorn/consistent-empty-array-spread, unicorn/no-immediate-mutation, unicorn/no-useless-collection-argument, unicorn/no-useless-fallback-in-spread, unicorn/no-useless-iterator-to-array, unicorn/no-useless-spread, unicorn/prefer-single-call and unicorn/prefer-spread.
  • 9 rules of eslint-plugin-unicorn for promises, async code and web APIs: unicorn/no-await-expression-member, unicorn/no-await-in-promise-methods, unicorn/no-invalid-fetch-options, unicorn/no-single-promise-in-promise-methods, unicorn/no-thenable, unicorn/no-unnecessary-await, unicorn/no-useless-promise-resolve-reject, unicorn/prefer-blob-reading-methods and unicorn/prefer-response-static-json.
  • They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.
  • Fixes:
    • The unicorn rules use TypeScript's types only when the parser has a program, as unicorn does (withTypeInformation): with projectService: false, some of them looked at the types all the same.
    • getStaticValue reads the value of a shorthand property ({method}) as the identifier it is.

veslint v0.20.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 18:49
  • 7 rules that @marcrock22/eslintcf turns on: array-callback-return, no-lonely-if, no-negated-condition, no-throw-literal and require-atomic-updates of ESLint core, and @typescript-eslint/class-methods-use-this and @typescript-eslint/no-explicit-any. They come with their options, fixes and suggestions, and pass the cases of their own tests.
  • The rules follow ESLint 10.15.0, typescript-eslint 8.72.2 and eslint-plugin-unicorn 79.0.0 (the versions of @marcrock22/eslintcf 0.0.1), instead of ESLint 10.6.0, typescript-eslint 8.62.0 and unicorn 64.0.0. 125 ported rules changed in those versions — new checks, messages, fixes and suggestions — and give what the new versions give; every rule passes the cases of its new upstream tests.
  • Renamed and removed rules: unicorn/no-array-for-each is now unicorn/no-for-each. unicorn/no-hex-escape is deprecated in unicorn 79 and reports nothing.
  • New options:
    • preserve-caught-error: errorClassNames.
    • no-unmodified-loop-condition: checkConditionalExpressions.
    • @typescript-eslint/await-thenable: allowMixedPromiseArrays.
    • @typescript-eslint/no-misused-promises: checksConditionals: { flagUnions }.
    • unicorn/switch-case-braces: "single-statement".
    • unicorn/prefer-ternary: checkVaryingBase and checkComputedMemberAccess.
    • unicorn/no-array-callback-reference: ignore.
    • unicorn/no-unreadable-array-destructuring: maximumIgnoredElements.
  • Changed defaults: unicorn/prefer-number-properties no longer checks NaN unless checkNaN is set.
  • Types in unicorn's rules: as unicorn 79 does when the parser has a program, the unicorn rules use TypeScript's types (arrays, strings, numbers, BigInts, sets…).
  • The project service lints a file from a program whose current directory is the one veslint runs in, as typescript-estree 8.72 does in a single run: from: "file" type specifiers are relative to it (with --fix, to the directory of the tsconfig, as before); veslint --server (the VS Code extension) does the same, so it gives what the command line gives.
  • Directive comments: __proto__ is a name like any other in /* global */ and /* exported */ comments (@eslint/plugin-kit 0.7.3). A comment that names @typescript-eslint/no-generated-empty-object-type or @typescript-eslint/no-unsafe-enum-assignment (new in typescript-eslint 8.72) no longer gets "Definition for rule … was not found.".
  • Scope: as typescript-eslint 8.72's scope manager, a global declared by several of TypeScript's libraries is a type and a value when any of them declares it so (the lib of the tsconfig), and the global scope starts at the start of the file.
  • Fixes:
    • @typescript-eslint/no-unnecessary-type-assertion overflowed the stack on a recursive generic type.
    • prefer-const takes every let declaration of a name declared more than once (TypeScript rejects it, ESLint lints it), as ESLint does: a name declared by a const and then by a let is reported, and a name declared by two lets is reported once for each.
    • @typescript-eslint/prefer-readonly and @typescript-eslint/prefer-return-this-type warned that a node was not analyzed on a declare class.
    • Grammar: after the block of an arrow function and a line break, an operator, template or regular expression starts a new statement, as in TypeScript.
  • Development: the ESLint processes of tests/rules/reference.sh and cross.sh lint at most 15 files each (typescript-eslint 8.72 keeps a program per project).

veslint v0.19.1

Choose a tag to compare

@github-actions github-actions released this 14 Nov 16:23
  • VS Code extension: the open files are linted again when another file changes. A problem that came from the types of another file (@typescript-eslint/no-unsafe-return on a type made any there, say) stayed in the editor after that file was fixed, until the file was edited, though the command line no longer gave it. Now, when a file changes (as you type, when it is saved, or on disk), the other open files of its folder are linted again after it: those on screen at once, the others when they are shown.

veslint v0.19.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 05:25
  • 8 rules of eslint-plugin-unicorn for array lengths and indexes: unicorn/consistent-existence-index-check, unicorn/explicit-length-check, unicorn/no-unnecessary-array-flat-depth, unicorn/no-unnecessary-array-splice-count, unicorn/no-unnecessary-slice-end, unicorn/no-unreadable-array-destructuring, unicorn/no-useless-length-check and unicorn/prefer-set-size. They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.

veslint v0.18.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 04:09
  • 12 rules of eslint-plugin-unicorn for array methods and callbacks: unicorn/no-array-callback-reference, unicorn/no-array-for-each, unicorn/no-array-method-this-argument, unicorn/no-array-reverse, unicorn/no-array-sort, unicorn/no-new-array, unicorn/prefer-array-flat, unicorn/prefer-array-flat-map, unicorn/prefer-array-index-of, unicorn/prefer-array-some, unicorn/prefer-negative-index and unicorn/require-array-join-separator. They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.

veslint v0.17.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 03:27
  • 5 rules of eslint-plugin-unicorn for math and coercion: unicorn/prefer-math-min-max, unicorn/prefer-math-trunc, unicorn/prefer-modern-math-apis, unicorn/prefer-native-coercion-functions and unicorn/require-number-to-fixed-digits-argument. They come with their fixes and suggestions, and pass the cases of unicorn's own tests.
  • Development: tests/rules/reference.sh and tests/rules/cross.sh run ESLint in parallel (JOBS, the CPUs by default).

veslint v0.16.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 01:04
  • 13 rules of eslint-plugin-unicorn for strings and numbers: unicorn/consistent-template-literal-escape, unicorn/escape-case, unicorn/no-console-spaces, unicorn/no-hex-escape, unicorn/no-zero-fractions, unicorn/prefer-bigint-literals, unicorn/prefer-code-point, unicorn/prefer-number-properties, unicorn/prefer-string-raw, unicorn/prefer-string-replace-all, unicorn/prefer-string-slice, unicorn/prefer-string-trim-start-end and unicorn/text-encoding-identifier-case. They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.
  • Fix (grammar): a number that starts with a dot at the start of a line (a⏎.5) continued the statement before it, where JavaScript ends that statement.

veslint v0.15.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 22:48
  • 12 rules of eslint-plugin-unicorn for errors and built-ins: unicorn/consistent-assert, unicorn/consistent-date-clone, unicorn/custom-error-definition, unicorn/error-message, unicorn/new-for-builtins, unicorn/no-instanceof-builtins, unicorn/no-new-buffer, unicorn/no-useless-error-capture-stack-trace, unicorn/prefer-date-now, unicorn/prefer-structured-clone, unicorn/prefer-type-error and unicorn/throw-new-error. They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.
  • Fix (grammar): new at the end of a line (return new⏎Foo(), or with a comment after new) was read as a name, which ended the statement there. Two cases of typescript-eslint's own tests that were listed as known differences now pass.

veslint v0.14.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 21:29
  • 12 rules of eslint-plugin-unicorn for conditions and switches: unicorn/no-lonely-if, unicorn/no-negated-condition, unicorn/no-negation-in-equality-check, unicorn/no-nested-ternary, unicorn/no-typeof-undefined, unicorn/no-useless-switch-case, unicorn/prefer-logical-operator-over-ternary, unicorn/prefer-simple-condition-first, unicorn/prefer-switch, unicorn/prefer-ternary, unicorn/switch-case-braces and unicorn/switch-case-break-position. They come with their options, fixes and suggestions, and pass the cases of unicorn's own tests.
  • Rule options: the minimum and maximum keywords of a rule's schema are now validated, as ESLint does.
  • The README is shorter: install, usage, configuration and the list of supported rules.
  • Development: make test runs its slow checks in parallel (JOBS, the CPUs by default): about 18 minutes instead of 45 on four CPUs.

veslint v0.13.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 20:31
  • The VS Code extension is on the Visual Studio Marketplace as MARCROCK22.veslint, with the veslint logo. A .vsix installed from an earlier release has the identifier veslint.veslint: uninstall it, so that only one runs.
  • veslint: Update veslint downloads the latest release for Linux x64 or Windows x64, with the TypeScript 7 compiler it runs, into the extension's storage, and lints with it from then on (unless veslint.path is set). When the extension cannot run veslint, it offers to download it.
  • Update notice: at most once a day, the extension looks for a newer release and asks whether to install it, with Update, Release Notes or Skip This Version. Nothing is installed without asking; veslint.checkForUpdates turns the check off.
  • veslint --version prints the version.
  • The text of each GitHub release is its section of this changelog.