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 v31.2.2

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • d6b8d6706 package: @putout/plugin-declare-before-reference v3.0.0
  • 64ddc72fe @putout/plugin-declare-before-reference: drop support of 🐊 < 31
  • 443182ca9 @putout/plugin-declare-before-reference: improve order
putout - putout v31.2.1

Published by coderaiser about 1 year ago

🐞 fix

  • 4e7221606 putout: validate-options: pass printer options (#180)
  • 331446897 @putout/plugin-putout: apply-namespace-specifier: no specifier
  • 47de2534a @putout/plugin-putout: apply-namaspace-specifier: report: exists
  • f9a5a9eb8 @putout/plugin-putout: add-push: couple usages

πŸ”₯ feature

  • 3cc868239 @putout/plugin-github: install-rust: add
  • 1bb5dd527 @putout/plugin-putout: apply-namaspace-specifier: add
  • b734569f3 @putout/plugin-github: install-bun: check if exists
  • 42772336a @putout/plugin-github: convert-npm-to-bun: add
  • 8520afe54 @putout/plugin-github: install-bun
  • 59614627a @putout/plugin: convert-object-entries-to-array-entries: get back old behavior
putout - putout v31.2.0

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • a19eac4b1 @putout/plugin-declare: get back Object.entries()
  • 609e959ff package: @putout/plugin-convert-object-entries-to-array-entries v3.0.0
  • 99609d78b @putout/plugin-convert-object-entries-to-array-entries: drop support of 🐊 < 31
  • 523c9d105 @putout/plugin-entries: exclude part of declaration
  • 0cd04a1c1 package: @putout/plugin-declare v2.0.0
  • 26130877e package: @putout/plugin-apply-entries v1.0.0
  • da810e278 @putout/plugin-declare: drop support of 🐊 < 31
  • 11f68e09d @putout/plugin-declare: entries: auto check passed type
  • 940f0660d @putout/plugin-apply-entries: add
  • a6cd9361d eslint-plugin-putout: array-element-newline: null
  • ae84b1d59 @putout/engine-parser: printer: recast: options
  • 88c3a2f76 @putout/plugin-github: install-bun: add
putout - putout v31.1.0

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • 42ee1f5f5 package: @putout/plugin-github v7.0.0
  • e6f68b0ef @putout/plugin-github: drop support of 🐊 < 31
  • 78a4419b6 @putout/plugin-github: use traverseProperties from @putout/operate
  • 49e299be6 package: @putout/plugin-putout v14.0.0
  • 6fd1c6232 @putout/plugin-putout: drop support of 🐊 < 31
  • 90135988c @putout/plugin-putout: declare: add traverseProperties
  • 41df7e405 @putout/operate: traverseProperties: add
  • f1365ddef @putout/plugin-madrun: set-lint-dot: report: using -> with
  • 691bf3b61 @putout/plugin-madrun: set-lint-dot: report
putout - putout v31.0.8

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • dd3ef8f23 package: @putout/processor-markdown v10.0.0
  • 5bfc98892 @putout/processor-markdown: drop support of 🐊 < 31
putout - putout v31.0.7

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • a7ea9ceed package: @putout/plugin-logical-expressions v4.0.0
  • 509b65d60 @putout/plugin-logical-expressions: drop support of 🐊
putout - putout v31.0.6

Published by coderaiser about 1 year ago

🐞 fix

  • 89e0ac21f eslint-plugin-putout: babel deps

πŸ”₯ feature

putout - putout v31.0.5

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • f3c0b3970 package: @putout/plugin-madrun v16.0.0
  • b6e1f7dc3 @putout/plugin-madrun: drop support of 🐊 < 31
  • fdd5b38d3 @putout/plugin-madrun: set-lint-dot: raw
putout - putout v31.0.4

Published by coderaiser about 1 year ago

🐞 fix

  • fca64a926 @putout/compare: ignore: drop pattern

πŸ”₯ feature

  • cad218775 package: @putout/plugin-nodejs v7.0.0
  • df60b2b40 @putout/plugin-nodejs: drop support of 🐊 < 31
  • bb252688d @putout/operate: insertAfter: comments
  • 7973ea898 @putout/compare: top-level-comparators: simplify
  • c7cde3a5e @putout/compare: top-level-comparators
  • be73a28ac @putout/compare: add support of top level regexp (#179)
  • 86e565165 @putout/plugin-typescript: convert-generic-to-shorthand: parens
  • c5103a1d9 package: @putout/printer v3.0.0
  • b5b396a47 package: @putout/operator-declare v7.0.4
  • 61e5a2d62 package: @putout/operate v10.0.2
  • 0ce6200c8 package: @putout/operate v10.0.2
putout - putout v31.0.3

Published by coderaiser about 1 year ago

🐞 fix

  • d1371e365 @putout/compare: link

πŸ”₯ feature

  • dd2974013 package: @putout/formatter-frame v4.0.0
  • 2b74fc46f package: @putout/formatter-codeframe v5.0.2
  • 23101f026 @putout/formatter-frame: drop support of 🐊 < 31
  • f8547c45a package: @putout/operate v10.0.2
putout - putout v31.0.2

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • 1e81ca569 package: @putout/engine-processor v9.0.0
  • 62f10be89 package: @putout/engine-loader v11.0.1
  • ff0690655 package: @putout/engine-parser v8.0.1
  • 655ae835d package: @putout/engine-parser v8.0.1
  • 0e1c1beac package: @putout/engine-parser v8.0.1
  • 120d402dc package: @putout/engine-parser v8.0.1
  • edef2ceab package: @putout/engine-parser v8.0.1
  • 832b9d9db @putout/engine-loader: drop support of Babel Plugins (babel/babel#15835)
putout - Putout v31

Published by coderaiser about 1 year ago

image

β€œThere is something to be learned from a rainstorm. When meeting with a sudden shower, you try not to get wet and run quickly along the road. But doing such things as passing under the eaves of houses, you still get wet. When you are resolved from the beginning, you will not be perplexed, though you will still get the same soaking. This understanding extends to everything.”

Yamamoto Tsunetomo, The Hagakure

Hi folks!

Just land new major version of 🐊Putout. It has only one breaking change: upgrade to Babel 8. Changes mostly related to TypeScript AST. And since Babel 8 considered to be ESM-only, to has ability to run in ESLint there is a new package: @putout/babel what it does is: provide CommonJS versions of Babel 8.

☒️ Drop support of Babel Plugins

Since @babel/core requires a lot of ESM dependencies, and takes 6mb, and it's built should be configured in some sophisticated way was decided to drop it's support. Babel is amazing tool, but running it's plugins inside Putout has a little sense, you better write 🐊Putout Plugins πŸš€.

Anyways there is repository putoutjs/babel-wrap so it is possible to make wrapper over Babel Plugin to make it work with 🐊Putout. So if you need it - create an issue, and help with porting 😏.

☝️ You can still run 🐊Putout inside Babel.

πŸš€ Lint became much faster!

Before upgrade:

image

After:

image

That's all for now, have a nice day 🎈!

🐞 fix

  • 7c5637f68 @putout/plugin-typescript: apply-type-guards (#176)

πŸ”₯ feature

  • 9a46f39bb package: @putout/compare v12.0.0
  • b55031eff package: @putout/compare v12.0.0
  • 368552cc2 package: @putout/compare v12.0.0
  • 586366234 package: @putout/compare v12.0.0
  • fd1d1fa97 package: @putout/compare v12.0.0
  • 1328d7774 package: @putout/engine-loader v11.0.0
  • 50a9c7af5 package: @putout/engine-parser v8.0.0
  • 33fb3f9aa package: @putout/engine-runner v18.0.0
  • ddea821fc package: eslint-plugin-putout v19.0.0
  • c6febe13e package: @putout/formatter-codeframe v5.0.0
  • 7c54502ac @putout/formatter-codeframe: drop support of 🐊 < 31
  • 6cec945bc package: @putout/operate v10.0.0
  • 41c1152a5 package: @putout/operator-add-args v6.0.0
  • 19a814bd4 @putout/operator-add-args: drop support of 🐊 < 31
  • 0ad3167c2 package: @putout/operator-declare v7.0.0
  • c2476b02a @putout/operator-declare: drop support of 🐊 < 31
  • ffb42e0bd package: @putout/plugin-remove-unused-variables v6.0.0
  • d5918ab4f @putout/plugin-remove-unused-variables: drop support of 🐊 < 31
  • c3300375e package: @putout/plugin-typescript v5.0.0
  • 5168bc391 package: @putout/traverse v8.0.0
  • a114f95f3 putout: migrate to Babel 8 (https://babeljs.io/docs/v8-migration-api)
  • 53bb6f244 @putout/plugin-minify: merge-variables: exclude let (coderaiser/minify#111)
  • e48d236b5 @putout/plugin-typescript: remove-useless-parens: exclude types overlap
  • ab589d31f @putout/plugin-putout: add-push: esm
  • f206c507b @putout/plugin-putout: declare: setLiteralValue: add
  • 655cea260 @putout/operate: setLiteralValue: add
  • 4cdf9b013 @putout/plugin-remove-unreferenced-variables: add support of "return __a"
  • fce2b8c0d @putout/plugin-remove-useless-variables: declaration: no init
  • 542cd4559 @putout/plugin-types: converty-typeof-to-is-type: declaration (#166)
  • 20a015fbc @putout/plugin-minify: apply-template-literal (#174)
  • c9f22f9ee @putout/plugin-minify: simplify-floor (#174)
  • 5ffcf9cf4 @putout/plugin-putout: apply-insert-before
  • 012f3c81b @putout/plugin-putout: declare: insertBefore
  • 0cd83c6cf @putout/operate: insertBefore
  • a7399c1c1 @putout/plugin-remove-useless-resolve: await
  • c00b03260 @putout/plugin-promises: improve support of @putout/minify
  • 9889996b3 @putout/plugin-putout: apply-insert-after: add (#164)
  • a6c3878ff @putout/plugin-putout: apply-remove: path.remove() -> __a.remove()
  • b4e845ec7 @putout/plugin-minify: types: Array.from (#160)
  • e6d48f022 @putout/plugin-types: convert-typeof-to-is-type: not equal: not declared
  • 6c2c477c6 @putout/plugin-typescript: convert-generic-to-shorthand: types overlap (#173)
  • 0e2a983dc @putout/plugin-typescript: remove-useless-promise: add (#155)
putout - putout v30.7.0

Published by coderaiser about 1 year ago

🐞 fix

  • 81aabefc9 engine-*: Add missing peerDependencies (#168)
  • dadb3aaaa @putout/plugin-minify: remove-var-undefined: drop empty index.
  • 3f0719cca @putout/plugin-minify: inline: Expression -> UpdateExpression

πŸ”₯ feature

  • 53ccc3894 package: @putout/plugin-remove-useless-variables v9.0.0
  • 86c816d2d @putout/plugin-remove-useless-variables: declaration: add
  • 7b5a075d7 @putout/plugin-promises: remove-unused-variables: add from @putout/plugin-remove-unused-variables
  • ada2c87c5 @putout/plugin-remove-useless-variables: drop support of 🐊 < 30
  • 66098ee4d @putout/operate: extract: TSTypeReference
  • 890c72be1 @putout/compare: __a: TSTypeReference
  • 749666168 @putout/plugin-promises: remove-useless-async: report
  • f7b49b276 @putout/operate: getBinding: simplify (#154)
  • b6e5d6b3c @putout/plugin-types: convert-typeof-to-is-type: declared (#154)
  • 34218b06a @putout/plugin-logical-expressions: simplify: !(__a === __b) -> __a !== __b (#162)
  • e987ddcc7 @putout/plugin-types: convert-typeof-to-is-type: not (#162)
  • 5af3e3033 @putout/plugin-typescript: convert-generic-to-shorthand: TSFunctionType (#170)
  • 05f1d25f1 @putout/plugin-minify: drop support of 🐊 < 30
  • f79bc8e16 @putout/plugin-minify: inline (#161)
  • 864436d68 @putout/plugin-typescript: apply-type-guards: add (#165)
putout - putout v30.6.0

Published by coderaiser about 1 year ago

πŸ”₯ feature

  • 2e6d87400 package: @putout/operate v9.0.0
  • 71a38af4c package: @putout/operate v9.0.0
  • 77652d3ef package: @putout/operate v9.0.0
  • d3119103f @putout/operator-declare: imporve support of comments (#164)
  • e834e40b2 @putout/operate: insertAfter: improve (#164)
  • 3461301ea @putout/plugin-putout: declare: operator: insertAfter (#164)
  • b00f54ae9 @putout/engine-runner: replace: Statement in place of Expression: improve message (#156)
  • 7b7e4c38f @putout/plugin-simplify-ternary: value: when converting to IfStatement filter out by parentPath.type === ExpressionStatement (#156)
  • dfc595439 @putout/plugin-types: declare: isBigInt (#158)
  • c23fa1ea9 @putout/plugin-types: convert-typeof-to-is-type (#158)
  • 4fa8f58bb @putout/plugin-conditions: remove-zero: improve support of parens (#157)
  • 8644df78a @putout/plugin-apply-starts-with: add case with where no binding found
putout - putout v30.5.0

Published by coderaiser over 1 year ago

πŸ”₯ feature

  • 7195bf2f9 @putout/plugin-apply-starts-with: add
putout - putout v30.4.6

Published by coderaiser over 1 year ago

πŸ”₯ feature

  • 6ba242083 package: @putout/plugin-simplify-ternary v6.0.0
  • 39f0b56e3 @putout/plugin-simplify-ternary: drop support of 🐊 < 30
  • c4f2ca269 @putout/plugin-simplify-ternary: value: __a ? __b : false -> __a && __b
  • 63e22719c @putout/plugin-conditions: remove-zero: equal: jsx
putout - putout v30.4.5

Published by coderaiser over 1 year ago

πŸ”₯ feature

  • d9758f507 package: @putout/plugin-conditions v2.0.0
  • b34acc1ad @putout/plugin-conditions: drop support of 🐊 < 30
  • af1d63c5b @putout/plugin-conditions: remove-zero: exclude jsx
  • d7a9bf6b0 @putout/plugin-remove-useless-spread: array: include "Object.values()"
putout - putout v30.4.4

Published by coderaiser over 1 year ago

πŸ”₯ feature

  • cf3753919 package: @putout/plugin-remove-useless-spread v8.0.0
  • a7bf33d1e @putout/plugin-remove-useless-spread: array
  • faec6bbc6 @putout/plugin-remove-useless-spread: array: exclude "__.values()" (#148)
  • d7bcb7406 @putout/plugin-logical-expressions: simplify: constructor: or
  • a7c72715d @putout/plugin-logical-expressions: simplify: constructor
putout - putout v30.4.3

Published by coderaiser over 1 year ago

πŸ”₯ feature

  • f54ce7750 package: @putout/plugin-logical-expressions v3.0.0
  • 381d2055b @putout/plugin-logical-expressions: drop support of 🐊 < 30
  • 5a266af6b @putout/plugin-logical-expressions: simplify: Boolean constructor
  • 2bb7b219a @putout/plugin-promises: convert-new-promise-to-async: passed resolve
putout - putout v30.4.2

Published by coderaiser over 1 year ago

🐞 fix

  • 7a0dbcb07 @putout/plugin-github: add-continue-on-error: push -> splice

πŸ”₯ feature

  • 7649469b4 package: @putout/plugin-try-catch v3.0.0
  • fd83b0085 @putout/plugin-try-catch: drop support of 🐊 < 30
  • f0828b475 @putout/plugin-try-catch: sync: improve support of no error
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