Putout Versions Save

🐊 Pluggable and configurable JavaScript Linter, code transformer and formatter, drop-in ESLint superpower replacement 💪 with built-in support for js, jsx typescript, flow, markdown, yaml and json. Write declarative codemods in a simplest possible way 😏

v35.19.0

4 weeks ago

🐞 fix

  • b47fc0082 eslint-plugin-putout: long-properties-destructuring: ImportDeclaration: no imported

🔥 feature

  • 06c23903c putout: @putout/plugin-apply-overrides v1.0.0
  • 78a37907a eslint-plugin-putout: long-properties-destructuring: add support of ImportDeclaration (align with @putout/printer maxPropertiesLengthInOneLine)

v35.18.0

1 month ago

🔥 feature

  • 94b8e8908 putout: parse-options: rulesdir: exclude *.md
  • 2a817e8a5 @putout/operate: insertAfter: wrap ExpressionStatement when current path is Statement and node not

v35.17.0

1 month ago

Added support of quick-lint-js 🎉

Just landed support of fastest JavaScript bugs finder.

Now when Babel cannot parse source code, 🐊Putout tries again with @putout/quick-lint, so now error messages will be much more user friendly. Here is how it looks like for code:

function x() {
    await m();
}

Before

image

After

image

That's all for today 🦏.

🐞 fix

  • a87e7e06c @putout/plugin-nodejs: add-node-predynamic: Identifier
  • ca542fb12 @putout/eslint: no config found: Flat Config error -> RC error

🔥 feature

  • 9f76b2a51 putout: @putout/quick-lint v1.0.0
  • 8ad6cd673 @putout/eslint: add ability to hande no FlatConfig found error
  • 949e898c9 @putout/plugin-nodejs: add-node-prefix: simplify
  • 1551e9f04 @putout/plugin-nodejs: add-node-prefix: dynamic import
  • 08acf9555 @putout/plugin-nodejs: add-node-prefix: add require
  • 6744c616f @putout/plugin-nodejs: add-node-prefix: report

v35.16.2

1 month ago

🔥 feature

  • 7a30d7c7f @putout/plugin-github: set-node-version: drop node v21 EOL
  • 2079a3481 @putout/plugin-eslint: apply-match-to-flat: exclude not two properties
  • 924f9b1fc @putout/plugin-eslint: apply-match-to-files: exclude objects whith no rules or files

v35.16.1

1 month ago

🐞 fix

  • ec9c33c76 @putout/plugin-eslint: apply-match-to-flat: match declared
  • 5daeef38d @putout/eslint-flat: match-to-flat-dir: ignores: fn

🔥 feature

  • d0daabdb9 @putout/plugin-github: set-node-version: node v22 (https://nodejs.org/en/blog/announcements/v22-release-announce)
  • 90b33aee6 @putout/eslint-flat: match-to-flat-dir: ignores
  • c68f66b2f @putout/plugin-eslint: apply-match-to-flat: export match
  • 79c3afc15 @putout/plugin-eslint: apply-match-to-flat: add
  • ab03dc406 @putout/remove-unused-get-properties-argument: exclude not ObjectPattern
  • d7c28b381 @putout/plugin-eslint: declare: add support of @putout/eslint-flat
  • 6bef4fcdd @putout/eslint-flat: add
  • bbef3c8d2 eslint-flat: mergeESLintConfigs: add

v35.16.0

1 month ago

🐞 fix

  • c4ad97e8b @putout/operator-match-files: rename
  • e5dbaca94 @putout/operator-match-files: dot
  • 0c02ccf22 eslint: cwd

🔥 feature

  • 463d2646f putout: @putout/plugin-types v4.0.0
  • 7f971e8ba putout: @putout/plugin-declare v4.0.0
  • 3b043c38f @putout/plugin-declare: isArray: move out to @putout/plugin-types
  • 844e20dbb @putout/plugin-types: drop support of node < 18
  • bd2e91935 @putout/plugin-types: declare: isArray, isEmptyArray: add
  • 5fa1a1cd5 @putout/eslint-flat: move out matchToFlat
  • 8c8705b95 @putout/eslint-flat: add support of FlatConfig
  • baf9706c6 @putout/eslint-flat: add
  • 1ba8ae649 @putout/operator-match-files: improve rename
  • ed0d47673 @putout/eslint: get-eslint: Flat Config
  • 65aaa5a93 @putout/eslint: improve support of FlatConfig
  • d4b426a3c @putout/operator-match-file: find existing
  • 405300d88 @putout/operator-filesystem: maybeRemoveFile: search in current directory only
  • f561bfd03 @putout/operator-match-files: copy -> rename
  • 812886108 @putout/operator-ignore: __json: no property found

v35.15.0

1 month ago

🐞 fix

  • 9e5cc8f10 @putout/operator-ignore: __json: property
  • 0b32f4415 @putout/plugin-putout: remove-unused-get-properties-argument: exclude not StringLiteral
  • 0855fa787 @putout/plugin-npmignore: message

🔥 feature

  • 09ae16147 putout: add @putout/plugin-coverage
  • 228414483 @putout/plugin-coverage: add
  • a961d86ce putout: @putout/plugin-gitignore v6.0.0
  • fea9d47f9 putout: @putout/plugin-npmignore v5.0.0
  • 95af1575f @putout/plugin-gitignore: use ignore
  • 59361fac9 @putout/plugin-putout: declare: ignore: add
  • 0e78b78b3 @putout/operator-ignore: add
  • 3eb9a5b45 @putout/operator-json: fromJS: no newline

v35.14.1

1 month ago

🔥 feature

  • d9c1cf78f putout: @putout/plugin-gitignore v6.0.0
  • 8f360cfd3 putout: @putout/plugin-npmignore v5.0.0
  • 314190495 @putout/plugin-gitignore: use ignore
  • 577a53f79 @putout/plugin-putout: declare: ignore: add

v35.14.0

1 month ago

🐞 fix

  • fee14bbd2 @putout/plugin-npmignore: message

🔥 feature

  • 7311d3b1b @putout/operator-ignore: add
  • 383404e74 @putout/operator-json: fromJS: no newline
  • 8ad2a38a9 @putout/plugin-putout: remove-unused-get-properties-argument: add
  • efc02772d @putout/plugin-eslint: convert-rc-to-flat: safeAlign always first
  • 088a4b2fd @putout/operate: traverseProperties: path.parentPath -> path.isCallExpression
  • 77230e28c @putout/plugin-eslint: convert-rc-to-flat: improve support of safeAlign
  • 43a051b58 @putout/plugin-eslint: declare: add
  • 16fdfe713 @putout/plugin-eslint: convert-rc-to-flat: improve
  • 3fed45ab7 @putout/plugin-eslint: convert-files-to-array: report: improve message for FlatConfig

v35.13.0

1 month ago

🐞 fix

  • e79864d67 eslint-plugin-putout: ts: plugins

🔥 feature

  • eb0e9cb9c putout: match: add support of ESLint FlatConfig
  • 4ff66674b @putout/plugin-eslint: convert-files-to-array: add support of FlatConfig
  • 809df0ec7 @putout/plugin-eslint: convert-files-to-array: add
  • 83c56c805 putout: migrate to ESLint FlatConfig
  • e61697166 @putout/plugin-eslint: remove-useless-slice: add
  • 8114b3429 @putout/plugin-npmignore: add ".config."