@openrewrite/rewrite 8.65.0-20251024-163309 → 8.65.0-20251024-195901

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.
@@ -3,15 +3,15 @@ import { J } from "../java";
3
3
  * Applies the prefix from a removed element to the next element.
4
4
  *
5
5
  * This is used when removing elements from a list to preserve formatting:
6
- * - If the next element has no comments (or only an inline trailing comment to remove),
7
- * uses the removed element's prefix whitespace
8
- * - If the next element has comments to preserve, keeps the next element's whitespace
9
- * to maintain proper spacing (e.g., blank lines before comments)
6
+ * - Uses the removed element's prefix whitespace for the next element
7
+ * - Optionally preserves leading comments from the removed element (e.g., file headers)
8
+ * - For middle elements, may preserve blank lines in the next element's prefix
10
9
  * - Removes inline line comments (//...) that were on the removed element's line
11
10
  *
12
11
  * @param removedElement The element that was removed
13
12
  * @param nextElement The element that follows the removed one
13
+ * @param preserveRemovedComments Whether to preserve leading comments from removed element (default: false)
14
14
  * @returns The next element with adjusted prefix, or the original if no changes needed
15
15
  */
16
- export declare function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T): T;
16
+ export declare function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T, preserveRemovedComments?: boolean): T;
17
17
  //# sourceMappingURL=formatting-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatting-utils.d.ts","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAG1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAkD3F"}
1
+ {"version":3,"file":"formatting-utils.d.ts","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAG1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,uBAAuB,GAAE,OAAe,GAAG,CAAC,CA8GrI"}
@@ -21,46 +21,88 @@ const immer_1 = require("immer");
21
21
  * Applies the prefix from a removed element to the next element.
22
22
  *
23
23
  * This is used when removing elements from a list to preserve formatting:
24
- * - If the next element has no comments (or only an inline trailing comment to remove),
25
- * uses the removed element's prefix whitespace
26
- * - If the next element has comments to preserve, keeps the next element's whitespace
27
- * to maintain proper spacing (e.g., blank lines before comments)
24
+ * - Uses the removed element's prefix whitespace for the next element
25
+ * - Optionally preserves leading comments from the removed element (e.g., file headers)
26
+ * - For middle elements, may preserve blank lines in the next element's prefix
28
27
  * - Removes inline line comments (//...) that were on the removed element's line
29
28
  *
30
29
  * @param removedElement The element that was removed
31
30
  * @param nextElement The element that follows the removed one
31
+ * @param preserveRemovedComments Whether to preserve leading comments from removed element (default: false)
32
32
  * @returns The next element with adjusted prefix, or the original if no changes needed
33
33
  */
34
- function applyRemovedElementPrefix(removedElement, nextElement) {
34
+ function applyRemovedElementPrefix(removedElement, nextElement, preserveRemovedComments = false) {
35
35
  if (!removedElement.prefix || !nextElement.prefix) {
36
36
  return nextElement;
37
37
  }
38
38
  const removedPrefix = removedElement.prefix;
39
39
  const currentPrefix = nextElement.prefix;
40
40
  const currentComments = currentPrefix.comments || [];
41
- // If the next element has no comments, just use the removed element's prefix entirely
41
+ // If the next element has no comments, apply appropriate formatting
42
42
  if (currentComments.length === 0) {
43
43
  if (currentPrefix === removedPrefix) {
44
44
  return nextElement;
45
45
  }
46
+ // If preserving comments, transfer file header comments and use removed element's whitespace
47
+ if (preserveRemovedComments) {
48
+ const removedComments = removedPrefix.comments || [];
49
+ // Check if removed element has leading comments (not inline trailing comments)
50
+ // These are likely file headers and should be preserved
51
+ const removedWhitespace = removedPrefix.whitespace || '';
52
+ const hasLeadingNewlineBeforeComments = removedComments.length === 0 || /[\r\n]/.test(removedWhitespace);
53
+ // Transfer file header comments from removed element (non-inline comments only)
54
+ const commentsToTransfer = hasLeadingNewlineBeforeComments ? removedComments : [];
55
+ return (0, immer_1.produce)(nextElement, draft => {
56
+ draft.prefix = Object.assign(Object.assign({}, removedPrefix), { comments: commentsToTransfer.length > 0 ? commentsToTransfer : [] });
57
+ });
58
+ }
59
+ // When not preserving comments, preserve blank lines from the current prefix
60
+ const removedWhitespace = removedPrefix.whitespace || '';
61
+ const currentWhitespace = currentPrefix.whitespace || '';
62
+ const removedNewlines = (removedWhitespace.match(/\r?\n/g) || []).length;
63
+ const currentNewlines = (currentWhitespace.match(/\r?\n/g) || []).length;
64
+ // If the current element has more newlines (i.e., blank lines), preserve them
65
+ if (currentNewlines > removedNewlines) {
66
+ return nextElement;
67
+ }
68
+ // Use removed element's whitespace but don't transfer comments from removed middle elements
46
69
  return (0, immer_1.produce)(nextElement, draft => {
47
- draft.prefix = removedPrefix;
70
+ draft.prefix = {
71
+ kind: removedPrefix.kind,
72
+ whitespace: removedWhitespace,
73
+ comments: []
74
+ };
48
75
  });
49
76
  }
50
- // The next element has comments - check if we need to remove inline line comments
77
+ // The next element has comments - check if we need to remove inline/trailing line comments
51
78
  const currentWhitespace = currentPrefix.whitespace || '';
52
79
  const hasLeadingNewline = /[\r\n]/.test(currentWhitespace);
53
80
  let commentsToKeep = currentComments;
54
- if (!hasLeadingNewline && currentComments.length > 0) {
55
- // First comment has no leading newline - check if it's an inline line comment
81
+ // Check for truly inline trailing line comments that should be removed
82
+ if (currentComments.length > 0) {
56
83
  const firstComment = currentComments[0];
57
84
  const commentText = firstComment.text || firstComment.message || '';
58
85
  const isLineComment = commentText.includes('//') || firstComment.multiline === false;
59
- if (isLineComment) {
60
- // Remove the inline line comment
86
+ if (isLineComment && !hasLeadingNewline) {
87
+ // Only remove comments that are truly inline (no newline before them)
88
+ // Comments on their own line (with leading newline) are preserved as they're
89
+ // likely leading comments for the next element, not trailing comments from removed element
61
90
  commentsToKeep = currentComments.slice(1);
62
91
  }
63
92
  }
93
+ // If preserving comments, preserve leading comments from removed element
94
+ if (preserveRemovedComments) {
95
+ const removedComments = removedPrefix.comments || [];
96
+ // Only transfer leading comments (not inline trailing comments)
97
+ const removedWhitespace = removedPrefix.whitespace || '';
98
+ const hasLeadingComments = removedComments.length === 0 || /[\r\n]/.test(removedWhitespace);
99
+ // Combine leading comments from removed element with filtered comments from current element
100
+ const allComments = hasLeadingComments ? [...removedComments, ...commentsToKeep] : commentsToKeep;
101
+ // When preserving comments, always use the removed element's whitespace
102
+ return (0, immer_1.produce)(nextElement, draft => {
103
+ draft.prefix = Object.assign(Object.assign({}, removedPrefix), { comments: allComments.length > 0 ? allComments : [] });
104
+ });
105
+ }
64
106
  // If we still have comments after filtering, use removed element's whitespace with filtered comments
65
107
  if (commentsToKeep.length > 0) {
66
108
  return (0, immer_1.produce)(nextElement, draft => {
@@ -1 +1 @@
1
- {"version":3,"file":"formatting-utils.js","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAmBH,8DAkDC;AAlED,iCAA8B;AAE9B;;;;;;;;;;;;;GAaG;AACH,SAAgB,yBAAyB,CAAc,cAAiB,EAAE,WAAc;IACpF,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IACzC,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErD,sFAAsF;IACtF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;IACzD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,cAAc,GAAG,eAAe,CAAC;IACrC,IAAI,CAAC,iBAAiB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,8EAA8E;QAC9E,MAAM,YAAY,GAAQ,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,SAAS,KAAK,KAAK,CAAC;QAErF,IAAI,aAAa,EAAE,CAAC;YAChB,iCAAiC;YACjC,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,qGAAqG;IACrG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,mCACL,aAAa,KAChB,QAAQ,EAAE,cAAc,GAC3B,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0EAA0E;IAC1E,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;QAChC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"formatting-utils.js","sourceRoot":"","sources":["../../src/java/formatting-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAmBH,8DA8GC;AA9HD,iCAA8B;AAE9B;;;;;;;;;;;;;GAaG;AACH,SAAgB,yBAAyB,CAAc,cAAiB,EAAE,WAAc,EAAE,0BAAmC,KAAK;IAC9H,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;IACzC,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErD,oEAAoE;IACpE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,6FAA6F;QAC7F,IAAI,uBAAuB,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;YAErD,+EAA+E;YAC/E,wDAAwD;YACxD,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;YACzD,MAAM,+BAA+B,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEzG,gFAAgF;YAChF,MAAM,kBAAkB,GAAG,+BAA+B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAElF,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;gBAChC,KAAK,CAAC,MAAM,mCACL,aAAa,KAChB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GACpE,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAED,6EAA6E;QAC7E,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;QACzD,MAAM,eAAe,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACzE,MAAM,eAAe,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAEzE,8EAA8E;QAC9E,IAAI,eAAe,GAAG,eAAe,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,4FAA4F;QAC5F,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,GAAG;gBACX,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,UAAU,EAAE,iBAAiB;gBAC7B,QAAQ,EAAE,EAAE;aACf,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2FAA2F;IAC3F,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;IACzD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,cAAc,GAAG,eAAe,CAAC;IAErC,uEAAuE;IACvE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAQ,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,SAAS,KAAK,KAAK,CAAC;QAErF,IAAI,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtC,sEAAsE;YACtE,6EAA6E;YAC7E,2FAA2F;YAC3F,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,uBAAuB,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;QAErD,gEAAgE;QAChE,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;QACzD,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE5F,4FAA4F;QAC5F,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAElG,wEAAwE;QACxE,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,mCACL,aAAa,KAChB,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GACtD,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qGAAqG;IACrG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAChC,KAAK,CAAC,MAAM,mCACL,aAAa,KAChB,QAAQ,EAAE,cAAc,GAC3B,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0EAA0E;IAC1E,OAAO,IAAA,eAAO,EAAC,WAAW,EAAE,KAAK,CAAC,EAAE;QAChC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove-duplicate-object-keys.d.ts","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,IAAI,SAAyE;IAC7E,WAAW,SAAkC;IAC7C,WAAW,SAAuG;IAE5G,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0G9D"}
1
+ {"version":3,"file":"remove-duplicate-object-keys.d.ts","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,IAAI,SAAyE;IAC7E,WAAW,SAAkC;IAC7C,WAAW,SAAuG;IAE5G,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA2G9D"}
@@ -93,7 +93,7 @@ class RemoveDuplicateObjectKeys extends recipe_1.Recipe {
93
93
  let removedElement = undefined;
94
94
  for (let i = 0; i < statements.length; i++) {
95
95
  if (indicesToRemove.has(i)) {
96
- // Track the first removed element
96
+ // Track the first removed element and its index
97
97
  if (!removedElement && statements[i].element) {
98
98
  removedElement = statements[i].element;
99
99
  }
@@ -101,8 +101,9 @@ class RemoveDuplicateObjectKeys extends recipe_1.Recipe {
101
101
  }
102
102
  const stmt = statements[i];
103
103
  // If we removed previous elements, apply the removed element's prefix to this one
104
+ // Note: We never preserve comments from removed duplicate keys (unlike imports)
104
105
  if (removedElement) {
105
- const adjustedElement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, stmt.element);
106
+ const adjustedElement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, stmt.element, false);
106
107
  filteredStatements.push(Object.assign(Object.assign({}, stmt), { element: adjustedElement }));
107
108
  removedElement = undefined;
108
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove-duplicate-object-keys.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,4CAAuC;AAGvC,2CAAgD;AAChD,wCAAgC;AAChC,qCAA8B;AAC9B,iCAA8B;AAC9B,qEAAyE;AAEzE,MAAa,yBAA0B,SAAQ,eAAM;IAArD;;QACI,SAAI,GAAG,qEAAqE,CAAC;QAC7E,gBAAW,GAAG,8BAA8B,CAAC;QAC7C,gBAAW,GAAG,mGAAmG,CAAC;IA4GtH,CAAC;IA1GS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,2BAAmC;gBAExC,aAAa,CAAC,QAAoB,EAAE,GAAqB;;;;;;wBACrE,QAAQ,IAAG,MAAM,OAAM,aAAa,YAAC,QAAQ,EAAE,GAAG,CAAe,CAAA,CAAC;wBAElE,8EAA8E;wBAC9E,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAA,MAAA,QAAQ,CAAC,SAAS,0CAAE,QAAQ,KAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;4BAC/G,OAAO,QAAQ,CAAC;wBACpB,CAAC;wBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;wBAC5C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACzC,OAAO,QAAQ,CAAC;wBACpB,CAAC;wBAED,+DAA+D;wBAC/D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;wBAC1D,MAAM,aAAa,GAAsB,EAAE,CAAC;wBAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gCACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAgC,CAAC;gCACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gCAC5C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAE7B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oCACpB,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gCAC7C,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7B,CAAC;wBACL,CAAC;wBAED,8CAA8C;wBAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;wBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gCACpB,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;gCACzD,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;oCAChB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC3B,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;4BAC7B,OAAO,QAAQ,CAAC;wBACpB,CAAC;wBAED,kDAAkD;wBAClD,OAAO,IAAA,eAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;4BAC7B,MAAM,kBAAkB,GAAsB,EAAE,CAAC;4BACjD,IAAI,cAAc,GAAkB,SAAS,CAAC;4BAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCACzC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzB,kCAAkC;oCAClC,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wCAC3C,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oCAC3C,CAAC;oCACD,SAAS;gCACb,CAAC;gCAED,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gCAE3B,kFAAkF;gCAClF,IAAI,cAAc,EAAE,CAAC;oCACjB,MAAM,eAAe,GAAG,IAAA,4CAAyB,EAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oCAChF,kBAAkB,CAAC,IAAI,iCAChB,IAAI,KACP,OAAO,EAAE,eAAe,IAC1B,CAAC;oCACH,cAAc,GAAG,SAAS,CAAC;gCAC/B,CAAC;qCAAM,CAAC;oCACJ,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAClC,CAAC;4BACL,CAAC;4BAED,KAAK,CAAC,IAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC;wBAChD,CAAC,CAAC,CAAC;oBACP,CAAC;iBAAA;gBAEO,eAAe,CAAC,IAA2B;oBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBAE/B,gCAAgC;oBAChC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClC,OAAQ,IAAqB,CAAC,UAAU,CAAC;oBAC7C,CAAC;oBAED,sCAAsC;oBACtC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC/B,MAAM,OAAO,GAAG,IAAiB,CAAC;wBAClC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACpC,OAAO,OAAO,CAAC,KAAK,CAAC;wBACzB,CAAC;oBACL,CAAC;oBAED,gFAAgF;oBAChF,8DAA8D;oBAC9D,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ,CAAA;QACL,CAAC;KAAA;CACJ;AA/GD,8DA+GC"}
1
+ {"version":3,"file":"remove-duplicate-object-keys.js","sourceRoot":"","sources":["../../../../src/javascript/migrate/es6/remove-duplicate-object-keys.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove-import.d.ts","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAI1B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAOjG;AAUD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAOzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAPpC;;;;;OAKG;gBACkB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAIpC;;;;OAIG;YACW,oCAAoC;IAqClD;;OAEG;YACW,kBAAkB;IAejB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YAqH1F,aAAa;IA0I3B;;;OAGG;YACW,0BAA0B;IAmCxC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;YAYhB,mBAAmB;YA+DnB,0BAA0B;IA8DxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;YAclB,2BAA2B;IAoDzC,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,kBAAkB;IAyBhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,mBAAmB;YASnB,sBAAsB;YA8LtB,gBAAgB;CAqDjC"}
1
+ {"version":3,"file":"remove-import.d.ts","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,CAAC,EAAC,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAI1B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAOjG;AAUD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAOzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAPpC;;;;;OAKG;gBACkB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAIpC;;;;OAIG;YACW,oCAAoC;IAqClD;;OAEG;YACW,kBAAkB;IAejB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YAgJ1F,aAAa;IA0I3B;;;OAGG;YACW,0BAA0B;IAmCxC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;YAYhB,mBAAmB;YA+DnB,0BAA0B;IA8DxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;YAclB,2BAA2B;IAoDzC,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,kBAAkB;IAyBhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,mBAAmB;YASnB,sBAAsB;YA8LtB,gBAAgB;CAqDjC"}
@@ -104,6 +104,7 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
104
104
  // Now process imports with knowledge of what's used
105
105
  return this.produceJavaScript(compilationUnit, p, (draft) => __awaiter(this, void 0, void 0, function* () {
106
106
  let removedElement = undefined;
107
+ let hasKeptAnyStatement = false;
107
108
  draft.statements = yield (0, util_1.mapAsync)(compilationUnit.statements, (stmt) => __awaiter(this, void 0, void 0, function* () {
108
109
  const statement = stmt.element;
109
110
  // Handle ES6 imports
@@ -117,8 +118,15 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
117
118
  }
118
119
  return undefined;
119
120
  }
120
- removedElement = undefined;
121
- return Object.assign(Object.assign({}, stmt), { element: result });
121
+ // If we removed previous elements, apply the removed element's prefix to this one
122
+ let finalResult = result;
123
+ if (removedElement) {
124
+ const preserveComments = !hasKeptAnyStatement;
125
+ finalResult = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, result, preserveComments);
126
+ removedElement = undefined;
127
+ }
128
+ hasKeptAnyStatement = true;
129
+ return Object.assign(Object.assign({}, stmt), { element: finalResult });
122
130
  }
123
131
  // Handle CommonJS require statements
124
132
  // Note: const fs = require() comes as J.VariableDeclarations
@@ -133,8 +141,15 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
133
141
  }
134
142
  return undefined;
135
143
  }
136
- removedElement = undefined;
137
- return Object.assign(Object.assign({}, stmt), { element: result });
144
+ // If we removed previous elements, apply the removed element's prefix to this one
145
+ let finalResult = result;
146
+ if (removedElement) {
147
+ const preserveComments = !hasKeptAnyStatement;
148
+ finalResult = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, result, preserveComments);
149
+ removedElement = undefined;
150
+ }
151
+ hasKeptAnyStatement = true;
152
+ return Object.assign(Object.assign({}, stmt), { element: finalResult });
138
153
  }
139
154
  // Handle JS.ScopedVariableDeclarations (multi-variable var/let/const)
140
155
  if ((statement === null || statement === void 0 ? void 0 : statement.kind) === tree_1.JS.Kind.ScopedVariableDeclarations) {
@@ -160,7 +175,7 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
160
175
  // If this is the first kept variable and we removed the original first variable,
161
176
  // apply proper whitespace and comment handling from the removed first variable
162
177
  if (filteredVariables.length === 0 && removedFirstVar) {
163
- const formattedVarDecl = (0, formatting_utils_1.applyRemovedElementPrefix)(removedFirstVar, result);
178
+ const formattedVarDecl = (0, formatting_utils_1.applyRemovedElementPrefix)(removedFirstVar, result, true);
164
179
  filteredVariables.push(Object.assign(Object.assign({}, v), { element: formattedVarDecl }));
165
180
  }
166
181
  else {
@@ -179,20 +194,27 @@ class RemoveImport extends visitor_1.JavaScriptVisitor {
179
194
  }
180
195
  return undefined;
181
196
  }
182
- if (hasChanges) {
183
- // Update the scoped variable declaration with the modified variables
197
+ // Determine the final element (with or without changes)
198
+ let finalElement = hasChanges ? Object.assign(Object.assign({}, scopedVarDecl), { variables: filteredVariables }) : statement;
199
+ // If we removed previous elements, apply the removed element's prefix to this one
200
+ const hadRemovedElement = !!removedElement;
201
+ if (removedElement) {
202
+ const preserveComments = !hasKeptAnyStatement;
203
+ finalElement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, finalElement, preserveComments);
184
204
  removedElement = undefined;
185
- return Object.assign(Object.assign({}, stmt), { element: Object.assign(Object.assign({}, scopedVarDecl), { variables: filteredVariables }) });
186
205
  }
187
- removedElement = undefined;
188
- return stmt;
206
+ hasKeptAnyStatement = true;
207
+ return hasChanges || hadRemovedElement ? Object.assign(Object.assign({}, stmt), { element: finalElement }) : stmt;
189
208
  }
190
209
  // If the previous statement was removed, adjust this statement's prefix
191
210
  if (removedElement && statement) {
192
- const updatedStatement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, statement);
211
+ const preserveComments = !hasKeptAnyStatement;
212
+ const updatedStatement = (0, formatting_utils_1.applyRemovedElementPrefix)(removedElement, statement, preserveComments);
213
+ hasKeptAnyStatement = true;
193
214
  removedElement = undefined;
194
215
  return Object.assign(Object.assign({}, stmt), { element: updatedStatement });
195
216
  }
217
+ hasKeptAnyStatement = true;
196
218
  removedElement = undefined;
197
219
  return stmt;
198
220
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remove-import.js","sourceRoot":"","sources":["../../src/javascript/remove-import.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.65.0-20251024-160237
1
+ 8.65.0-20251024-195454
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.65.0-20251024-163309",
3
+ "version": "8.65.0-20251024-195901",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -21,17 +21,17 @@ import {produce} from "immer";
21
21
  * Applies the prefix from a removed element to the next element.
22
22
  *
23
23
  * This is used when removing elements from a list to preserve formatting:
24
- * - If the next element has no comments (or only an inline trailing comment to remove),
25
- * uses the removed element's prefix whitespace
26
- * - If the next element has comments to preserve, keeps the next element's whitespace
27
- * to maintain proper spacing (e.g., blank lines before comments)
24
+ * - Uses the removed element's prefix whitespace for the next element
25
+ * - Optionally preserves leading comments from the removed element (e.g., file headers)
26
+ * - For middle elements, may preserve blank lines in the next element's prefix
28
27
  * - Removes inline line comments (//...) that were on the removed element's line
29
28
  *
30
29
  * @param removedElement The element that was removed
31
30
  * @param nextElement The element that follows the removed one
31
+ * @param preserveRemovedComments Whether to preserve leading comments from removed element (default: false)
32
32
  * @returns The next element with adjusted prefix, or the original if no changes needed
33
33
  */
34
- export function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T): T {
34
+ export function applyRemovedElementPrefix<T extends J>(removedElement: J, nextElement: T, preserveRemovedComments: boolean = false): T {
35
35
  if (!removedElement.prefix || !nextElement.prefix) {
36
36
  return nextElement;
37
37
  }
@@ -40,33 +40,93 @@ export function applyRemovedElementPrefix<T extends J>(removedElement: J, nextEl
40
40
  const currentPrefix = nextElement.prefix;
41
41
  const currentComments = currentPrefix.comments || [];
42
42
 
43
- // If the next element has no comments, just use the removed element's prefix entirely
43
+ // If the next element has no comments, apply appropriate formatting
44
44
  if (currentComments.length === 0) {
45
45
  if (currentPrefix === removedPrefix) {
46
46
  return nextElement;
47
47
  }
48
+
49
+ // If preserving comments, transfer file header comments and use removed element's whitespace
50
+ if (preserveRemovedComments) {
51
+ const removedComments = removedPrefix.comments || [];
52
+
53
+ // Check if removed element has leading comments (not inline trailing comments)
54
+ // These are likely file headers and should be preserved
55
+ const removedWhitespace = removedPrefix.whitespace || '';
56
+ const hasLeadingNewlineBeforeComments = removedComments.length === 0 || /[\r\n]/.test(removedWhitespace);
57
+
58
+ // Transfer file header comments from removed element (non-inline comments only)
59
+ const commentsToTransfer = hasLeadingNewlineBeforeComments ? removedComments : [];
60
+
61
+ return produce(nextElement, draft => {
62
+ draft.prefix = {
63
+ ...removedPrefix,
64
+ comments: commentsToTransfer.length > 0 ? commentsToTransfer : []
65
+ };
66
+ });
67
+ }
68
+
69
+ // When not preserving comments, preserve blank lines from the current prefix
70
+ const removedWhitespace = removedPrefix.whitespace || '';
71
+ const currentWhitespace = currentPrefix.whitespace || '';
72
+ const removedNewlines = (removedWhitespace.match(/\r?\n/g) || []).length;
73
+ const currentNewlines = (currentWhitespace.match(/\r?\n/g) || []).length;
74
+
75
+ // If the current element has more newlines (i.e., blank lines), preserve them
76
+ if (currentNewlines > removedNewlines) {
77
+ return nextElement;
78
+ }
79
+
80
+ // Use removed element's whitespace but don't transfer comments from removed middle elements
48
81
  return produce(nextElement, draft => {
49
- draft.prefix = removedPrefix;
82
+ draft.prefix = {
83
+ kind: removedPrefix.kind,
84
+ whitespace: removedWhitespace,
85
+ comments: []
86
+ };
50
87
  });
51
88
  }
52
89
 
53
- // The next element has comments - check if we need to remove inline line comments
90
+ // The next element has comments - check if we need to remove inline/trailing line comments
54
91
  const currentWhitespace = currentPrefix.whitespace || '';
55
92
  const hasLeadingNewline = /[\r\n]/.test(currentWhitespace);
56
93
 
57
94
  let commentsToKeep = currentComments;
58
- if (!hasLeadingNewline && currentComments.length > 0) {
59
- // First comment has no leading newline - check if it's an inline line comment
95
+
96
+ // Check for truly inline trailing line comments that should be removed
97
+ if (currentComments.length > 0) {
60
98
  const firstComment: any = currentComments[0];
61
99
  const commentText = firstComment.text || firstComment.message || '';
62
100
  const isLineComment = commentText.includes('//') || firstComment.multiline === false;
63
101
 
64
- if (isLineComment) {
65
- // Remove the inline line comment
102
+ if (isLineComment && !hasLeadingNewline) {
103
+ // Only remove comments that are truly inline (no newline before them)
104
+ // Comments on their own line (with leading newline) are preserved as they're
105
+ // likely leading comments for the next element, not trailing comments from removed element
66
106
  commentsToKeep = currentComments.slice(1);
67
107
  }
68
108
  }
69
109
 
110
+ // If preserving comments, preserve leading comments from removed element
111
+ if (preserveRemovedComments) {
112
+ const removedComments = removedPrefix.comments || [];
113
+
114
+ // Only transfer leading comments (not inline trailing comments)
115
+ const removedWhitespace = removedPrefix.whitespace || '';
116
+ const hasLeadingComments = removedComments.length === 0 || /[\r\n]/.test(removedWhitespace);
117
+
118
+ // Combine leading comments from removed element with filtered comments from current element
119
+ const allComments = hasLeadingComments ? [...removedComments, ...commentsToKeep] : commentsToKeep;
120
+
121
+ // When preserving comments, always use the removed element's whitespace
122
+ return produce(nextElement, draft => {
123
+ draft.prefix = {
124
+ ...removedPrefix,
125
+ comments: allComments.length > 0 ? allComments : []
126
+ };
127
+ });
128
+ }
129
+
70
130
  // If we still have comments after filtering, use removed element's whitespace with filtered comments
71
131
  if (commentsToKeep.length > 0) {
72
132
  return produce(nextElement, draft => {
@@ -86,7 +86,7 @@ export class RemoveDuplicateObjectKeys extends Recipe {
86
86
 
87
87
  for (let i = 0; i < statements.length; i++) {
88
88
  if (indicesToRemove.has(i)) {
89
- // Track the first removed element
89
+ // Track the first removed element and its index
90
90
  if (!removedElement && statements[i].element) {
91
91
  removedElement = statements[i].element;
92
92
  }
@@ -96,8 +96,9 @@ export class RemoveDuplicateObjectKeys extends Recipe {
96
96
  const stmt = statements[i];
97
97
 
98
98
  // If we removed previous elements, apply the removed element's prefix to this one
99
+ // Note: We never preserve comments from removed duplicate keys (unlike imports)
99
100
  if (removedElement) {
100
- const adjustedElement = applyRemovedElementPrefix(removedElement, stmt.element);
101
+ const adjustedElement = applyRemovedElementPrefix(removedElement, stmt.element, false);
101
102
  filteredStatements.push({
102
103
  ...stmt,
103
104
  element: adjustedElement
@@ -111,6 +111,7 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
111
111
  // Now process imports with knowledge of what's used
112
112
  return this.produceJavaScript<JS.CompilationUnit>(compilationUnit, p, async draft => {
113
113
  let removedElement: J | undefined = undefined;
114
+ let hasKeptAnyStatement = false;
114
115
 
115
116
  draft.statements = await mapAsync(compilationUnit.statements, async (stmt) => {
116
117
  const statement = stmt.element;
@@ -126,8 +127,17 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
126
127
  }
127
128
  return undefined;
128
129
  }
129
- removedElement = undefined;
130
- return {...stmt, element: result};
130
+
131
+ // If we removed previous elements, apply the removed element's prefix to this one
132
+ let finalResult = result;
133
+ if (removedElement) {
134
+ const preserveComments = !hasKeptAnyStatement;
135
+ finalResult = applyRemovedElementPrefix(removedElement, result, preserveComments) as JS.Import;
136
+ removedElement = undefined;
137
+ }
138
+
139
+ hasKeptAnyStatement = true;
140
+ return {...stmt, element: finalResult};
131
141
  }
132
142
 
133
143
  // Handle CommonJS require statements
@@ -143,8 +153,17 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
143
153
  }
144
154
  return undefined;
145
155
  }
146
- removedElement = undefined;
147
- return {...stmt, element: result};
156
+
157
+ // If we removed previous elements, apply the removed element's prefix to this one
158
+ let finalResult = result;
159
+ if (removedElement) {
160
+ const preserveComments = !hasKeptAnyStatement;
161
+ finalResult = applyRemovedElementPrefix(removedElement, result, preserveComments) as J.VariableDeclarations;
162
+ removedElement = undefined;
163
+ }
164
+
165
+ hasKeptAnyStatement = true;
166
+ return {...stmt, element: finalResult};
148
167
  }
149
168
 
150
169
  // Handle JS.ScopedVariableDeclarations (multi-variable var/let/const)
@@ -171,7 +190,7 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
171
190
  // If this is the first kept variable and we removed the original first variable,
172
191
  // apply proper whitespace and comment handling from the removed first variable
173
192
  if (filteredVariables.length === 0 && removedFirstVar) {
174
- const formattedVarDecl = applyRemovedElementPrefix(removedFirstVar, result as J.VariableDeclarations);
193
+ const formattedVarDecl = applyRemovedElementPrefix(removedFirstVar, result as J.VariableDeclarations, true);
175
194
  filteredVariables.push({...v, element: formattedVarDecl});
176
195
  } else {
177
196
  filteredVariables.push(result === varDecl ? v : {...v, element: result});
@@ -190,23 +209,31 @@ export class RemoveImport<P> extends JavaScriptVisitor<P> {
190
209
  return undefined;
191
210
  }
192
211
 
193
- if (hasChanges) {
194
- // Update the scoped variable declaration with the modified variables
212
+ // Determine the final element (with or without changes)
213
+ let finalElement: any = hasChanges ? {...scopedVarDecl, variables: filteredVariables} : statement;
214
+
215
+ // If we removed previous elements, apply the removed element's prefix to this one
216
+ const hadRemovedElement = !!removedElement;
217
+ if (removedElement) {
218
+ const preserveComments = !hasKeptAnyStatement;
219
+ finalElement = applyRemovedElementPrefix(removedElement, finalElement, preserveComments);
195
220
  removedElement = undefined;
196
- return {...stmt, element: {...scopedVarDecl, variables: filteredVariables}};
197
221
  }
198
222
 
199
- removedElement = undefined;
200
- return stmt;
223
+ hasKeptAnyStatement = true;
224
+ return hasChanges || hadRemovedElement ? {...stmt, element: finalElement} : stmt;
201
225
  }
202
226
 
203
227
  // If the previous statement was removed, adjust this statement's prefix
204
228
  if (removedElement && statement) {
205
- const updatedStatement = applyRemovedElementPrefix(removedElement, statement);
229
+ const preserveComments = !hasKeptAnyStatement;
230
+ const updatedStatement = applyRemovedElementPrefix(removedElement, statement, preserveComments);
231
+ hasKeptAnyStatement = true;
206
232
  removedElement = undefined;
207
233
  return {...stmt, element: updatedStatement};
208
234
  }
209
235
 
236
+ hasKeptAnyStatement = true;
210
237
  removedElement = undefined;
211
238
  return stmt;
212
239
  });