putout 42.20.1 → 42.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ChangeLog CHANGED
@@ -1,3 +1,46 @@
1
+ 2026.10.23, v42.22.0
2
+
3
+ fix:
4
+ - 6132ee735 @putout/plugin-apply-push: duplicate declaration
5
+
6
+ feature:
7
+ - f55962b7b putout: runners: add
8
+ - 90b1a0898 @putout/engine-loader: runners: add
9
+ - c6152122b @putout/engine-runner: runners: add
10
+ - 044998c8d @putout/test: runners: add support
11
+ - 153aa035f @putout/engine-runner: build-plugin: move
12
+ - 13c71e873 @putout/engine-runner: buildPlugin: move out
13
+ - 2d5211922 @putout/engine-runner: buildPlugin
14
+ - 0effb21fe @putout/plugin-try-catch: finally: improve support
15
+ - 1ac4a8de8 @putout/plugin-logical-expressions: remove-useless-coalescing
16
+ - 041a48c24 @putout/plugin-apply-push: declared
17
+ - 6a2149311 @putout/plugin-apply-push: no-declaration
18
+
19
+ 2026.10.10, v42.21.0
20
+
21
+ fix:
22
+ - 3471ff856 @putout/plugin-putout: sort-readm-file: sort-contents: no semicolon: exclude
23
+ - 10c7f28dc @putout/plugin-putout/convert-replacer-to-includer: no string: exclude
24
+ - 1aaa001ad @putout/plugin-logical-expressions: apply-destructuring: return: add missing "&&"
25
+
26
+ feature:
27
+ - 09e9b2f5a @putout/plugin-apply-to-sorted: add
28
+ - bb5b8419c @putout/plugin-promises: remove-useless-resolve: no args
29
+ - ef17cdeea @putout/plugin-putout: sort-readme-file: add-missing-semicolon: add
30
+ - 3f2c612b7 @putout/plugin-esm: remove-useless-slash: add
31
+ - 1aac0641b @putout/plugin-optional-chaining: convert-optional-to-logical-inside-for-of
32
+ - ee57110f9 @putout/plugin-optional-chaining: convert-optional-to-logical: __a?.__b !== __c -> !__a || __b !== __c
33
+ - 504ca50f6 @putout/plugin-putout: shorten-path-get
34
+ - ef3427f04 @putout/plugin-putout: remove-useless-type-check-declaration: add
35
+ - b796f46ed @putout/plugin-putout: apply-type-check: apply-type-check: VariableDeclarator: exclude
36
+ - 5980af95e @putout/plugin-logical-expressions: simplify: __a || __b && (__c || __a) -> __a || (__b && __c)
37
+ - aa613f86b @putout/plugin-logical-expressions: simplify: (__a || __b) && (__c || __a) -> __a || (__b && __c)
38
+ - e9e31b1ea @putout/plugin-putout: convert-replacer-to-includer: spread: exclude
39
+ - 6baebc223 @putout/plugin-putout: remove-useless-match: method: exclude
40
+ - 5a3da4a21 @putout/plugin-assign: simplify: spread: exclude
41
+ - 21e477748 @putout/plugin-putout: remove-useless-match
42
+ - 28e666b28 @putout/plugin-putout: convert-replacer-to-includer: add
43
+
1
44
  2026.09.28, v42.20.1
2
45
 
3
46
  fix:
@@ -12,6 +12,7 @@ export const defaultOptions = (opts = {}) => {
12
12
  loadPluginsAsync = loader.loadPluginsAsync,
13
13
  runPlugins = runner.runPlugins,
14
14
  progress = createProgress(),
15
+ runners = {},
15
16
  } = opts;
16
17
 
17
18
  return {
@@ -24,5 +25,6 @@ export const defaultOptions = (opts = {}) => {
24
25
  loadPluginsAsync,
25
26
  runPlugins,
26
27
  progress,
28
+ runners,
27
29
  };
28
30
  };
package/lib/transform.js CHANGED
@@ -16,6 +16,7 @@ export const transform = (ast, opts) => {
16
16
  loadPlugins,
17
17
  runPlugins,
18
18
  progress,
19
+ runners,
19
20
  } = opts;
20
21
 
21
22
  const [validationError] = tryCatch(validateRulesRelations, {
@@ -26,6 +27,7 @@ export const transform = (ast, opts) => {
26
27
  const plugins = loadPlugins({
27
28
  pluginNames,
28
29
  rules,
30
+ runners,
29
31
  });
30
32
 
31
33
  const places = runPlugins({
@@ -34,6 +36,7 @@ export const transform = (ast, opts) => {
34
36
  fixCount,
35
37
  plugins,
36
38
  progress,
39
+ runners,
37
40
  });
38
41
 
39
42
  return [
@@ -53,6 +56,7 @@ export const transformAsync = async (ast, opts) => {
53
56
  loadPluginsAsync,
54
57
  runPlugins,
55
58
  progress,
59
+ runners,
56
60
  } = opts;
57
61
 
58
62
  const [validationError] = tryCatch(validateRulesRelations, {
@@ -63,6 +67,7 @@ export const transformAsync = async (ast, opts) => {
63
67
  const plugins = await loadPluginsAsync({
64
68
  pluginNames,
65
69
  rules,
70
+ runners,
66
71
  });
67
72
 
68
73
  const places = runPlugins({
@@ -71,6 +76,7 @@ export const transformAsync = async (ast, opts) => {
71
76
  fixCount,
72
77
  plugins,
73
78
  progress,
79
+ runners,
74
80
  });
75
81
 
76
82
  return [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "putout",
3
- "version": "42.20.1",
3
+ "version": "42.22.0",
4
4
  "type": "module",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "🐊 Pluggable and configurable code transformer with built-in ESLint, Babel and support of js, jsx, typescript, flow, markdown, yaml and json",
@@ -105,6 +105,7 @@
105
105
  "@putout/plugin-apply-shorthand-properties": "^7.0.0",
106
106
  "@putout/plugin-apply-starts-with": "^2.0.0",
107
107
  "@putout/plugin-apply-template-literals": "^5.0.0",
108
+ "@putout/plugin-apply-to-sorted": "^1.0.0",
108
109
  "@putout/plugin-arguments": "^2.0.0",
109
110
  "@putout/plugin-assignment": "^3.0.0",
110
111
  "@putout/plugin-browserlist": "^2.0.0",
package/putout.json CHANGED
@@ -222,6 +222,7 @@
222
222
  "apply-shorthand-properties",
223
223
  "apply-starts-with",
224
224
  "apply-template-literals",
225
+ "apply-to-sorted",
225
226
  "apply-overrides",
226
227
  "arguments",
227
228
  "assignment",