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
putout - putout v26.1.2

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/processor-markdown) minimum 🐊Putout version

πŸ”₯ feature

  • (package) @putout/processor-yaml v4.0.0
  • (@putout/processor-yaml) convert to ESM
  • (package) @putout/processor-json v5.0.0
  • (package) @putout/processor-json v5.0.0
  • (@putout/processor-json) convert to ESM
  • (package) @putout/processor-ignore v3.0.0
  • (@putout/processor-ignore) convert to ESM
  • (package) @putout/processor-javascript v4.0.0
  • (@putout/processor-javascript) convert to ESM
putout - putout v26.1.1

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/engine-loader) loadProcessors: when no default, return the module

πŸ”₯ feature

  • (package) @putout/processor-markdown v7.0.0
  • (@putout/test) processor: export ESM
  • (@putout/processor-markdown) convert to ESM
putout - putout v26.1.0

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/processor-css) rm once

πŸ”₯ feature

  • (package) @putout/engine-processor v6.0.0
  • (package) @putout/engine-loader v7.0.0
  • (package) @putout/engine-loader v7.0.0
  • (@putout/engine-processor) getProcessorRunners: sync -> async
  • (putout) getProcessors: sync -> async
  • (@putout/engine-loader) loadProcessors -> loadProcessorsAsync
  • (@putout/plugin-remove-useless-variables) exclude mirrored renames (used in tests)
putout - putout v26.0.2

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/plugin-reuse-deuplicate-init) description

πŸ”₯ feature

  • (package) @putout/plugin-reuse-duplicate-init v4.0.0
  • (@putout/plugin-reuse-duplicate-init) drop support of 🐊 < 26
  • (@putout/plugin-reuse-duplicate-init) report message: simplify
  • (@putout/plugin-remove-useless-variables) remove: add support of AssignmentExpression
  • (@putout/operate) remove: improve comments support
  • (@putout/plugin-remove-useless-variables) await: improve report message
  • (@putout/plugin-putout) add: replace-test-message
  • (@putout/plugin-apply-array-at) improve report
  • (@putout/plugin-convert-reduce-to-for-of) exclude CallExpression
  • (@putout/plugin-tape) convert-ok-to-match: test: add support of message
  • (@putout/plugin-remove-useless-operand) check operand type when string could be used
  • (@putout/plugin-madrun) convert-lint-lib: parseObject -> getProperty
  • (@putout/plugin-madrun) convert-nyc-to-c8: add support of CommonJS
  • (@putout/operator-add-args) exclude not calls
  • (@putout/eslint-config) add array-bracket-spacing
  • (@putout/plugin-putout) add-args: add support of process
putout - putout v26.0.1

Published by coderaiser over 2 years ago

Contributions

Thanks a lot to @Hans5958 for fixing spelling issues (#101) 🎈!

🐞 fix

  • (@putout/plugin-convert-commonjs-to-esm) report
  • (putout) help: localy -> locally

πŸ”₯ feature

  • (package) @putout/plugin-convert-esm-to-commonjs v5.0.0
  • (@putout/plugin-convert-esm-to-commonjs) drop support of 🐊 < 26
  • (@putout/plugin-convert-esm-to-commonjs) change report
putout - putout v26.0.0

Published by coderaiser over 2 years ago

image

β€œYou must understand that there is more than one path to the top of the mountain”
― Miyamoto Musashi, A Book of Five Rings

Hi folks!

The time is came for a new major release. It contains a couple breaking changes related to rules.
If you disabled some of rules most likely you need to update .putout.json.
If you using defaults, as always you can do nothing 😏.

strict-mode has internal changes

We just adding a bit more details to avoid confusion with both rules add and remove enabled in the same time:

{
    "rules": {
-       "strict-mode/add": "off",
-       "strict-mode/remove": "off",
+       "strict-mode/add-missing": "off",
+       "strict-mode/remove-useless": "off",
    }
}

A new plugin

From now on rules related to operator new:

  • remove-useless-new;
  • add-missing-new;

Are merged to a new plugin.

❌ Example of incorrect code

const a = new Boolean(); // useless new
const b = Map(); // missing new

βœ… Example of correct code

const a = Boolean();
const b = new Map(); 

Changed to be made

{
    "rules": {
-       "remove-useless-new": "off",
-       "add-missing-new": "off",
+       "new/add-missing": "off",
+       "new/remove-useless": "off",
    }
}

That's all for today! Have a clear sky and fertile fields πŸ‡ΊπŸ‡¦!

πŸ”₯ feature

  • (package) @putout/plugin-strict-mode v5.0.0
  • (@putout/plugin-new) merge: add-missing-new, remove-useless-new
  • (@putout/plugin-strict-mode) add, remove -> add-missing, remove-useless
putout - putout v25.18.0

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/plugin-putout) convert-putout-test-to-create-test: ImportDefaultSpecifier -> ImportSpecifier

πŸ”₯ feature

  • (@putout/plugin-add-missing-new) add
  • (@putout/plugin-remove-useless-new) add support of BigInt
  • (@putout/plugin-remove-useless-new) add support of "new new __a"
  • (@putout/plugin-remove-nested-blocks) rm useless crawl
  • (@putout/plugin-convert-reduce-to-for-of) delete binding after rename
putout - putout v25.17.4

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/plugin-convert-reduce-to-for-of) drop crawl
  • (@putout/plugin-convert-reduce-to-for-of) add crawl
  • (@putout/plugin-convert-reduce-to-for-of) rename missing

πŸ”₯ feature

  • (package) @putout/plugin-remove-nested-blocks v6.0.0
  • (@putout/plugin-remove-nested-blocks) drop support of 🐊 < 25
  • (@putout/plugin-remove-nested-blocks) add crawl before checking intersect
  • (@putout/plugin-convert-reduce-to-for-of) improve support of initial value
putout - putout v25.17.3

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (package) @putout/plugin-apply-is-array v3.0.0
  • (@putout/plugin-apply-is-array) change report
  • (@putout/plugin-apply-is-array) drop support of 🐊 < 25
putout - putout v25.17.2

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (@putout/rule-set-description) extend to all descriptions
  • (package) @putout/plugin-convert-for-to-for-of v4.0.0
  • (@putout/plugin-convert-for-to-for-of) drop support of 🐊 < 25
  • (@putout/plugin-convert-for-to-for-of) change report
putout - putout v25.17.1

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (@putout/rule-set-description) add
  • (package) @putout/plugin-convert-object-assign-to-merge-spread v6.0.0
  • (@putout/plugin-convert-object-assign-to-merge-spread) drop support of 🐊 < 25
  • (@putout/plugin-convert-object-assign-to-merge-spread) change report message
putout - putout v25.17.0

Published by coderaiser over 2 years ago

🐞 fix

  • (@putout/plugin-convert-map-to-for-of) report

πŸ”₯ feature

  • (@putout/plugin-convert-reduce-to-for-of) add
  • (package) @putout/plugin-remove-useless-operand v2.0.0
  • (@putout/plugin-remove-useless-operand) drop support of Putout < 25
  • (@putout/plugin-remove-useless-operand) add support of right duplicates
putout - putout v25.16.0

Published by coderaiser over 2 years ago

🐞 fix

  • (eslint-plugin-putout) object-property-newline: additional spaces

πŸ”₯ feature

  • (@putout/plugin-remove-useless-new) add support of new Object()
  • (package) @putout/plugin-remove-useless-new v2.0.0
  • (@putout/plugin-remove-useless-new) drop support of 🐊 < 25
  • (@putout/plugin-remove-useless-new) add support of RegExp
  • (@putout/plugin-tape) convert-ok-to-match: add support of .test()
  • (@putout/plugin-regexp) add apply-ends-with
  • (@putout/plugin-regexp) add apply-starts-with
  • (@putout/plugin-madrun) convert-run-to-cut-env: add ability to convert body to array
  • (@putout/plugin-travis) drop support of Putout < 25
  • (eslint-plugin-putout) object-property-newline: avoid empty lines
  • (package) eslint-plugin-putout v15.0.0
  • (eslint-plugin-putout) object-init -> object-property-newline: add TS support
  • (@putout/plugin-typescript) remove-duplicate-exports: exclude namespaces
  • (eslint-plugin-putout) add add-newlines-betweens-specifieres
putout - putout v25.15.1

Published by coderaiser over 2 years ago

πŸ”₯ feature

putout - putout v25.15.0

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (package) @putout/plugin-remove-unused-for-of-variables v3.0.0
  • (@putout/plugin-remove-unused-for-of-variables) drop support of putout < 25
  • (@putout/plugin-remove-unused-for-of-variables) exclude spread
  • (eslint-plugin-putout) array-element-newline: exclude sparse arrays
  • (@putout/plugin-merde-duplicate-imports) rm converting of import kind, since it handled by babel
  • (eslint-plugin-putout) add remove-duplicate-extensions
  • (package) @putout/eslint-config v7.0.0
  • (@putout/eslint-config) drop support of node < 16
  • (@putout/eslint-config) add ability to always add newline after for
  • (@putout/plugin-tape) add-args: add support of only/skip
  • (eslint-plugin-putout) markdown: rm no-multi-spaces: off
putout - putout v25.14.3

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (package) @putout/plugin-remove-unused-variables v4.0.0
  • (@putout/plugin-remove-unused-variables) drop support of 🐊 < 25
  • (@putout/plugin-remove-unused-variables) quotes: double -> single
  • (@putout/plugin-strict-mode) quotes: double -> single
  • (package) @putout/plugin-remove-debugger v5.0.0
  • (@putout/plugin-remove-debugger) drop support of 🐊 < 25
  • (@putout/plugin-remove-debugger) quotes: double -> single
putout - putout v25.14.2

Published by coderaiser over 2 years ago

🐞 fix

  • (putout) --fix -> 'fix'

πŸ”₯ feature

  • (@putout/plugin-try-catch) skip transformation when there is already exists binding error
  • (@putout/operator-declare) exclude TSTypeAliasDeclaration
  • (@putout/plugin-declare-before-reference) improve support of newly created nodes
putout - putout v25.14.1

Published by coderaiser over 2 years ago

🐞 fix

  • (putout) cli: get-files: 🐊 No files matching the pattern "package" were found -> 🐊 No files matching the 'pattern' package were found

πŸ”₯ feature

  • (@putout/plugin-tape) add apply-stub
  • (eslint-plugin-putout) markdown: add support of babel parser plugins
  • (putout) images: logo: white eye
putout - putout v25.14.0

Published by coderaiser over 2 years ago

🐞 fix

  • (eslint-plugin-putout) get back ability to catch error during transform

πŸ”₯ feature

  • (package) @putout/plugin-convert-mock-require-to-mock-import v3.0.0
  • (@putout/plugin-convert-mock-require-to-mock-import) drop support of putout < 25
  • (package) @putout/plugin-merge-duplicate-imports v6.0.0
  • (@putout/plugin-merge-duplicate-imports) drop support of putout < 25
  • (@putout/plugin-react-hooks) drop support of putout < 25
  • (package) @putout/plugin-remove-console v4.0.0
  • (@putout/plugin-remove-console) drop support of putout < 25
  • (package) @putout/plugin-remove-constant-conditions v4.0.0
  • (@putout/plugin-remove-constant-conditions) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-duplicate-case v2.0.0
  • (@putout/plugin-remove-duplicate-case) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-empty v8.0.0
  • (@putout/plugin-remove-empty) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unreferenced-variables v2.0.0
  • (@putout/plugin-remove-unreferenced-variables) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unused-expressions v5.0.0
  • (@putout/plugin-remove-unused-expressions) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unused-private-fields v2.0.0
  • (@putout/plugin-remove-unused-private-fields) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-useless-arguments v6.0.0
  • (@putout/plugin-remove-useless-arguments) drop support of 🐊 < 25
  • (@putout/plugin-declare-before-reference) add
  • (@putout/plugin-putout) apply-remove: add
  • (@putout/plugin-putout) declare: operator: add support of remove()
  • (@putout/engine-runner) add ability to handle case with replace that returns nothing
  • (eslint-plugin-putout) speed up 🐊 Putout rule: 5.112s -> 3.661s on 2000 loc file
  • (eslint-plugin-putout) improve typescript support
putout - putout v25.13.1

Published by coderaiser over 2 years ago

πŸ”₯ feature

  • (package) @putout/plugin-strict-mode v4.0.0
  • (@putout/plugin-strict-mode) drop support of 🐊 < 25
  • (@putout/plugin-strict-mode) add support of @putout/plugin-typescript
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