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 v28.10.0

Published by coderaiser over 1 year ago

🔥 feature

  • package: @putout/plugin-remove-useless-conditions v3.0.0
  • @putout/plugin-remove-useless-conditions: drop support of 🐊 < 28
  • @putout/plugin-remove-useless-conditions: drop support of node < 16
  • @putout/plugin-remove-useless-conditions: add evaluate
putout - putout v28.9.0

Published by coderaiser over 1 year ago

🐞 fix

  • @putout/plugin-react-hook-form: v7-apply-form-state: exclude destructuring from formState
  • @putout/plugin-react-hook-form: v7-apply-form-state: check for declarations
  • @putout/compare: __jsx_attributes: multiple
  • @putout/operate: extract: throw
  • @putout/plugin-react-hook-form: trim trailing whitespaces
  • @putout/processor-markdown: branch: empty

🔥 feature

  • package: @putout/plugin-webpack v2.0.0
  • @putout/plugin-webpack: drop support of node < 16
  • @putout/plugin-webpack: drop support of 🐊 < 28
  • @putout/plugin-webpack: add apply-externals
  • @putout/plugin-react-hook-form: v7-apply-form-state: add support of couple properties destructuring
  • @putout/plugin-react-hook-form: add v7-apply-form-state
  • @putout/plugin-react-hook-form: add version number
  • @putout/plugin-react-hook-form: convert-form-context-to-form-provider: add support of attributes
  • @putout/plugin-react-hook-form: convert-form-context-to-form-provider: add
  • @putout/plugin-convert-as-to-render: add support of JSXSpreadAttribute
  • @putout/plugin-react-hook-form: add convert-trigger-to-trigger-validation
  • @putout/plugin-react-hook-form: convert-as-to-render: use __jsx_attributes: shorten code
  • @putout/compare: __jsx_attributes: add support of any count
  • @putout/compare: add support of __jsx_attributes
  • @putout/operate: extract: add support of JSXAttribute
  • @putout/plugin-react-hook-form: convert-as-to-render: report
  • @putout/plugin-react-hook-form: add convert-as-to-render
putout - putout v28.8.0

Published by coderaiser over 1 year ago

🔥 feature

  • package: @putout/processor-markdown v8.0.0
  • @putout/processor-markdown: improve description
  • @putout/processor-markdown: drop support of 🐊 < 28
  • @putout/processor-markdown: ignore empty files
  • @putout/eslint: add support of NO_ESLINT
  • @putout/test: eslint: add support of UPDATE=1
  • @putout/plugin-react-hook-form: add support of apply-clear-errors
  • @putout/plugin-react-hook: add
putout - putout v28.7.0

Published by coderaiser almost 2 years ago

🐞 fix

  • @putout/plugin-remove-iife: report message

🔥 feature

  • package: @putout/plugin-regexp v6.0.0
  • package: @putout/plugin-declare-undefined-variables v8.0.0
  • @putout/plugin-declare-undefined-variables: drop support of 🐊 < 28
  • @putout/plugin-declare-undefined-variables: add support of fullstore
  • @putout/plugin-regexp: remove-useless-regexp: exclude escaped
  • @putout/plugin-regexp: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: exclude SequenceExpression (#127)
  • package: @putout/plugin-remove-iife v3.0.0
  • @putout/plugin-remove-iife: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: improve support of nested iife (#127)
putout - putout v28.6.0

Published by coderaiser almost 2 years ago

🐞 fix

  • @putout/processor-css: get back url quotes
  • @putout/plugin-logical-expressions: simplify: get rid of incorrect optional transformation: a?.b || a -> a?.b'

🔥 feature

  • package: @putout/plugin-remove-iife v3.0.0
  • @putout/plugin-remove-iife: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: improve support of nested iife (#127)
  • package: @putout/processor-css v6.2.0
  • @putout/process-html: css
  • @putout/processor-css: improve support of parsing error
  • @putout/plugin-putout: convert-load-dir-to-change-dir: improve support of named properties
  • @putout/processor-css: remove function-url-quotes
  • @putout/plugin-cloudcmd: drop support of 🐊 < 28
  • @putout/plugin-cloudcmd: drop support of node < 16
  • @putout/plugin-cloudcmd: add convert-load-dir-to-change-dir
  • @putout/plugin-nextjs: add convert-page-to-head
  • @putout/compare: __: improve support of jsx
  • @putout/compare: improve support of JSXText between tags
  • @putout/plugin-nextjs: add
  • package: @putout/plugin-merge-duplicate-imports v8.0.0
  • @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 28
  • @putout/plugin-merge-duplicate-imports: improve support of duplicate imports
putout - putout v28.5.0

Published by coderaiser almost 2 years ago

🔥 feature

  • package: @putout/plugin-merge-duplicate-imports v8.0.0
  • @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 28
  • @putout/plugin-merge-duplicate-imports: import support of duplicate imports
putout - putout v28.4.0

Published by coderaiser almost 2 years ago

🐞 fix

  • @putout/plugin-apply-is-array: description

🔥 feature

  • package: cosmiconfig v8.0.0
  • @putout/plugin-apply-flat-map: add
putout - putout v28.3.0

Published by coderaiser almost 2 years ago

🔥 feature

  • package: nano-memoize v2.0.0
  • @putout/plugin-logical-expressions: simplify: add support of OptionalChaining
  • @putout/plugin-extract-sequence-expressions: add support of IfStatement test (#126)
  • @putout/plugin-remove-unused-variables: add support of SequenceExpressions (#126)
putout - putout v28.2.0

Published by coderaiser almost 2 years ago

🔥 feature

  • package: @putout/plugin-simplify-ternary v4.0.0
  • @putout/plugin-simplify-ternary: drop support of 🐊 < 28
  • @putout/plugin-simplify-ternary: add support of distribute
  • @putout/plugin-apply-if-condition: exclude next empty sibling (#125)
  • package: @putout/recast v1.11.0
  • @putout/plugin-extract-sequence-expressions: add support of await (#124)
  • @putout/plugin-extract-sequence-expressions: exclude call expressions (#124)
  • @putout/plugin-extract-sequence-expressions: when assignment goes after call split into two expressions (#124)
  • @putout/engine-loader: nano-memoize v2
  • @putout/engine-parser: nano-memoize v2
  • @putout/engine-processor: rm unused nano-memoize
  • package: stylelint-config-standard v29.0.0
  • @putout/processor-typescript: drop support of putout < 28
  • package: ts-morph v17.0.1
putout - putout v28.1.0

Published by coderaiser almost 2 years ago

🐞 fix

  • @putout/compare: __children -> __jsx_children

🔥 feature

  • package: @putout/cli-match v2.0.0
  • @putout/cli-match: drop support of node < 16
  • @putout/cli-match: change "match()" return signature: code -> {code, message}
  • @putout/plugin-remove-useless-spread: add support of sparse arrays (#119)
  • @putout/compare: __jsx_children: improve support
  • @putout/compare: improve support of jsx expressions
  • @putout/compare: improve __jsx_children support
  • @putout/compare: add support of JSXElement (#116)
  • @putout/engine-parser: template: add support of jsx
  • @putout/engine-runner: replacer: add support of jsx (#116)
  • @putout/compare: add support of JSXText (#116)
  • @putout/operate: extract: add support of JSXText (#116)
  • @putout/plugin-github: create-uses-fixer
  • @putout/plugin-github: add set-add-and-commit (EndBug/add-and-commit#448)
  • @putout/plugin-github: set-setup-node: set v3
  • @putout/plugin-nodejs: set-checkout-version: add support of actions/checkout v3
putout - putout v28.0.1

Published by coderaiser almost 2 years ago

🔥 feature

  • package: @putout/plugin-github v4.0.0
  • @putout/plugin-nodejs: set-node-versions: add support of node v19
  • @putout/plugin-github: drop support of 🐊 < 28
putout - putout v28.0.0

Published by coderaiser about 2 years ago

image

Be extremely subtle, even to the point of formlessness. Be extremely mysterious, even to the point of soundlessness. Thereby you can be the director of the opponent's fate.

(c) Sun Tzu

Hi folks!

The time is came for a new major release 🎉 . Let's take a look at breaking changes ☢️.

Introduced Math

4 plugins related to math now moved to @putout/plugin-math:

So, now we have 1 dependency instead of 4 ⭐.
If you disabled same of them here is changes you need to make:

{
    "rules": {
-        "convert-math-pow": "off",
-        "apply-numeric-separators": "off",
-        "convert-imul-to-multiplication": "off",
-        "convert-sqrt-to-hypot": "off"
+        "math/apply-exponential": "off",
+        "math/apply-numeric-separators": "off",
+        "math/apply-multiplication": "off",
+        "math/convert-sqrt-to-hypot": "off"
    }
}

If you stick to defaults, you need to change nothing 🥳 !

That's all for now, have a good day full of good vibes 🐘.

🔥 feature

  • @putout/plugin-math: add apply-numeric-separators
  • @putout/plugin-math: add apply-multiplication
  • @putout/plugin-math: add apply-exponentiation
  • @putout/plugin-math: add convert-sqrt-to-hypot
  • putout: add @putout/plugin-math
  • package: lerna v6.0.1
  • @putout/plugin-remove-empty: block: report
  • @putout/plugin-remove-empty: add static-block
putout - putout v27.13.0

Published by coderaiser about 2 years ago

🔥 feature

  • putout: add .git to ignore
putout - putout v27.12.0

Published by coderaiser about 2 years ago

🔥 feature

  • putout: add yarn files to ignore
  • @putout/test: processor: add ability to pass processorRunners
  • @putout/engine-runner: improve support of passed processorRunners
putout - putout v27.11.0

Published by coderaiser about 2 years ago

🐞 fix

  • 🔥 feature

@putout/processor-css: find()/() -> lint()

🔥 feature

  • @putout/processor-html: drop support of 🐊 < 27
  • package: @putout/processor-css v6.0.0
  • package: @putout/processor-css v6.0.0
  • @putout/processor-css: drop support of 🐊 < 27
  • @putout/processor-css: find()/fix() -> lint()
  • @putout/engine-processor: add support of 'lint()' export in processors
  • @putout/processor-css: disable selector-class-pattern
putout - putout v27.10.0

Published by coderaiser about 2 years ago

🔥 feature

  • putout: *.md: typescript/remove-unused-types: off
putout - putout v27.9.0

Published by coderaiser about 2 years ago

🔥 feature

  • package: @putout/plugin-simplify-assignment v2.0.0
  • @putout/plugin-simplify-assignment: report
  • @putout/plugin-simplify-assignment: drop support of 🐊 < 27
  • @putout/plugin-simplify-assignmet: exclude variable declarations
  • package: ts-morph v16.0.0
  • package: stylelint-config-standard v28.0.0
  • package: eslint-plugin-eslint-plugin v5.0.6
  • @putout/plugin-remove-unused-variables: improve support of ObjectPattern property shorthand used with AssignmntPattern
  • @putout/plugin-apply-comparison-order: exclude UpdateExpressions: inc, dec
  • @putout/plugin-exptrace-sequence-expressions: add support of lost args
  • @putout/plugin-remove-useless-parens: improve support of nested TsArrayType
  • @putout/plugin-remove-useless-escape: improve support slash quote
  • @putout/test: pass test when updating the fixture
  • @putout/plugin-remove-useless-arguments: method: exclude getter
  • @putout/plugin-apply-comparison-order: exclude "<<" and ">>"
  • @putout/plugin-apply-comparison-order: reverse ">" and "<"
  • @putout/plugin-remove-useless-arguments: method: TS: add ability to handle ClassProperty
  • @putout/plugin-putout: convert-traverse-to-replace: check for Identifiers in property keys
  • @putout/compare: improve support of __args__a (#113)
  • @putout/plugin-remove-iife: arrow: add support of no args
  • @putout/compare: improve support of __body
  • @putout/plugin-remove-iife: add support of any count of args
putout - putout v27.8.0

Published by coderaiser about 2 years ago

🐞 fix

  • eslint-plugin-putout: flat -> config

🔥 feature

  • package: @putout/plugin-remove-iife v2.0.0
  • @putout/plugin-remove-iife: add support of arrow functions (#113)
  • @putout/plugin-remove-iife: drop support of 🐊 < 27
  • eslint-plugin-putout: config: simplify (eslint/eslintrc/#91)
  • package: supertape v8.0.0
  • @putout/plugin-apply-destructuring: exclude CallExpression with ObjectExpression param
  • package: @babel/parser v7.19.0 (https://babeljs.io/blog/2022/09/05/7.19.0#new-default-values)
  • @putout/eslint: if FlatConfig found pass it to FlatESLint
  • @putout/eslint: add support of FlatESLint (https://eslint.org/blog/2022/08/new-config-system-part-2/)
  • eslint-plugin-putout: add flat
  • @putout/eslint: lint: add support of options
  • @putout/test: eslint: add report, transform
  • @putout/eslint: add lint()
  • @putout/eslint: add 'createPlugin()'
putout - putout v27.7.0

Published by coderaiser about 2 years ago

🔥 feature

  • @putout/eslint: add
  • package: @putout/eslint v1.0.0
putout - putout v27.6.0

Published by coderaiser about 2 years ago

🐞 fix

  • @putout/engine-runner: merge-visitors: add ☝️

🔥 feature

  • putout: cli: eslint: move out getESLint
  • @putout/plugin-remove-empty: nested-pattern: Traverser -> Includer
  • @putout/plugin-remove-empty: nested-pattern: add support of ArrayPattern
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