@openrewrite/rewrite 8.68.0-20251127-184755 → 8.68.0-20251127-195213

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/dist/index.js CHANGED
@@ -62,13 +62,13 @@ function activate(registry) {
62
62
  const { OrderImports } = yield import("./recipe/index.js");
63
63
  const { ModernizeOctalEscapeSequences, ModernizeOctalLiterals, RemoveDuplicateObjectKeys } = yield import("./javascript/migrate/es6/index.js");
64
64
  const { ExportAssignmentToExportDefault } = yield import("./javascript/migrate/typescript/index.js");
65
- const { SimplifyObjectBindingProperties } = yield import("./javascript/cleanup/index.js");
65
+ const { UseObjectPropertyShorthand } = yield import("./javascript/cleanup/index.js");
66
66
  registry.register(ExportAssignmentToExportDefault);
67
67
  registry.register(OrderImports);
68
68
  registry.register(ModernizeOctalEscapeSequences);
69
69
  registry.register(ModernizeOctalLiterals);
70
70
  registry.register(RemoveDuplicateObjectKeys);
71
- registry.register(SimplifyObjectBindingProperties);
71
+ registry.register(UseObjectPropertyShorthand);
72
72
  });
73
73
  }
74
74
  rpc_1.RpcCodecs.registerCodec(markers_1.MarkersKind.ParseExceptionResult, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,4BAYC;AAhDD;;;;;;;;;;;;;;GAcG;AACH,+BAA+D;AAC/D,iCAAsD;AACtD,uCAA4D;AAG5D,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,gDAA8B;AAC9B,kDAAgC;AAChC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB;AAEtB,uCAAuC;AACvC,SAAsB,QAAQ,CAAC,QAAwB;;QACnD,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAC,6BAA6B,EAAE,sBAAsB,EAAE,yBAAyB,EAAC,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC7I,MAAM,EAAC,+BAA+B,EAAC,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;QACnG,MAAM,EAAC,+BAA+B,EAAC,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAExF,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QACjD,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAC7C,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;CAAA;AAED,eAAS,CAAC,aAAa,CAAC,qBAAW,CAAC,oBAAoB,EAAE;IAChD,OAAO,CAAC,KAA2B,EAAE,CAAe;;YACtD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;KAAA;IACK,UAAU,CAAC,MAA4B,EAAE,CAAkB;;YAC7D,MAAM,KAAK,GAAgC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;YAC/D,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,4BAYC;AAhDD;;;;;;;;;;;;;;GAcG;AACH,+BAA+D;AAC/D,iCAAsD;AACtD,uCAA4D;AAG5D,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,gDAA8B;AAC9B,kDAAgC;AAChC,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB;AAEtB,uCAAuC;AACvC,SAAsB,QAAQ,CAAC,QAAwB;;QACnD,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAC,6BAA6B,EAAE,sBAAsB,EAAE,yBAAyB,EAAC,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC7I,MAAM,EAAC,+BAA+B,EAAC,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;QACnG,MAAM,EAAC,0BAA0B,EAAC,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAEnF,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QACjD,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAC7C,QAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;CAAA;AAED,eAAS,CAAC,aAAa,CAAC,qBAAW,CAAC,oBAAoB,EAAE;IAChD,OAAO,CAAC,KAA2B,EAAE,CAAe;;YACtD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;KAAA;IACK,UAAU,CAAC,MAA4B,EAAE,CAAkB;;YAC7D,MAAM,KAAK,GAAgC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;YAC/D,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;KAAA;CACJ,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export { SimplifyObjectBindingProperties } from "./simplify-object-binding-properties";
1
+ export { UseObjectPropertyShorthand } from "./use-object-property-shorthand";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/cleanup/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/javascript/cleanup/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC"}
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.SimplifyObjectBindingProperties = void 0;
19
- var simplify_object_binding_properties_1 = require("./simplify-object-binding-properties");
20
- Object.defineProperty(exports, "SimplifyObjectBindingProperties", { enumerable: true, get: function () { return simplify_object_binding_properties_1.SimplifyObjectBindingProperties; } });
18
+ exports.UseObjectPropertyShorthand = void 0;
19
+ var use_object_property_shorthand_1 = require("./use-object-property-shorthand");
20
+ Object.defineProperty(exports, "UseObjectPropertyShorthand", { enumerable: true, get: function () { return use_object_property_shorthand_1.UseObjectPropertyShorthand; } });
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/cleanup/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2FAAqF;AAA7E,qJAAA,+BAA+B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/javascript/cleanup/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iFAA2E;AAAnE,2IAAA,0BAA0B,OAAA"}
@@ -0,0 +1,22 @@
1
+ import { Recipe } from "../../recipe";
2
+ import { TreeVisitor } from "../../visitor";
3
+ import { ExecutionContext } from "../../execution";
4
+ /**
5
+ * Simplifies object properties where the key and value have the same name,
6
+ * in both destructuring patterns and object literals.
7
+ *
8
+ * Destructuring examples:
9
+ * - `const { x: x } = obj` becomes `const { x } = obj`
10
+ * - `function({ ref: ref, ...props })` becomes `function({ ref, ...props })`
11
+ *
12
+ * Object literal examples:
13
+ * - `{ x: x }` becomes `{ x }`
14
+ * - `{ foo: foo, bar: bar }` becomes `{ foo, bar }`
15
+ */
16
+ export declare class UseObjectPropertyShorthand extends Recipe {
17
+ name: string;
18
+ displayName: string;
19
+ description: string;
20
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
21
+ }
22
+ //# sourceMappingURL=use-object-property-shorthand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-object-property-shorthand.d.ts","sourceRoot":"","sources":["../../../src/javascript/cleanup/use-object-property-shorthand.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAMjD;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,SAAQ,MAAM;IAClD,IAAI,SAAsE;IAC1E,WAAW,SAAmC;IAC9C,WAAW,SAA+L;IAEpM,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAgH9D"}
@@ -24,55 +24,55 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
24
24
  });
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.SimplifyObjectBindingProperties = void 0;
27
+ exports.UseObjectPropertyShorthand = void 0;
28
28
  const recipe_1 = require("../../recipe");
29
29
  const visitor_1 = require("../visitor");
30
30
  const java_1 = require("../../java");
31
31
  const tree_1 = require("../tree");
32
32
  const immer_1 = require("immer");
33
33
  /**
34
- * Simplifies object binding properties where the key and value have the same name.
34
+ * Simplifies object properties where the key and value have the same name,
35
+ * in both destructuring patterns and object literals.
35
36
  *
36
- * Examples:
37
+ * Destructuring examples:
38
+ * - `const { x: x } = obj` becomes `const { x } = obj`
39
+ * - `function({ ref: ref, ...props })` becomes `function({ ref, ...props })`
40
+ *
41
+ * Object literal examples:
37
42
  * - `{ x: x }` becomes `{ x }`
38
- * - `{ ref: ref, ...props }` becomes `{ ref, ...props }`
39
43
  * - `{ foo: foo, bar: bar }` becomes `{ foo, bar }`
40
44
  */
41
- class SimplifyObjectBindingProperties extends recipe_1.Recipe {
45
+ class UseObjectPropertyShorthand extends recipe_1.Recipe {
42
46
  constructor() {
43
47
  super(...arguments);
44
- this.name = "org.openrewrite.javascript.cleanup.simplify-object-binding-properties";
45
- this.displayName = "Simplify object binding properties";
46
- this.description = "Simplifies object destructuring patterns where the property name and variable name are the same (e.g., `{ x: x }` becomes `{ x }`).";
48
+ this.name = "org.openrewrite.javascript.cleanup.use-object-property-shorthand";
49
+ this.displayName = "Use object property shorthand";
50
+ this.description = "Simplifies object properties where the property name and value/variable name are the same (e.g., `{ x: x }` becomes `{ x }`). Applies to both destructuring patterns and object literals.";
47
51
  }
48
52
  editor() {
49
53
  return __awaiter(this, void 0, void 0, function* () {
50
54
  return new class extends visitor_1.JavaScriptVisitor {
55
+ /**
56
+ * Handle object binding patterns (destructuring): const { x: x } = obj
57
+ */
51
58
  visitObjectBindingPattern(pattern, p) {
52
59
  const _super = Object.create(null, {
53
60
  visitObjectBindingPattern: { get: () => super.visitObjectBindingPattern }
54
61
  });
55
62
  return __awaiter(this, void 0, void 0, function* () {
56
- // First, recursively visit children
57
63
  const visited = yield _super.visitObjectBindingPattern.call(this, pattern, p);
58
64
  let hasChanges = false;
59
- // Simplify any properties where key === value
60
65
  const simplifiedBindings = visited.bindings.elements.map(right => {
61
66
  var _a, _b;
62
67
  const element = right.element;
63
- // Check if this is a binding element (e.g., { x: x })
64
68
  if (element.kind === tree_1.JS.Kind.BindingElement) {
65
69
  const binding = element;
66
- // Check if the property name is an identifier
67
70
  if (((_a = binding.propertyName) === null || _a === void 0 ? void 0 : _a.element.kind) === java_1.J.Kind.Identifier) {
68
71
  const propName = binding.propertyName.element.simpleName;
69
- // Check if the binding name is also an identifier with the same name
70
72
  if (((_b = binding.name) === null || _b === void 0 ? void 0 : _b.kind) === java_1.J.Kind.Identifier) {
71
73
  const bindingName = binding.name.simpleName;
72
- // If they match, simplify to shorthand syntax
73
74
  if (propName === bindingName) {
74
75
  hasChanges = true;
75
- // Remove propertyName and transfer its prefix to the name
76
76
  return Object.assign(Object.assign({}, right), { element: Object.assign(Object.assign({}, binding), { propertyName: undefined, name: Object.assign(Object.assign({}, binding.name), { prefix: binding.propertyName.element.prefix }) }) });
77
77
  }
78
78
  }
@@ -83,15 +83,62 @@ class SimplifyObjectBindingProperties extends recipe_1.Recipe {
83
83
  if (!hasChanges) {
84
84
  return visited;
85
85
  }
86
- // Return the pattern with simplified bindings
87
86
  return (0, immer_1.produce)(visited, draft => {
88
87
  draft.bindings.elements = simplifiedBindings;
89
88
  });
90
89
  });
91
90
  }
91
+ /**
92
+ * Handle object literals: { x: x }
93
+ * Object literals are represented as J.NewClass with a body containing JS.PropertyAssignment statements.
94
+ */
95
+ visitNewClass(newClass, ctx) {
96
+ const _super = Object.create(null, {
97
+ visitNewClass: { get: () => super.visitNewClass }
98
+ });
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ var _a;
101
+ const visited = yield _super.visitNewClass.call(this, newClass, ctx);
102
+ // Only process object literals (NewClass with body but no class or arguments)
103
+ if (!visited.body || visited.class || (((_a = visited.arguments) === null || _a === void 0 ? void 0 : _a.elements) && visited.arguments.elements.length > 0)) {
104
+ return visited;
105
+ }
106
+ const statements = visited.body.statements;
107
+ if (!statements || statements.length === 0) {
108
+ return visited;
109
+ }
110
+ let hasChanges = false;
111
+ const simplifiedStatements = statements.map(stmt => {
112
+ var _a;
113
+ if (stmt.element.kind === tree_1.JS.Kind.PropertyAssignment) {
114
+ const prop = stmt.element;
115
+ // Check if the property name is an identifier
116
+ if (prop.name.element.kind === java_1.J.Kind.Identifier) {
117
+ const propName = prop.name.element.simpleName;
118
+ // Check if the initializer is also an identifier with the same name
119
+ if (((_a = prop.initializer) === null || _a === void 0 ? void 0 : _a.kind) === java_1.J.Kind.Identifier) {
120
+ const initName = prop.initializer.simpleName;
121
+ if (propName === initName) {
122
+ hasChanges = true;
123
+ // Remove the initializer to use shorthand syntax
124
+ return Object.assign(Object.assign({}, stmt), { element: Object.assign(Object.assign({}, prop), { initializer: undefined }) });
125
+ }
126
+ }
127
+ }
128
+ }
129
+ return stmt;
130
+ });
131
+ if (!hasChanges) {
132
+ return visited;
133
+ }
134
+ return (0, immer_1.produce)(visited, draft => {
135
+ draft.body.statements = simplifiedStatements;
136
+ });
137
+ });
138
+ }
92
139
  };
93
140
  });
94
141
  }
95
142
  }
96
- exports.SimplifyObjectBindingProperties = SimplifyObjectBindingProperties;
97
- //# sourceMappingURL=simplify-object-binding-properties.js.map
143
+ exports.UseObjectPropertyShorthand = UseObjectPropertyShorthand;
144
+ //# sourceMappingURL=use-object-property-shorthand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-object-property-shorthand.js","sourceRoot":"","sources":["../../../src/javascript/cleanup/use-object-property-shorthand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-mapping.d.ts","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAS7B,qBAAa,qBAAqB;IAa1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAIpC,OAAO,EAAE,EAAE,CAAC,WAAW;IA4B5C,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS;IAoBrC,OAAO,CAAC,OAAO;IAgNf,OAAO,CAAC,YAAY;IA4BpB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;IAQ5C,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;IAoKtD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAkDjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,WAAW;IAanB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;IA0TlD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6HzB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA4CpC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAmCjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CA8D/B"}
1
+ {"version":3,"file":"type-mapping.d.ts","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAS7B,qBAAa,qBAAqB;IAa1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAIpC,OAAO,EAAE,EAAE,CAAC,WAAW;IA4B5C,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS;IAoBrC,OAAO,CAAC,OAAO;IAuNf,OAAO,CAAC,YAAY;IA4BpB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;IAQ5C,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;IAoKtD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAkDjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,WAAW;IAanB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;IA0TlD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA6F7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6HzB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA4CpC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAmCjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CA8D/B"}
@@ -112,6 +112,13 @@ class JavaScriptTypeMapping {
112
112
  if (existing) {
113
113
  return existing;
114
114
  }
115
+ // TypeScript represents `boolean` as a union of `false | true`, but the union
116
+ // type still has the Boolean flag set. Check this early to return Primitive.Boolean
117
+ // before we process it as a generic union type.
118
+ if (type.flags & typescript_1.default.TypeFlags.Boolean) {
119
+ this.typeCache.set(signature, java_1.Type.Primitive.Boolean);
120
+ return java_1.Type.Primitive.Boolean;
121
+ }
115
122
  // Get symbol for later use in type detection
116
123
  const symbol = (_b = type.getSymbol) === null || _b === void 0 ? void 0 : _b.call(type);
117
124
  // IMPORTANT: Check if this is a type reference to a parameterized type FIRST
@@ -224,8 +231,7 @@ class JavaScriptTypeMapping {
224
231
  // so we can just process the resolved type normally (falling through to union handling below).
225
232
  // Check for union types (e.g., string | number)
226
233
  if (type.flags & typescript_1.default.TypeFlags.Union) {
227
- const unionType = type;
228
- return this.createUnionType(unionType, signature);
234
+ return this.createUnionType(type, signature);
229
235
  }
230
236
  // Check for intersection types (e.g., A & B)
231
237
  if (type.flags & typescript_1.default.TypeFlags.Intersection) {
@@ -1 +1 @@
1
- {"version":3,"file":"type-mapping.js","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-mapping.js","sourceRoot":"","sources":["../../src/javascript/type-mapping.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.68.0-20251127-184755
1
+ 8.68.0-20251127-195213
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.68.0-20251127-184755",
3
+ "version": "8.68.0-20251127-195213",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
package/src/index.ts CHANGED
@@ -38,14 +38,14 @@ export async function activate(registry: RecipeRegistry): Promise<void> {
38
38
  const {OrderImports} = await import("./recipe/index.js");
39
39
  const {ModernizeOctalEscapeSequences, ModernizeOctalLiterals, RemoveDuplicateObjectKeys} = await import("./javascript/migrate/es6/index.js");
40
40
  const {ExportAssignmentToExportDefault} = await import("./javascript/migrate/typescript/index.js");
41
- const {SimplifyObjectBindingProperties} = await import("./javascript/cleanup/index.js");
41
+ const {UseObjectPropertyShorthand} = await import("./javascript/cleanup/index.js");
42
42
 
43
43
  registry.register(ExportAssignmentToExportDefault);
44
44
  registry.register(OrderImports);
45
45
  registry.register(ModernizeOctalEscapeSequences);
46
46
  registry.register(ModernizeOctalLiterals);
47
47
  registry.register(RemoveDuplicateObjectKeys);
48
- registry.register(SimplifyObjectBindingProperties);
48
+ registry.register(UseObjectPropertyShorthand);
49
49
  }
50
50
 
51
51
  RpcCodecs.registerCodec(MarkersKind.ParseExceptionResult, {
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export {SimplifyObjectBindingProperties} from "./simplify-object-binding-properties";
17
+ export {UseObjectPropertyShorthand} from "./use-object-property-shorthand";
@@ -0,0 +1,154 @@
1
+ /*
2
+ * Copyright 2025 the original author or authors.
3
+ * <p>
4
+ * Licensed under the Moderne Source Available License (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ * <p>
8
+ * https://docs.moderne.io/licensing/moderne-source-available-license
9
+ * <p>
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {Recipe} from "../../recipe";
18
+ import {TreeVisitor} from "../../visitor";
19
+ import {ExecutionContext} from "../../execution";
20
+ import {JavaScriptVisitor} from "../visitor";
21
+ import {J} from "../../java";
22
+ import {JS} from "../tree";
23
+ import {produce} from "immer";
24
+
25
+ /**
26
+ * Simplifies object properties where the key and value have the same name,
27
+ * in both destructuring patterns and object literals.
28
+ *
29
+ * Destructuring examples:
30
+ * - `const { x: x } = obj` becomes `const { x } = obj`
31
+ * - `function({ ref: ref, ...props })` becomes `function({ ref, ...props })`
32
+ *
33
+ * Object literal examples:
34
+ * - `{ x: x }` becomes `{ x }`
35
+ * - `{ foo: foo, bar: bar }` becomes `{ foo, bar }`
36
+ */
37
+ export class UseObjectPropertyShorthand extends Recipe {
38
+ name = "org.openrewrite.javascript.cleanup.use-object-property-shorthand";
39
+ displayName = "Use object property shorthand";
40
+ description = "Simplifies object properties where the property name and value/variable name are the same (e.g., `{ x: x }` becomes `{ x }`). Applies to both destructuring patterns and object literals.";
41
+
42
+ async editor(): Promise<TreeVisitor<any, ExecutionContext>> {
43
+ return new class extends JavaScriptVisitor<ExecutionContext> {
44
+
45
+ /**
46
+ * Handle object binding patterns (destructuring): const { x: x } = obj
47
+ */
48
+ protected async visitObjectBindingPattern(pattern: JS.ObjectBindingPattern, p: ExecutionContext): Promise<J | undefined> {
49
+ const visited = await super.visitObjectBindingPattern(pattern, p) as JS.ObjectBindingPattern;
50
+
51
+ let hasChanges = false;
52
+
53
+ const simplifiedBindings = visited.bindings.elements.map(right => {
54
+ const element = right.element;
55
+
56
+ if (element.kind === JS.Kind.BindingElement) {
57
+ const binding = element as JS.BindingElement;
58
+
59
+ if (binding.propertyName?.element.kind === J.Kind.Identifier) {
60
+ const propName = (binding.propertyName.element as J.Identifier).simpleName;
61
+
62
+ if (binding.name?.kind === J.Kind.Identifier) {
63
+ const bindingName = (binding.name as J.Identifier).simpleName;
64
+
65
+ if (propName === bindingName) {
66
+ hasChanges = true;
67
+ return {
68
+ ...right,
69
+ element: {
70
+ ...binding,
71
+ propertyName: undefined,
72
+ name: {
73
+ ...binding.name,
74
+ prefix: binding.propertyName.element.prefix
75
+ }
76
+ }
77
+ } as J.RightPadded<JS.BindingElement>;
78
+ }
79
+ }
80
+ }
81
+ }
82
+
83
+ return right;
84
+ });
85
+
86
+ if (!hasChanges) {
87
+ return visited;
88
+ }
89
+
90
+ return produce(visited, draft => {
91
+ draft.bindings.elements = simplifiedBindings;
92
+ });
93
+ }
94
+
95
+ /**
96
+ * Handle object literals: { x: x }
97
+ * Object literals are represented as J.NewClass with a body containing JS.PropertyAssignment statements.
98
+ */
99
+ protected async visitNewClass(newClass: J.NewClass, ctx: ExecutionContext): Promise<J | undefined> {
100
+ const visited = await super.visitNewClass(newClass, ctx) as J.NewClass;
101
+
102
+ // Only process object literals (NewClass with body but no class or arguments)
103
+ if (!visited.body || visited.class || (visited.arguments?.elements && visited.arguments.elements.length > 0)) {
104
+ return visited;
105
+ }
106
+
107
+ const statements = visited.body.statements;
108
+ if (!statements || statements.length === 0) {
109
+ return visited;
110
+ }
111
+
112
+ let hasChanges = false;
113
+
114
+ const simplifiedStatements = statements.map(stmt => {
115
+ if (stmt.element.kind === JS.Kind.PropertyAssignment) {
116
+ const prop = stmt.element as JS.PropertyAssignment;
117
+
118
+ // Check if the property name is an identifier
119
+ if (prop.name.element.kind === J.Kind.Identifier) {
120
+ const propName = (prop.name.element as J.Identifier).simpleName;
121
+
122
+ // Check if the initializer is also an identifier with the same name
123
+ if (prop.initializer?.kind === J.Kind.Identifier) {
124
+ const initName = (prop.initializer as J.Identifier).simpleName;
125
+
126
+ if (propName === initName) {
127
+ hasChanges = true;
128
+ // Remove the initializer to use shorthand syntax
129
+ return {
130
+ ...stmt,
131
+ element: {
132
+ ...prop,
133
+ initializer: undefined
134
+ }
135
+ } as J.RightPadded<JS.PropertyAssignment>;
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ return stmt;
142
+ });
143
+
144
+ if (!hasChanges) {
145
+ return visited;
146
+ }
147
+
148
+ return produce(visited, draft => {
149
+ draft.body!.statements = simplifiedStatements;
150
+ });
151
+ }
152
+ };
153
+ }
154
+ }
@@ -125,6 +125,14 @@ export class JavaScriptTypeMapping {
125
125
  return existing;
126
126
  }
127
127
 
128
+ // TypeScript represents `boolean` as a union of `false | true`, but the union
129
+ // type still has the Boolean flag set. Check this early to return Primitive.Boolean
130
+ // before we process it as a generic union type.
131
+ if (type.flags & ts.TypeFlags.Boolean) {
132
+ this.typeCache.set(signature, Type.Primitive.Boolean);
133
+ return Type.Primitive.Boolean;
134
+ }
135
+
128
136
  // Get symbol for later use in type detection
129
137
  const symbol = type.getSymbol?.();
130
138
 
@@ -258,8 +266,7 @@ export class JavaScriptTypeMapping {
258
266
 
259
267
  // Check for union types (e.g., string | number)
260
268
  if (type.flags & ts.TypeFlags.Union) {
261
- const unionType = type as ts.UnionType;
262
- return this.createUnionType(unionType, signature);
269
+ return this.createUnionType(type as ts.UnionType, signature);
263
270
  }
264
271
 
265
272
  // Check for intersection types (e.g., A & B)
@@ -1,18 +0,0 @@
1
- import { Recipe } from "../../recipe";
2
- import { TreeVisitor } from "../../visitor";
3
- import { ExecutionContext } from "../../execution";
4
- /**
5
- * Simplifies object binding properties where the key and value have the same name.
6
- *
7
- * Examples:
8
- * - `{ x: x }` becomes `{ x }`
9
- * - `{ ref: ref, ...props }` becomes `{ ref, ...props }`
10
- * - `{ foo: foo, bar: bar }` becomes `{ foo, bar }`
11
- */
12
- export declare class SimplifyObjectBindingProperties extends Recipe {
13
- name: string;
14
- displayName: string;
15
- description: string;
16
- editor(): Promise<TreeVisitor<any, ExecutionContext>>;
17
- }
18
- //# sourceMappingURL=simplify-object-binding-properties.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simplify-object-binding-properties.d.ts","sourceRoot":"","sources":["../../../src/javascript/cleanup/simplify-object-binding-properties.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAMjD;;;;;;;GAOG;AACH,qBAAa,+BAAgC,SAAQ,MAAM;IACvD,IAAI,SAA2E;IAC/E,WAAW,SAAwC;IACnD,WAAW,SAAyI;IAE9I,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0D9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"simplify-object-binding-properties.js","sourceRoot":"","sources":["../../../src/javascript/cleanup/simplify-object-binding-properties.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,yCAAoC;AAGpC,wCAA6C;AAC7C,qCAA6B;AAC7B,kCAA2B;AAC3B,iCAA8B;AAE9B;;;;;;;GAOG;AACH,MAAa,+BAAgC,SAAQ,eAAM;IAA3D;;QACI,SAAI,GAAG,uEAAuE,CAAC;QAC/E,gBAAW,GAAG,oCAAoC,CAAC;QACnD,gBAAW,GAAG,qIAAqI,CAAC;IA4DxJ,CAAC;IA1DS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,2BAAmC;gBACxC,yBAAyB,CAAC,OAAgC,EAAE,CAAmB;;;;;wBAC3F,oCAAoC;wBACpC,MAAM,OAAO,GAAG,MAAM,OAAM,yBAAyB,YAAC,OAAO,EAAE,CAAC,CAA4B,CAAC;wBAE7F,IAAI,UAAU,GAAG,KAAK,CAAC;wBAEvB,8CAA8C;wBAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;;4BAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;4BAE9B,sDAAsD;4BACtD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gCAC1C,MAAM,OAAO,GAAG,OAA4B,CAAC;gCAE7C,8CAA8C;gCAC9C,IAAI,CAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,OAAO,CAAC,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oCAC3D,MAAM,QAAQ,GAAI,OAAO,CAAC,YAAY,CAAC,OAAwB,CAAC,UAAU,CAAC;oCAE3E,qEAAqE;oCACrE,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wCAC3C,MAAM,WAAW,GAAI,OAAO,CAAC,IAAqB,CAAC,UAAU,CAAC;wCAE9D,8CAA8C;wCAC9C,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;4CAC3B,UAAU,GAAG,IAAI,CAAC;4CAClB,0DAA0D;4CAC1D,OAAO,gCACA,KAAK,KACR,OAAO,kCACA,OAAO,KACV,YAAY,EAAE,SAAS,EACvB,IAAI,kCACG,OAAO,CAAC,IAAI,KACf,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,SAGlB,CAAC;wCAC1C,CAAC;oCACL,CAAC;gCACL,CAAC;4BACL,CAAC;4BAED,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,CAAC;wBAEH,IAAI,CAAC,UAAU,EAAE,CAAC;4BACd,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,8CAA8C;wBAC9C,OAAO,IAAA,eAAO,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE;4BAC5B,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,kBAAkB,CAAC;wBACjD,CAAC,CAAC,CAAC;oBACP,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AA/DD,0EA+DC"}
@@ -1,96 +0,0 @@
1
- /*
2
- * Copyright 2025 the original author or authors.
3
- * <p>
4
- * Licensed under the Moderne Source Available License (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- * <p>
8
- * https://docs.moderne.io/licensing/moderne-source-available-license
9
- * <p>
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import {Recipe} from "../../recipe";
18
- import {TreeVisitor} from "../../visitor";
19
- import {ExecutionContext} from "../../execution";
20
- import {JavaScriptVisitor} from "../visitor";
21
- import {J} from "../../java";
22
- import {JS} from "../tree";
23
- import {produce} from "immer";
24
-
25
- /**
26
- * Simplifies object binding properties where the key and value have the same name.
27
- *
28
- * Examples:
29
- * - `{ x: x }` becomes `{ x }`
30
- * - `{ ref: ref, ...props }` becomes `{ ref, ...props }`
31
- * - `{ foo: foo, bar: bar }` becomes `{ foo, bar }`
32
- */
33
- export class SimplifyObjectBindingProperties extends Recipe {
34
- name = "org.openrewrite.javascript.cleanup.simplify-object-binding-properties";
35
- displayName = "Simplify object binding properties";
36
- description = "Simplifies object destructuring patterns where the property name and variable name are the same (e.g., `{ x: x }` becomes `{ x }`).";
37
-
38
- async editor(): Promise<TreeVisitor<any, ExecutionContext>> {
39
- return new class extends JavaScriptVisitor<ExecutionContext> {
40
- protected async visitObjectBindingPattern(pattern: JS.ObjectBindingPattern, p: ExecutionContext): Promise<J | undefined> {
41
- // First, recursively visit children
42
- const visited = await super.visitObjectBindingPattern(pattern, p) as JS.ObjectBindingPattern;
43
-
44
- let hasChanges = false;
45
-
46
- // Simplify any properties where key === value
47
- const simplifiedBindings = visited.bindings.elements.map(right => {
48
- const element = right.element;
49
-
50
- // Check if this is a binding element (e.g., { x: x })
51
- if (element.kind === JS.Kind.BindingElement) {
52
- const binding = element as JS.BindingElement;
53
-
54
- // Check if the property name is an identifier
55
- if (binding.propertyName?.element.kind === J.Kind.Identifier) {
56
- const propName = (binding.propertyName.element as J.Identifier).simpleName;
57
-
58
- // Check if the binding name is also an identifier with the same name
59
- if (binding.name?.kind === J.Kind.Identifier) {
60
- const bindingName = (binding.name as J.Identifier).simpleName;
61
-
62
- // If they match, simplify to shorthand syntax
63
- if (propName === bindingName) {
64
- hasChanges = true;
65
- // Remove propertyName and transfer its prefix to the name
66
- return {
67
- ...right,
68
- element: {
69
- ...binding,
70
- propertyName: undefined,
71
- name: {
72
- ...binding.name,
73
- prefix: binding.propertyName.element.prefix
74
- }
75
- }
76
- } as J.RightPadded<JS.BindingElement>;
77
- }
78
- }
79
- }
80
- }
81
-
82
- return right;
83
- });
84
-
85
- if (!hasChanges) {
86
- return visited;
87
- }
88
-
89
- // Return the pattern with simplified bindings
90
- return produce(visited, draft => {
91
- draft.bindings.elements = simplifiedBindings;
92
- });
93
- }
94
- };
95
- }
96
- }