putout

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

MIT License

Downloads
3.6M
Stars
646
Committers
23

Bot releases are visible (Hide)

putout - putout v29.13.1

Published by coderaiser over 1 year ago

🔥 feature

  • 7eb70588a package: @putout/plugin-convert-assignment-to-comparison v2.0.0
  • f77a5eaf7 @putout/plugin-convert-assignment-to-comparison: drop support of 🐊 < 29
putout - putout v29.13.0

Published by coderaiser over 1 year ago

🔥 feature

  • fa0df1d32 @putout/plugin-simplify-boolean-return: add
  • 2bccf0897 @putout/compare: add support of __bool
  • 520a68081 @putout/compare: vars: add support of extra parenthesized
putout - putout v29.12.12

Published by coderaiser over 1 year ago

🔥 feature

  • e028f142f package: @putout/plugin-split-nested-destructuring v3.0.0
  • d5fcd28e1 @putout/plugin-split-nested-destructuring: drop support of 🐊 < 29
putout - putout v29.12.11

Published by coderaiser over 1 year ago

🐞 fix

  • 4ce5182fb @putout/plugin-printer: remove-args: no report

🔥 feature

  • c93a6b29c package: @putout/plugin-split-variable-declarations v3.0.0
  • 836c270f3 @putout/printer: split-variable-declarations: drop support of 🐊 < 29
  • efbcc26c7 @putout/plugin-split-variable-declarations: use @putout/printer
  • 8e409ea10 @putout/plugin-printer: remove-args: write.space
  • 49ed8cf0c package: @putout/printer v2.0.0
  • e84d4834c @putout/plugin-printer: remove-args: add support of write.breakline
putout - putout v29.12.10

Published by coderaiser over 1 year ago

🔥 feature

  • 542966eff package: @putout/plugin-strict-mode v6.0.0
  • 0f738821e @putout/plugin-strict-mode: drop support of 🐊 < 29
  • d1d5b4ad9 @putout/plugin-strict-mode: use @putout/printer
  • 9bd1c651d @putout/plugin-travis: drop support of 🐊 < 29
putout - putout v29.12.9

Published by coderaiser over 1 year ago

🔥 feature

  • cb79135b4 package: @putout/processor-javascript v5.0.0
  • 2cdca8684 @putout/processor-javascript: drop support of 🐊 < 29
  • 9b39e5f81 @putout/plugin-madrun: use @putout/printer
  • 42d67623a babel-plugin-putout: drop support of node < 16
  • 9e1963c97 @babel-plugin-putout: use @putout/printer
putout - putout v29.12.8

Published by coderaiser over 1 year ago

🔥 feature

  • 43e643207 package: @putout/plugin-webpack v3.0.0
putout - putout v29.12.7

Published by coderaiser over 1 year ago

🔥 feature

  • 9a6c6e77f package: @putout/plugin-putout-config v3.0.0
  • 210289bf1 @putout/plugin-config: drop support of node < 16
  • cc12ea0cd @putout/processor-wasm: drop support of 🐊 < 29
putout - putout v29.12.6

Published by coderaiser over 1 year ago

🔥 feature

  • 7278b3551 package: @putout/cli-ruler v3.0.0
  • 9d838b92d @putout/cli-ruler: drop support of node < 16
  • 57e02838f @putout/cli-ruler: change args
putout - putout v29.12.5

Published by coderaiser over 1 year ago

🔥 feature

  • 7f14546b5 package: @putout/plugin-apply-early-return v3.0.0
  • ce901bbe8 @putout/printer: filter out Identifiers
  • 8637da9d4 @putout/plugin-apply-early-return: drop support of 🐊 < 29
  • 0ecf64c9b @putout/plugin-apply-eary-return: use @putout/printer
  • 1ee397bac @putout/plugin-react-hook-form: v6-convert-as-to-render: fieldset -> field
putout - putout v29.12.4

Published by coderaiser over 1 year ago

🔥 feature

  • bc8b5dfbb @putout/plugin-convert-typeof-to-is-type: GENERAL
  • 06e1b7ed6 @putout/plugin-putout: check-match: add
  • 30a84b007 @putout/plugin-simplify-assignment: var support
  • 2046af850 package: @putout/plugin-convert-object-entries-to-array-entries v2.0.0
  • 8c9700b4e @putout/plugin-convert-object-entries-to-array-entries: use @putout/printer
  • 8c3a8ecb6 @putout/plugin-convert-object-entries-to-array-entries: drop support of 🐊 < 29
  • cd10d2f1f @putout/plugin-convert-object-entries-to-array-entries: templates
  • a51fc987f @putout/plugin-putout: check-match: add
  • b79256872 @putout/engine-parser: template: add ability to parse expression
  • 2b26b974b @putout/plugin-react-hook-form: v6-convert-as-to-render: add support of name, onChange
  • cf35764c6 @putout/plugin-appy-destructuring: falsy: add
  • eaa6c501c @putout/plugin-react-hook-form: v7-apply-form-state: false positives
  • fb36bf49d @putout/plugin-cloudcmd: convert-load-dir-to-change-dir: simplify
  • d4d7bf1c3 @putout/opreate: rename: add support of no bindings
  • 5823233ab @putout/plugin-react-hook: v6-convert-trigger-validation-to-trigger: improve
  • 8dbdeafd9 @putout/operate: rename: improve support of deep rename
  • b6fb17155 @putout/plugin-react-hook-form: improve support of v6-convert-trigger-validation-to-trigger
  • c0b21210f eslint-plugin-putout: multiple-properties-destructuring: do not count ImportDefaultSpecifier
  • d8aa5f4bc @putout/eslint: create-plugin: add ability to pass 'options' to 'filter()'
putout - putout v29.12.3

Published by coderaiser over 1 year ago

🔥 feature

  • cbbdbb1fc package: @putout/plugin-merge-destructuring-properties v8.0.0
  • 092a973e4 @putout/plugin-merge-destructuring-properties: drop support of 🐊 < 29
putout - putout v29.12.2

Published by coderaiser over 1 year ago

🔥 feature

  • 2fa1f0396 package: @putout/plugin-convert-esm-to-commonjs v6.0.0
  • 445b85b77 @putout/plugin-convert-esm-to-commonjs: drop support of 🐊 < 29
  • f1776923a @putout/plugin-putout: check-replace-code: add support of __args__a
  • 3102231e5 @putout/compare: isLinkedId: improve support
putout - putout v29.12.1

Published by coderaiser over 1 year ago

🔥 feature

  • a70c3d9eb package: @putout/plugin-convert-array-copy-to-slice v3.0.0
  • f22597d5d @putout/plugin-convert-array-copy-to-slice: drop support of node < 16
  • 8c84d5a91 @putout/plugin-convert-array-copy-to-slice: use @putout/printer
  • d3e57f1b0 @putout/plugin-minify: mangle-names: add ability to configure with mangleClassNames
putout - putout v29.12.0

Published by coderaiser over 1 year ago

🐞 fix

  • 522a8e577 @putout/pminify: mangle-names

🔥 feature

  • f74bf5401 package: @putout/plugin-remove-useless-arguments v7.0.0
  • 47fff1790 @putout/plugin-remove-useless-arguments: drop support of 🐊 < 29
  • e5ab8cc0d @putout/plugin-remove-useless-arguments: report: Remove -> Avoid
  • 0b8a342c1 @putout/plugin-remove-useless-arguments: destructuring: add support of second ObjectPattern
  • f7f65c68b package: nano-memoize v3.0.11
  • 1a23372f1 @putout/plugin-minify: remove-var-undefined
  • dcbed5aa3 @putout/plugin-minify: mangle-names: imporve compute-name
  • 2088a816a @putout/plugin-minify: mangle-names: shorteer
  • 36384a789 @putout/plugin-minify: mangle-names: improve overlap handling
  • 1c0d2868a @putout/plugin-mangle-names: filter: add
putout - putout v29.11.1

Published by coderaiser over 1 year ago

🔥 feature

  • b66a2572f package: @putout/plugin-convert-apply-to-spread v4.0.0
  • 05bae2435 @putout/plugin-convert-apply-to-spread: drop support of node < 16
  • 4047516f3 @putout/plugin-convert-assert-to-with
putout - putout v29.11.0

Published by coderaiser over 1 year ago

New Exit Code

Just added new exit code CANNOT_LINT_STAGED:

Convert assert to with

This feature would ideally use the with keyword to denote attributes, but there are existing implementations based on a previous version of the proposal using the assert keyword. Due to potential web compatibility risks, the proposal still includes assert marked as deprecated. Usage of the old syntax is discouraged, and its removal is being investigated.

(c) tc39

The "import assertions" proposal's syntax changed to use the with keyword instead of assert, and it has also been renamed to "import attributes".

(c) Babel

Before:

import x1 from 'y' assert {type: 'json'};
import("foo.json", { assert: { type: "json" } });

After:

import x2 from 'y' with {type: 'json'};
import("foo.json", { with: { type: "json" } });

Checkout in 🐊Putout Editor.

New syntax is not support for now by node.js and chrome, they supports assertions anyways it will be useful in a future.

🔥 feature

  • dea4b68d1 putout: exit-codes: --staged: add CANNOT_LINT_STAGED
  • 31c597a47 @putout/engine-parser: babel plugins: add back support of assert in ImportDeclartations
  • a2e019aab @putout/plugin-minify: mangle-names: get back old behaviour since it is more optimal
  • fd7535350 @putout/plugin-minify: mangle-names: use index of scope instead of global counter
  • 885caad0f @putout/engine-parser: add support of import attributes (https://babeljs.io/blog/2023/05/26/7.22.0#import-attributes-15536-15620)
  • 8b3492fb8 @putout/engine-parser: babel: plugins: remove enabled by default
  • 825f6919a @putout/plugin-new: remove-useless: add TypeError
  • be9c83b11 @putout/plugin-minify: expand-bindings: keep only Identifiers
  • 3b3f6f9c4 @putout/plugin-minify: expand-variables: add
  • 550493d90 @putout/plugin-minify: convert-strict-equal-to-equal: add
  • 9150cce3e @putout/plugin-types: use @putout/printer
  • d29eb0bd7 @putout/plugin-types: convert-typeof-to-is-type: improve support of node var binding
  • 47af1a29a @putout/plugin-minify: shorten-names: improve support of freeze, defineProperty
  • cc6f5f577 @putout/engine-runner: store: uplist: check node
  • 806d1a483 @putout/plugin-minify: shorten-name
  • 41dccd651 @putout/plugin-minify: shorten-names: improve support
  • 72990c057 @putout/plugin-minify: merge-variables: add
  • 0195c179d @putout/plugin-minify: convert-const-to-var: add
  • 9edb1d2c8 @putout/plugin-minify: shorten: add ability to check printed
  • ada9b57a2 @putout/plugin-minify: shorten-names: declared
  • b1ff89935 @putout/plugin-minify: shorten names: add
putout - putout v29.10.1

Published by coderaiser over 1 year ago

🔥 feature

  • 6ba50e15b package: @putout/plugin-convert-arguments-to-rest v2.0.0
  • 7b802861c @putout/plugin-convert-arguments-to-reste: use @putout/printer
  • db0627645 @putout/plugin-convert-arguments-to-reste: report
  • f9155a5de @putout/plugin-convert-arguments-to-rest: drop support of 🐊 < 29
  • 280ed412c @putout/plugin-minify: mangle-names: simplify
  • 7ad0230ec @putout/plugin-cloudcmd: use @putout/printer
  • de569a19d @putout/plugin-cloudcmd: drop support of 🐊 < 29
  • bdf015905 @putout/plugin: use operator.rename
  • eba4bf6de @putout/plugin-react-router: convert-switch-to-routes: simplify
  • e25d371ca @putout/operate: rename: apply shorthand
  • 046f4400a @putout/plugin-react-hook-form: drop support of 🐊 < 29
  • c81a3c229 @putout/plugin-react-hook-form: use operator.rename
  • a668addfc @putout/plugin-putout: use rename from operator
  • 2a59b6d64 @putout/plugin-putout: declare: add rename, renameProperty
  • 2cdcd0bb0 @putout/operate: rename: add
  • 4827d77af @putout/operate: renameProperty: add
putout - putout v29.10.0

Published by coderaiser over 1 year ago

🐞 fix

  • 6312e790e putout: hang --staged (isomorphic-git/isomorphic-git#1768)

🔥 feature

  • 664e07e20 @putout/plugin-react-router: v2
  • 4c686c97c @putout/plugin-react-router: drop support of 🐊29
  • 118293767 @putout/plugin-react-router: applies changes according to printer
  • e64aa4e0b package: @putout/compare v10.0.0
  • d8ef6f389 package: @putout/traverse v6.0.0
  • 2e0968f95 package: @putout/compare v10.0.0
  • 1b2e2cfb6 package: @putout/compare v10.0.0
  • d753a5a65 package: @putout/compare v10.0.0
  • b939822fa package: @putout/compare v10.0.0
  • c1a8a9eb2 package: @putout/engine-loader v9.2.0
  • 0bdbd751f package: @putout/engine-parser v6.2.0
  • 9da482947 package: @putout/engine-parser v6.2.0
  • 7411ef928 @putout/compare: setValues: improve support of TemplateElement
  • 80a313afb @putout/plugin-minify: mangle-names: add support of a very big count of variables
  • bbf78df1b @putout/plugin-minify: extract-body: improve support of ObjectMethod
  • 2741d1149 @putout/plugin-github: set-coveralls-version: add (coverallsapp/github-action#2)
  • ffdef0444 @putout/plugin-minify: mangle-names: process scope once
  • 516c1e427 @putout/minify: mangle-names: add ability to check upper scope
  • f2e01f9ec @putout/plugin-minify: mangle-names: Identifier inside ObjectProperty (babel/babel#15648)
  • a5c8892d3 @putout/plugin-minify: extract-body: exclude try-catch
  • c3f8b2392 package: eslint-plugin-n v16.0.0
putout - putout v29.9.0

Published by coderaiser over 1 year ago

🐞 fix

  • fca416aac @putout/plugin-printer: remove-args
  • 76ac50697 @putout/plugin-=minify: convert-if-to-logical: AssignmentExpression support

🔥 feature

  • e1857c88c package: @putout/plugin-remove-useless-else v2.0.0
  • d01c45590 @putout/plugin-remove-useless-else: drop support of 🐊 < 19
  • e77a9fa4e @putout/plugin-remove-useless-else: use @putout/printer
  • 217576d50 @putout/plugin-minify: convert-if-to-logical: add support of ternary expression
  • 69fce3014 @putout/plugin-minify: apply-ternary: add
  • e8858e4a8 @putout/plugin-printer: remove-args: add support of maybe.print.space
  • a19fb2ff1 @putout/plugin-minify: extract-body: add
  • e7e7e2fb7 @putout/plugin-minify: add support of ForOfStatement
  • 7f767ef0a @putout/plugin-minify: convert-if-to-logical: exclude AssignmentExpression (coderaiser/minify#100)
  • a20679740 @putout/plugin-conditions: remove-zero: add
Package Rankings
Top 1.65% on Npmjs.org
Badges
Extracted from project README
NPM version Build Status Coverage Status DeepScan putout npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm npm