# 🏟 Plugins

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

# Appliers

Package Version
@putout/plugin-apply-array-at npm (opens new window)
@putout/plugin-apply-is-array npm (opens new window)
@putout/plugin-apply-numeric-separators npm (opens new window)
@putout/plugin-apply-destructuring npm (opens new window)
@putout/plugin-apply-optional-chaining npm (opens new window)
@putout/plugin-apply-if-condition npm (opens new window)
@putout/plugin-apply-early-return npm (opens new window)

# Splitters

Package Version
@putout/plugin-split-variable-declarations npm (opens new window)
@putout/plugin-split-nested-destructuring npm (opens new window)

# Mergers

Package Version
@putout/plugin-merge-destructuring-properties npm (opens new window)
@putout/plugin-merge-duplicate-imports npm (opens new window)
@putout/plugin-merge-if-statements npm (opens new window)

# Converters

Package Version
@putout/plugin-convert-apply-to-spread npm (opens new window)
@putout/plugin-convert-quotes-to-backticks npm (opens new window)
@putout/plugin-convert-bitwise-to-logical npm (opens new window)
@putout/plugin-convert-concat-to-flat npm (opens new window)
@putout/plugin-convert-esm-to-commonjs npm (opens new window)
@putout/plugin-convert-commonjs-to-esm npm (opens new window)
@putout/plugin-convert-array-copy-to-slice npm (opens new window)
@putout/plugin-convert-template-to-string npm (opens new window)
@putout/plugin-convert-equal-to-strict-equal npm (opens new window)
@putout/plugin-convert-index-of-to-includes npm (opens new window)
@putout/plugin-convert-math-pow npm (opens new window)
@putout/plugin-convert-to-arrow-function npm (opens new window)
@putout/plugin-convert-for-to-for-of npm (opens new window)
@putout/plugin-convert-for-each-to-for-of npm (opens new window)
@putout/plugin-convert-for-in-to-for-of npm (opens new window)
@putout/plugin-convert-map-to-for-of npm (opens new window)
@putout/plugin-convert-object-assign-to-merge-spread npm (opens new window)
@putout/plugin-convert-comparison-to-boolean npm (opens new window)
@putout/plugin-convert-typeof-to-is-type npm (opens new window)
@putout/plugin-convert-mock-require-to-mock-import npm (opens new window)
@putout/plugin-convert-assignment-to-arrow-function npm (opens new window)
@putout/plugin-convert-assignment-to-comparison npm (opens new window)

# Removers

Package Version
@putout/plugin-remove-unused-variables npm (opens new window)
@putout/plugin-remove-unused-for-of-variables npm (opens new window)
@putout/plugin-remove-unreferenced-variables npm (opens new window)
@putout/plugin-remove-duplicate-keys npm (opens new window)
@putout/plugin-remove-duplicate-case npm (opens new window)
@putout/plugin-remove-unused-expressions npm (opens new window)
@putout/plugin-remove-unused-private-fields npm (opens new window)
@putout/plugin-remove-useless-variables npm (opens new window)
@putout/plugin-remove-useless-else npm (opens new window)
@putout/plugin-remove-useless-map npm (opens new window)
@putout/plugin-remove-useless-new npm (opens new window)
@putout/plugin-remove-useless-constructor npm (opens new window)
@putout/plugin-remove-useless-return npm (opens new window)
@putout/plugin-remove-useless-continue npm (opens new window)
@putout/plugin-remove-useless-operand npm (opens new window)
@putout/plugin-remove-useless-array-constructor npm (opens new window)
@putout/plugin-remove-useless-conditions npm (opens new window)
@putout/plugin-remove-useless-type-conversion npm (opens new window)
@putout/plugin-remove-useless-functions npm (opens new window)
@putout/plugin-remove-useless-typeof npm (opens new window)
@putout/plugin-remove-useless-array-from npm (opens new window)
@putout/plugin-remove-useless-spread npm (opens new window)
@putout/plugin-remove-useless-array-entries npm (opens new window)
@putout/plugin-remove-useless-arguments npm (opens new window)
@putout/plugin-remove-useless-escape npm (opens new window)
@putout/plugin-remove-useless-template-expressions npm (opens new window)
@putout/plugin-remove-useless-for-of npm (opens new window)
@putout/plugin-remove-debugger npm (opens new window)
@putout/plugin-remove-iife npm (opens new window)
@putout/plugin-remove-unreachable-code npm (opens new window)
@putout/plugin-remove-console npm (opens new window)
@putout/plugin-remove-empty npm (opens new window)
@putout/plugin-remove-empty-pattern npm (opens new window)
@putout/plugin-remove-constant-conditions npm (opens new window)
@putout/plugin-remove-boolean-from-assertions npm (opens new window)
@putout/plugin-remove-boolean-from-logical-expressions npm (opens new window)
@putout/plugin-remove-duplicates-from-logical-expressions npm (opens new window)
@putout/plugin-remove-nested-blocks npm (opens new window)

# Simplifiers

Package Version
@putout/plugin-simplify-assignment npm (opens new window)
@putout/plugin-simplify-logical-expressions npm (opens new window)
@putout/plugin-simplify-ternary npm (opens new window)

# Not bundled

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

Package Version
@putout/plugin-react-hooks npm (opens new window)
@putout/plugin-convert-is-nan-to-number-is-nan npm (opens new window)
@putout/plugin-convert-spread-to-array-from npm (opens new window)
@putout/plugin-apply-shorthand-properties npm (opens new window)
@putout/plugin-apply-nullish-coalescing npm (opens new window)
@putout/plugin-cloudcmd npm (opens new window)
@putout/plugin-postcss npm (opens new window)
@putout/plugin-jest npm (opens new window)
@putout/plugin-travis npm (opens new window)
@putout/plugin-convert-throw npm (opens new window)

# Groups

Package Version
@putout/plugin-declare-undefined-variables npm (opens new window)
@putout/plugin-declare-before-reference npm (opens new window)
@putout/plugin-reuse-duplicate-init npm (opens new window)
@putout/plugin-madrun npm (opens new window)
@putout/plugin-strict-mode npm (opens new window)
@putout/plugin-extract-sequence-expressions npm (opens new window)
@putout/plugin-extract-object-properties npm (opens new window)
@putout/plugin-putout npm (opens new window)
@putout/plugin-putout-config npm (opens new window)
@putout/plugin-tape npm (opens new window)
@putout/plugin-webpack npm (opens new window)
@putout/plugin-eslint npm (opens new window)
@putout/plugin-package-json npm (opens new window)
@putout/plugin-promises npm (opens new window)
@putout/plugin-gitignore npm (opens new window)
@putout/plugin-npmignore npm (opens new window)
@putout/plugin-browserlist npm (opens new window)
@putout/plugin-github npm (opens new window)
@putout/plugin-regexp npm (opens new window)
@putout/plugin-nodejs npm (opens new window)
@putout/plugin-typescript npm (opens new window)
@putout/plugin-try-catch npm (opens new window)
@putout/plugin-montag npm (opens new window)
Last Updated: 10 months ago