Tree Transformations
Putout Plugins

🏟 Plugins

The 🐊Putout repo is comprised of many npm packages. It is a lerna (opens in a new tab) monorepo similar to babel (opens in a new tab). It has a lot plugins divided by groups:

Appliers

PackageVersion
@putout/plugin-apply-array-atnpm (opens in a new tab)
@putout/plugin-apply-is-arraynpm (opens in a new tab)
@putout/plugin-apply-numeric-separatorsnpm (opens in a new tab)
@putout/plugin-apply-destructuringnpm (opens in a new tab)
@putout/plugin-apply-optional-chainingnpm (opens in a new tab)
@putout/plugin-apply-if-conditionnpm (opens in a new tab)
@putout/plugin-apply-early-returnnpm (opens in a new tab)

Splitters

PackageVersion
@putout/plugin-split-variable-declarationsnpm (opens in a new tab)
@putout/plugin-split-nested-destructuringnpm (opens in a new tab)

Mergers

PackageVersion
@putout/plugin-merge-destructuring-propertiesnpm (opens in a new tab)
@putout/plugin-merge-duplicate-importsnpm (opens in a new tab)
@putout/plugin-merge-if-statementsnpm (opens in a new tab)

Converters

PackageVersion
@putout/plugin-convert-apply-to-spreadnpm (opens in a new tab)
@putout/plugin-convert-quotes-to-backticksnpm (opens in a new tab)
@putout/plugin-convert-bitwise-to-logicalnpm (opens in a new tab)
@putout/plugin-convert-concat-to-flatnpm (opens in a new tab)
@putout/plugin-convert-esm-to-commonjsnpm (opens in a new tab)
@putout/plugin-convert-commonjs-to-esmnpm (opens in a new tab)
@putout/plugin-convert-array-copy-to-slicenpm (opens in a new tab)
@putout/plugin-convert-template-to-stringnpm (opens in a new tab)
@putout/plugin-convert-equal-to-strict-equalnpm (opens in a new tab)
@putout/plugin-convert-index-of-to-includesnpm (opens in a new tab)
@putout/plugin-convert-math-pownpm (opens in a new tab)
@putout/plugin-convert-to-arrow-functionnpm (opens in a new tab)
@putout/plugin-convert-for-to-for-ofnpm (opens in a new tab)
@putout/plugin-convert-for-each-to-for-ofnpm (opens in a new tab)
@putout/plugin-convert-for-in-to-for-ofnpm (opens in a new tab)
@putout/plugin-convert-map-to-for-ofnpm (opens in a new tab)
@putout/plugin-convert-object-assign-to-merge-spreadnpm (opens in a new tab)
@putout/plugin-convert-comparison-to-booleannpm (opens in a new tab)
@putout/plugin-convert-typeof-to-is-typenpm (opens in a new tab)
@putout/plugin-convert-mock-require-to-mock-importnpm (opens in a new tab)
@putout/plugin-convert-assignment-to-arrow-functionnpm (opens in a new tab)
@putout/plugin-convert-assignment-to-comparisonnpm (opens in a new tab)

Removers

PackageVersion
@putout/plugin-remove-unused-variablesnpm (opens in a new tab)
@putout/plugin-remove-unused-for-of-variablesnpm (opens in a new tab)
@putout/plugin-remove-unreferenced-variablesnpm (opens in a new tab)
@putout/plugin-remove-duplicate-keysnpm (opens in a new tab)
@putout/plugin-remove-duplicate-casenpm (opens in a new tab)
@putout/plugin-remove-unused-expressionsnpm (opens in a new tab)
@putout/plugin-remove-unused-private-fieldsnpm (opens in a new tab)
@putout/plugin-remove-useless-variablesnpm (opens in a new tab)
@putout/plugin-remove-useless-elsenpm (opens in a new tab)
@putout/plugin-remove-useless-mapnpm (opens in a new tab)
@putout/plugin-remove-useless-newnpm (opens in a new tab)
@putout/plugin-remove-useless-constructornpm (opens in a new tab)
@putout/plugin-remove-useless-returnnpm (opens in a new tab)
@putout/plugin-remove-useless-continuenpm (opens in a new tab)
@putout/plugin-remove-useless-operandnpm (opens in a new tab)
@putout/plugin-remove-useless-array-constructornpm (opens in a new tab)
@putout/plugin-remove-useless-conditionsnpm (opens in a new tab)
@putout/plugin-remove-useless-type-conversionnpm (opens in a new tab)
@putout/plugin-remove-useless-functionsnpm (opens in a new tab)
@putout/plugin-remove-useless-typeofnpm (opens in a new tab)
@putout/plugin-remove-useless-array-fromnpm (opens in a new tab)
@putout/plugin-remove-useless-spreadnpm (opens in a new tab)
@putout/plugin-remove-useless-array-entriesnpm (opens in a new tab)
@putout/plugin-remove-useless-argumentsnpm (opens in a new tab)
@putout/plugin-remove-useless-escapenpm (opens in a new tab)
@putout/plugin-remove-useless-template-expressionsnpm (opens in a new tab)
@putout/plugin-remove-useless-for-ofnpm (opens in a new tab)
@putout/plugin-remove-debuggernpm (opens in a new tab)
@putout/plugin-remove-iifenpm (opens in a new tab)
@putout/plugin-remove-unreachable-codenpm (opens in a new tab)
@putout/plugin-remove-consolenpm (opens in a new tab)
@putout/plugin-remove-emptynpm (opens in a new tab)
@putout/plugin-remove-empty-patternnpm (opens in a new tab)
@putout/plugin-remove-constant-conditionsnpm (opens in a new tab)
@putout/plugin-remove-boolean-from-assertionsnpm (opens in a new tab)
@putout/plugin-remove-boolean-from-logical-expressionsnpm (opens in a new tab)
@putout/plugin-remove-duplicates-from-logical-expressionsnpm (opens in a new tab)
@putout/plugin-remove-nested-blocksnpm (opens in a new tab)

Simplifiers

PackageVersion
@putout/plugin-simplify-assignmentnpm (opens in a new tab)
@putout/plugin-simplify-logical-expressionsnpm (opens in a new tab)
@putout/plugin-simplify-ternarynpm (opens in a new tab)

Not bundled

Next packages not bundled with 🐊Putout but can be installed separately.

PackageVersion
@putout/plugin-react-hooksnpm (opens in a new tab)
@putout/plugin-convert-is-nan-to-number-is-nannpm (opens in a new tab)
@putout/plugin-convert-spread-to-array-fromnpm (opens in a new tab)
@putout/plugin-apply-shorthand-propertiesnpm (opens in a new tab)
@putout/plugin-apply-nullish-coalescingnpm (opens in a new tab)
@putout/plugin-cloudcmdnpm (opens in a new tab)
@putout/plugin-postcssnpm (opens in a new tab)
@putout/plugin-jestnpm (opens in a new tab)
@putout/plugin-travisnpm (opens in a new tab)
@putout/plugin-convert-thrownpm (opens in a new tab)

Groups

PackageVersion
@putout/plugin-declare-undefined-variablesnpm (opens in a new tab)
@putout/plugin-declare-before-referencenpm (opens in a new tab)
@putout/plugin-reuse-duplicate-initnpm (opens in a new tab)
@putout/plugin-madrunnpm (opens in a new tab)
@putout/plugin-strict-modenpm (opens in a new tab)
@putout/plugin-extract-sequence-expressionsnpm (opens in a new tab)
@putout/plugin-extract-object-propertiesnpm (opens in a new tab)
@putout/plugin-putoutnpm (opens in a new tab)
@putout/plugin-putout-confignpm (opens in a new tab)
@putout/plugin-tapenpm (opens in a new tab)
@putout/plugin-webpacknpm (opens in a new tab)
@putout/plugin-eslintnpm (opens in a new tab)
@putout/plugin-package-jsonnpm (opens in a new tab)
@putout/plugin-promisesnpm (opens in a new tab)
@putout/plugin-gitignorenpm (opens in a new tab)
@putout/plugin-npmignorenpm (opens in a new tab)
@putout/plugin-browserlistnpm (opens in a new tab)
@putout/plugin-githubnpm (opens in a new tab)
@putout/plugin-regexpnpm (opens in a new tab)
@putout/plugin-nodejsnpm (opens in a new tab)
@putout/plugin-typescriptnpm (opens in a new tab)
@putout/plugin-try-catchnpm (opens in a new tab)
@putout/plugin-montagnpm (opens in a new tab)