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 hidden (Show)

putout - putout v32.0.6

Published by coderaiser about 1 year ago

🔥 feature

  • 23d26e71c package: @putout/engine-processor v10.0.0
  • 9426d0f7a package: @putout/engine-loader v12.0.0
putout - putout v32.0.5

Published by coderaiser about 1 year ago

🐞 fix

  • d2188e54e @putout/plugin-apply-shorthand-properties: drop comment

🔥 feature

  • 0974239b3 package: eslint-plugin-putout v20.0.0
  • f348498a0 package: @putout/engine-parser v9.0.0
  • 0f39e458f package: @putout/engine-parser v9.0.0
  • 1d7afb1a7 eslint-plugin-putout: drop support of 🐊 < 32
  • b12c792fc package: @putout/engine-parser v9.0.0
  • 2c5993c15 package: @putout/engine-loader v12.0.0
  • 7f705bf74 package: @putout/engine-parser v9.0.0
  • 5716fbefa package: @putout/engine-parser v9.0.0
  • 4a7f21174 package: @putout/engine-parser v9.0.0
  • 93d93e00f package: @putout/compare v13.0.0
  • 01aafde71 package: @putout/engine-parser v9.0.0
  • 6ab072f47 package: @putout/operate v11.0.0
  • 5ed32438f package: @putout/printer v5.0.0
putout - putout v32.0.4

Published by coderaiser about 1 year ago

🔥 feature

  • 60ed9d26c package: @putout/plugin-remove-useless-variables v10.0.0
  • e1a5f9d31 @putout/plugin-remove-useless-variables: drop support of 🐊 < 32
  • 9b49fe4ef @putout/plugin-react-hook-form: drop support of 🐊 < 32
  • 1d40a8c74 package: @putout/plugin-promises v13.0.0
  • a1d600b20 @putout/plugin-promises: drop support of 🐊 < 32
  • e155bc9cf package: @putout/plugin-merge-duplicate-functions v2.0.0
  • 9e9bab0af @putout/plugin-merge-duplicate-functions: drop support of 🐊 < 32
  • 63115c382 package: @putout/traverse v9.0.0
  • 134c6e76e package: @putout/compare v13.0.0
  • 119fe1192 package: @putout/operator-add-args v7.0.0
  • 0c8d1f23f @putout/opererator-add-args: drop support of 🐊 < 32
  • 0a8e9e198 package: @putout/compare v13.0.0
  • 88c653aad package: @putout/engine-runner v19.0.0
  • aea74cfea package: @putout/compare v13.0.0
  • 7bf022d1c package: @putout/operator-declare v8.0.0
  • f52740400 package: @putout/operator-declare v8.0.0
  • 104e2e5aa @putout/operator-declare: drop support of 🐊 < 32
  • 2ab58b8ad package: @putout/operate v11.0.0
  • f15f3492b package: @putout/compare v13.0.0
  • 3a7e4ccf1 package: @putout/operate v11.0.0
  • 48b3fd609 package: @putout/operate v11.0.0
  • ed8dc9f9b @putout/operate: rename: handle assignment
  • 7f72c8b12 @putout/plugin-appy-shorthand-properties: handle assignment
  • 18b0b2af3 @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 32
  • ab6e4e017 @putout/plugin-apply-shorthand-properties: report
  • 48e1872fe package: @putout/plugin-putout v15.0.0
  • 8cba00c2e @putout/plugin-putout: drop support of 🐊 < 32
putout - putout v32.0.3

Published by coderaiser about 1 year ago

🔥 feature

  • 70aba9f6c package: @putout/traverse v9.0.0
  • 763614b4d package: @putout/compare v13.0.0
  • ee6433864 package: @putout/operator-add-args v7.0.0
  • 16e1c8403 @putout/opererator-add-args: drop support of 🐊 < 32
  • 761b509c1 package: @putout/compare v13.0.0
  • f84e4c65c package: @putout/engine-runner v19.0.0
  • d784a789a package: @putout/compare v13.0.0
  • 26578f39f package: @putout/operator-declare v8.0.0
  • 5bba76385 package: @putout/operator-declare v8.0.0
  • b33d04e20 @putout/operator-declare: drop support of 🐊 < 32
  • 134b32ac4 package: @putout/operate v11.0.0
  • 547f07e54 package: @putout/compare v13.0.0
  • f2e102531 package: @putout/operate v11.0.0
  • a9e1fc5a4 package: @putout/operate v11.0.0
  • 730917a6d @putout/operate: rename: handle assignment
  • ac66238b2 @putout/plugin-appy-shorthand-properties: handle assignment
  • 195862df1 @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 32
  • de059bb4a @putout/plugin-apply-shorthand-properties: report
putout - putout v32.0.2

Published by coderaiser about 1 year ago

🔥 feature

  • 5f2dd1b08 package: @putout/plugin-putout v15.0.0
  • 5b9a872e6 @putout/plugin-putout: drop support of ☘🐊 < 32
  • a7ec11eda @putout/plugin-putout: apply-rename: add
putout - putout v32.0.1

Published by coderaiser about 1 year ago

🔥 feature

  • e63e3ed5c package: @putout/plugin-remove-unused-variables v7.0.0
  • a5d4eb3e7 @putout/plugin-remove-unused-variables: drop support of 🐊 < 32
putout - Putout v32

Published by coderaiser about 1 year ago

image

“You are only entitled to the action, never to its fruits.”

(c) Bhagavad Gita

Hi folks 🎈!
The time is come for a new big release of 🐊Putout .
It has a couple major changes related to plugins.

☢️ Merge remove-useless-else to conditions

{
    "rules": {
-        "remove-useless-else": "off"
+        "conditions/remove-useless-else": "off"
    }
}

☢️ Merge merge-if-statements to conditions

{
    "rules": {
-        "merge-if-statements": "off"
+        "conditions/merge-if-statements": "off"
    }
}

ESM

EcmaScript module syntax is the standard way to import and export values between files in JavaScript. The import statement can be used to reference a value exposed by the export statement in another file.

(c) parceljs

Thanks to @putout/plugin-convert-commonjs-to-esm, for a long time 🐊Putout has formatters and processors in ESM.

From now, you can also write plugins in ESM.

All you should do is using async version of 🐊Putout:

await putoutAsync(`const a = 'hello'`, {
    plugins: [
        'apply-shorthand-properties'
    ]
});

Or in case of no loading needed just use:

import * as applyShorthandProperties from '@putout/plugin-apply-shorthand-properties';

putout(`const a = 'hello'`, {
    plugins: [
        ['apply-shorthand-properties', applyShorthandProperties]
    ]
});

It just works in CLI (also with rules), nothing need to be configured 😏.

When using ESM in ESLint just use esm preset:

{
    "extends": [
        "plugin:putout/esm"
    ],
    "plugins": [
        "putout"
    ]
}

That's all for now, have a good day!

🔥 feature

  • 78a406e89 package: @putout/plugin-apply-at v2.0.0
  • 4cd4cae9c package: @putout/plugin-conditions v3.0.0
  • 820f4c04d @putout/plugin-apply-at: drop support of 🐊 < 32
  • 7e47a25a5 @putout/plugin-appy-at: improve support
  • 8cf8b8ce7 @putout/plugin-conditions: remove-useless-else: add support of BreakStatement, ContinueStatement
  • 72b01c702 @putout/plugin-conditions: drop support of 🐊 < 32
  • 24aef49ec @putout/plugin-conditions: merge remove-useless-else
  • 4de6c9253 @putout/plugin-conditions: merge merge-if-statements
  • b3b9bdb6e package: estree-to-babel v7.0.0
  • 189571edb @putout/plugin-github: install-bun: exist with different version
  • 42db11d3b @putout/plugin-minify: merge-variables: exclude AwaitExpression (coderaiser/minify#111)
  • 8f51638a0 @putout/plugin-github: install-bun: improve support of named step
  • f9e00ca31 eslint-plugin-putout: config: autodetect ESM/CommonJS (eslint-community/eslint-plugin-n#105)
  • f639ebeec @putout/plugin-eslint-plugin: convert-context-to-source: getNodeByRangeIndex
  • d997bfe7f package: unified v11.0.3
  • d96fc2828 package: file-entry-cache v7.0.0
  • 61566995b package: find-cache-dir v5.0.0
  • d6f4b7c3e eslint-plugin-putout: putout: sync: ESM (#182)
  • d265df273 @putout/test: eslint: putout (#182)
  • 23d296d26 @putout/engine-loader: loadPlugins: sync: ESM: add more descriptive error message (#182)
putout - putout v31.8.5

Published by coderaiser about 1 year ago

🐞 fix

  • 8251b3118 @putout/plugin-github: set-versions -> update-actions
  • ef5c19f45 @putout/plugin-github: set-versions
  • f7abaf567 @putout/plugin-github: quemu -> qemu

🔥 feature

  • ecfa5ebe1 package: @putout/plugin-strict-mode v8.0.0
  • a63e7236c @putout/plugin-strict-mode: drop support of 🐊 < 31
  • 10a79aa15 @putout/plugin-strict-mode: remove-useless: exclude "use client" (#182)
  • a035efbf4 @putout/plugin-github: update-actions: docker/login-action: add
putout - putout v31.8.4

Published by coderaiser about 1 year ago

🔥 feature

  • 991d24bae package: @putout/plugin-github v8.0.0
  • b11b9077b @putout/plugin-github: set-versions: add
  • d1240765e @putout/plugin-github: set-docker-setup-buildx-version: add
  • 188ef5123 @putout/plugin-github: set-setup-quemu-action-version: add
  • c1ec32298 @putout/plugin-github: set-docker-build-push-version: add
  • fc194a55c @putout/eslint-plugin: drop useless rules
  • 3586e7a13 @putout/plugin-eslint-plugin: drop support of 🐊 < 31
  • db7f163c2 @putout/plugin-eslint-plugin: convert-context-to-source
  • 73f628e0d package: @putout/processor-json v7.0.1
  • 384d8e9ef package: @putout/processor-yaml v6.0.0
  • caa6783db package: @putout/processor-json v7.0.1
  • 9c40e9da0 package: @putout/printer v4.1.0
putout - putout v31.8.3

Published by coderaiser about 1 year ago

🐞 fix

  • cbbfda598 @putout/processor-json: prefix -> name

🔥 feature

  • 95130e258 package: @putout/processor-json v7.0.1
  • 5deaf9283 package: @putout/processor-yaml v6.0.0
  • 95183baac package: @putout/processor-json v7.0.1
  • 759ca9f15 package: @putout/printer v4.1.0
putout - putout v31.8.2

Published by coderaiser about 1 year ago

🔥 feature

  • 0fabbcfa0 package: @putout/processor-json v7.0.0
  • 8ecdff05c @putout/processor-json: rm peerDependencies
  • 8c83f79f1 @putout/processor-json: add is-json
  • 4e6f75057 @putout/plugin-printer: remove-args: print.breakline()
  • e20da190d @putout/plugin-printer: drop support of 🐊 < 31
  • c4da43a67 @putout/plugin-printer: remove-args: print.linebreak()
putout - putout v31.8.1

Published by coderaiser about 1 year ago

🔥 feature

  • c8319fbc9 package: @putout/plugin-for-of v3.0.0
  • 969cd067f @putout/plugin-for-of: for-each: report
  • 83fa6b0de @putout/plugin-nodejs: declare: process: improve Deno support
putout - putout v31.8.0

Published by coderaiser about 1 year ago

🔥 feature

  • 182b6aaf7 @putout/engine-loader: re-structure
  • 3ded6f846 putout: putoutAsync: simplify
  • 06c131ab6 @putout/engine-loader: import: shorten
  • d79e746e8 scripts: generate-schema: add
  • 57d3261e4 @putout/plugin-minify: convert to ESM
putout - putout v31.7.0

Published by coderaiser about 1 year ago

🔥 feature

  • 2a375c896 putout: parseOptions: require -> add prefix "import:"
  • e7693f971 @putout/engine-loader: loadPlugins: add support of 'import:'
  • 40bbe3a6a @putout/plugin-putout: apply-namespace-specifiers: improve support of couple imports in Nested Plugin
  • ed61c1b25 @putout/engine-loader: add support of 'import:'
  • b4d482c56 @putout/plugin-convert-optional-to-logical: squire brace
  • 6ba8e145d @putout/plugin-convert-optional-to-logical: convert to ESM
putout - putout v31.6.0

Published by coderaiser about 1 year ago

🐞 fix

  • f252148df @putout/traverse: contains
  • e762ba09e ## 🔥 feature
    @putout/plugin-nodejs: add-node-preadd

🔥 feature

  • b259bf667 @putout/traverse: reuse path.traverse when possible
  • e762ba09e @putout/plugin-nodejs: add-node-prefix: add
  • 0930cf863 @putout/operate: setLiteralValue: improve support of template
  • a6f8c7d3f @putout/plugin-apply-nullish-coalescing: drop support of 🐊 < 31
  • d7ab0933a @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 31
putout - putout v31.5.0

Published by coderaiser about 1 year ago

🔥 feature

  • 2958ef1d7 eslint-plugin-putout: putout: esm
  • cf5712aea eslint-plugin-putout: esm: use async
  • 58a165199 putout: export findPlacesAsync, transformAsync
  • e0ebe4ff0 @putout/plugin-putout: add-index-to-import: add
putout - putout v31.4.0

Published by coderaiser about 1 year ago

🐞 fix

  • 343c7448c @putout/engine-loader: loadPluginsAsync: disabled rule

🔥 feature

  • d239cf375 package: @putout/plugin-remove-useless-arguments v8.0.0
  • d9d55fab2 @putout/plugin-remove-useless-arguments: drop support of 🐊 < 31
  • bf4dd6331 @putout/plugin-remove-useless-arguments: destructuring: params length
  • c186080fa @putout/plugin-travis: convert to ESM
  • 3423767ec putout: add support of ESM plugins
  • c91c3d2a1 @putout/engine-loader: loadPluginsAsync: speed up with memoize
  • 5b67c34a1 @putout/plugin-putout: apply-namespace-speicifier: exclude alot imports
putout - putout v31.3.0

Published by coderaiser about 1 year ago

🔥 feature

  • 783861f83 package: @putout/plugin-apply-entries v2.0.0
  • 137145031 putout: add putoutAsync
  • 347e572ad @putout/plugin-apply-entries: ESM
  • 66aecbf55 @putout/plugin-apply-namespace-specifier: create-test
  • e0be94d96 @putout/plugin-putout: apply-namespace-specifier: rules
  • 66434fb93 @putout/engine-loader: add loadPluginsAsync
  • 890558e38 eslint-plugin-putout: putout: esm
putout - putout v31.2.4

Published by coderaiser about 1 year ago

🔥 feature

  • 13590f22b package: @putout/plugin-types v3.0.0
  • 3954b47cc @putout/plugin-types: drop support of 🐊 < 31
putout - putout v31.2.3

Published by coderaiser about 1 year ago

🔥 feature

  • 43deeffeb package: @putout/plugin-promises v12.0.0
  • e1e32b16c @putout/plugin-promises: drop support of 🐊 < 31
  • dff6c8a99 @putout/plugin-minify: expand-bindings: arrow
  • ac4ecf335 @putout/plugin-minify: drop support of 🐊 < 31
  • 697e41646 @putout/plugin-putotu: declare: getRules
  • 6c99c86e2 @putout/plugin-putout: convert-get-rule-to-require: add
  • 6dafc7f91 @putout/operator-declare: declare under require
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