Skip to content

Releases: lint-staged/lint-staged

v15.5.0

12 Mar 14:51
Compare
Choose a tag to compare

Minor Changes

  • #1526 630af5f Thanks @iiroj! - Lint-staged no longer resets to the original state when preventing an empty git commit. This happens when your configured tasks reset all the staged changes, typically when trying to commit formatting changes which conflict with your linter setup like ESLint or Prettier.

    Example with Prettier

    By default Prettier prefers double quotes.

    Previously

    1. Stage file.js with only double quotes " changed to '
    2. Run git commit -am "I don't like double quotes"
    3. Lint-staged runs prettier --write file.js, converting all the ' back to "
    4. Because there are now no changes, lint-staged fails, cancels the commit, and resets back to the original state
    5. Commit was not done, original state is restored and single quotes ' are staged

    Now

    1. Stage file.js with only double-quotes " changed to '
    2. Run git commit -am "I don't like double quotes"
    3. Lint-staged runs prettier --write file.js, converting all the ' back to "
    4. Because there are now no changes, lint-staged fails and cancels the commit
    5. Commit was not done, and there are no staged changes

v15.4.3

26 Jan 14:19
Compare
Choose a tag to compare

Patch Changes

  • #1512 cbfed1d Thanks @tarik02! - Adjust TypeScript types for the default export so that it can be used as a value without error TS2693.

v15.4.2

23 Jan 11:21
aef9e5c
Compare
Choose a tag to compare

Patch Changes

  • #1509 8827ebf Thanks @iiroj! - Change lint-staged's dependencies to use caret (^) ranges instead of tilde (~). This makes it easier for package managers to perform dependency management when minor-level updates are also permitted instead of just patch-level.

v15.4.1

16 Jan 18:03
1c93c9e
Compare
Choose a tag to compare

Patch Changes

  • #1504 1c7a45e Thanks @iiroj! - Default TypeScript config filenames match JS equivalents.

  • #1504 9cc18c9 Thanks @iiroj! - Add missing conditional exports syntax for TypeScript types.

v15.4.0

16 Jan 06:22
7ff1e58
Compare
Choose a tag to compare

Minor Changes

  • #1500 a8ec1dd Thanks @iiroj! - Lint-staged now provides TypeScript types for the configuration and main Node.js API. You can use the JSDoc syntax in your JS configuration files:

    /**
     * @filename: lint-staged.config.js
     * @type {import('lint-staged').Configuration}
     */
    export default {
      '*': 'prettier --write',
    }

    It's also possible to use the .ts file extension for the configuration if your Node.js version supports it. The --experimental-strip-types flag was introduced in Node.js v22.6.0 and unflagged in v23.6.0, enabling Node.js to execute TypeScript files without additional configuration.

    export NODE_OPTIONS="--experimental-strip-types"
    
    npx lint-staged --config lint-staged.config.ts

Patch Changes

  • #1501 9b79364 Thanks @iiroj! - Handle possible failures when logging user shell for debug info.

v15.3.0

28 Dec 10:54
703002a
Compare
Choose a tag to compare

Minor Changes

  • #1495 e69da9e Thanks @iiroj! - Added more info to the debug logs so that "environment" info doesn't need to be added separately to GitHub issues.

  • #1493 fa0fe98 Thanks @iiroj! - Added more help messages around the automatic git stash that lint-staged creates as a backup (by default). The console output also displays the short git hash of the stash so that it's easier to recover lost files in case some fatal errors are encountered, or the process is killed before completing.

    For example:

    % npx lint-staged
    βœ” Backed up original state in git stash (20addf8)
    βœ” Running tasks for staged files...
    βœ” Applying modifications from tasks...
    βœ” Cleaning up temporary files...
    

    where the backup can be seen with git show 20addf8, or git stash list:

    % git stash list
    stash@{0}: lint-staged automatic backup (20addf8)
    

v15.2.11

10 Dec 14:00
1d39241
Compare
Choose a tag to compare

Patch Changes

  • #1484 bcfe309 Thanks @wormsik! - Escape paths containing spaces when using the "shell" option.

  • #1487 7dd8caa Thanks @iiroj! - Do not treat submodule root paths as "staged files". This caused lint-staged to fail to a Git error when only updating the revision of a submodule.

v15.2.10

01 Sep 14:22
Compare
Choose a tag to compare

Patch Changes

v15.2.9

13 Aug 05:44
0ce5e14
Compare
Choose a tag to compare

Patch Changes

  • #1463 b69ce2d Thanks @iiroj! - Set the maximum number of event listeners to the number of tasks. This should silence the console warning MaxListenersExceededWarning: Possible EventEmitter memory leak detected.

v15.2.8

03 Aug 06:32
52f6eef
Compare
Choose a tag to compare

Patch Changes

  • f0480f0 Thanks @iiroj! - In the previous version the native git rev-parse --show-toplevel command was taken into use for resolving the current git repo root. This version switched the --show-toplevel flag with --show-cdup, because on Git installed via MSYS2 the former was returning absolute paths that do not work with Node.js child_process. The new flag returns a path relative to the working directory, avoiding the issue.

    The GitHub Actions workflow has been updated to install Git via MSYS2, to ensure better future compatibility; using the default Git binary in the GitHub Actions runner was working correctly even with MSYS2.