@openrewrite/rewrite 8.69.0-20251207-220615 → 8.69.0-20251207-230203

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.
@@ -0,0 +1,45 @@
1
+ import { NamedStyles, Style } from "../style";
2
+ import { SourceFile } from "../tree";
3
+ import { JS } from "./tree";
4
+ import { SpacesStyle, TabsAndIndentsStyle, WrappingAndBracesStyle } from "./style";
5
+ /**
6
+ * Auto-detected styles for JavaScript/TypeScript code.
7
+ * Focuses on key formatting variations where projects differ:
8
+ * - Tabs vs spaces
9
+ * - Indent size (2, 4, etc.)
10
+ * - Spaces within ES6 import/export braces
11
+ */
12
+ export declare class Autodetect implements NamedStyles {
13
+ readonly kind: "org.openrewrite.marker.NamedStyles";
14
+ readonly id: string;
15
+ readonly name = "org.openrewrite.javascript.Autodetect";
16
+ readonly displayName = "Auto-detected";
17
+ readonly description = "Automatically detect styles from a repository's existing code.";
18
+ readonly tags: string[];
19
+ readonly styles: Style[];
20
+ constructor(id: string, styles: Style[]);
21
+ static detector(): Detector;
22
+ }
23
+ /**
24
+ * Collects formatting statistics from source files and builds auto-detected styles.
25
+ */
26
+ export declare class Detector {
27
+ private readonly tabsAndIndentsStats;
28
+ private readonly spacesStats;
29
+ /**
30
+ * Sample a source file to collect formatting statistics.
31
+ */
32
+ sample(sourceFile: SourceFile): Promise<void>;
33
+ /**
34
+ * Sample a JavaScript/TypeScript compilation unit.
35
+ */
36
+ sampleJavaScript(cu: JS.CompilationUnit): Promise<void>;
37
+ /**
38
+ * Build the auto-detected styles from collected statistics.
39
+ */
40
+ build(): Autodetect;
41
+ getTabsAndIndentsStyle(): TabsAndIndentsStyle;
42
+ getSpacesStyle(): SpacesStyle;
43
+ getWrappingAndBracesStyle(): WrappingAndBracesStyle;
44
+ }
45
+ //# sourceMappingURL=autodetect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autodetect.d.ts","sourceRoot":"","sources":["../../src/javascript/autodetect.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAG1B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EACnB,sBAAsB,EAEzB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC1C,QAAQ,CAAC,IAAI,EAAG,oCAAoC,CAAU;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,2CAA2C;IACxD,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,WAAW,oEAAoE;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAM;IAC7B,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEb,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;IAKvC,MAAM,CAAC,QAAQ,IAAI,QAAQ;CAG9B;AAED;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,KAAK,IAAI,UAAU;IAQnB,sBAAsB,IAAI,mBAAmB;IAI7C,cAAc,IAAI,WAAW;IAI7B,yBAAyB,IAAI,sBAAsB;CAStD"}
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2025 the original author or authors.
4
+ * <p>
5
+ * Licensed under the Moderne Source Available License (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ * <p>
9
+ * https://docs.moderne.io/licensing/moderne-source-available-license
10
+ * <p>
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.Detector = exports.Autodetect = void 0;
28
+ const uuid_1 = require("../uuid");
29
+ const tree_1 = require("./tree");
30
+ const visitor_1 = require("./visitor");
31
+ const style_1 = require("./style");
32
+ /**
33
+ * Auto-detected styles for JavaScript/TypeScript code.
34
+ * Focuses on key formatting variations where projects differ:
35
+ * - Tabs vs spaces
36
+ * - Indent size (2, 4, etc.)
37
+ * - Spaces within ES6 import/export braces
38
+ */
39
+ class Autodetect {
40
+ constructor(id, styles) {
41
+ this.kind = "org.openrewrite.marker.NamedStyles";
42
+ this.name = "org.openrewrite.javascript.Autodetect";
43
+ this.displayName = "Auto-detected";
44
+ this.description = "Automatically detect styles from a repository's existing code.";
45
+ this.tags = [];
46
+ this.id = id;
47
+ this.styles = styles;
48
+ }
49
+ static detector() {
50
+ return new Detector();
51
+ }
52
+ }
53
+ exports.Autodetect = Autodetect;
54
+ /**
55
+ * Collects formatting statistics from source files and builds auto-detected styles.
56
+ */
57
+ class Detector {
58
+ constructor() {
59
+ this.tabsAndIndentsStats = new TabsAndIndentsStatistics();
60
+ this.spacesStats = new SpacesStatistics();
61
+ }
62
+ /**
63
+ * Sample a source file to collect formatting statistics.
64
+ */
65
+ sample(sourceFile) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ if (sourceFile.kind === tree_1.JS.Kind.CompilationUnit) {
68
+ yield this.sampleJavaScript(sourceFile);
69
+ }
70
+ });
71
+ }
72
+ /**
73
+ * Sample a JavaScript/TypeScript compilation unit.
74
+ */
75
+ sampleJavaScript(cu) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ yield new FindIndentVisitor(this.tabsAndIndentsStats).visit(cu, {});
78
+ yield new FindSpacesVisitor(this.spacesStats).visit(cu, {});
79
+ });
80
+ }
81
+ /**
82
+ * Build the auto-detected styles from collected statistics.
83
+ */
84
+ build() {
85
+ return new Autodetect((0, uuid_1.randomId)(), [
86
+ this.tabsAndIndentsStats.getTabsAndIndentsStyle(),
87
+ this.spacesStats.getSpacesStyle(),
88
+ this.getWrappingAndBracesStyle(),
89
+ ]);
90
+ }
91
+ getTabsAndIndentsStyle() {
92
+ return this.tabsAndIndentsStats.getTabsAndIndentsStyle();
93
+ }
94
+ getSpacesStyle() {
95
+ return this.spacesStats.getSpacesStyle();
96
+ }
97
+ getWrappingAndBracesStyle() {
98
+ return {
99
+ kind: style_1.StyleKind.WrappingAndBracesStyle,
100
+ ifStatement: {
101
+ kind: style_1.WrappingAndBracesStyleDetailKind.WrappingAndBracesStyleIfStatement,
102
+ elseOnNewLine: false
103
+ }
104
+ };
105
+ }
106
+ }
107
+ exports.Detector = Detector;
108
+ // ============================================================================
109
+ // Statistics Classes
110
+ // ============================================================================
111
+ /**
112
+ * Tracks indentation patterns to detect tabs vs spaces and indent size.
113
+ */
114
+ class TabsAndIndentsStatistics {
115
+ constructor() {
116
+ this.totalSpaceIndents = 0;
117
+ this.totalTabIndents = 0;
118
+ // Track all observed indent sizes to compute GCD
119
+ this.observedIndents = [];
120
+ }
121
+ recordSpaceIndent(spaceCount) {
122
+ this.totalSpaceIndents++;
123
+ if (spaceCount > 0) {
124
+ this.observedIndents.push(spaceCount);
125
+ }
126
+ }
127
+ recordTabIndent() {
128
+ this.totalTabIndents++;
129
+ }
130
+ getTabsAndIndentsStyle() {
131
+ // Determine if using tabs or spaces
132
+ const useTabs = this.totalTabIndents > this.totalSpaceIndents;
133
+ // Find indent size by computing GCD of all observed indents
134
+ // This correctly handles 2-space files where we see 2, 4, 6, 8... (all multiples of 2)
135
+ let detectedIndentSize = 4; // Default
136
+ if (this.observedIndents.length > 0) {
137
+ // Compute GCD of all observed indents
138
+ let gcd = this.observedIndents[0];
139
+ for (let i = 1; i < this.observedIndents.length; i++) {
140
+ gcd = this.computeGcd(gcd, this.observedIndents[i]);
141
+ if (gcd === 1)
142
+ break; // Can't get smaller than 1
143
+ }
144
+ // Only use common indent sizes (2, 4, 8)
145
+ if (gcd === 2 || gcd === 4 || gcd === 8) {
146
+ detectedIndentSize = gcd;
147
+ }
148
+ else if (gcd > 0 && gcd % 4 === 0) {
149
+ detectedIndentSize = 4;
150
+ }
151
+ else if (gcd > 0 && gcd % 2 === 0) {
152
+ detectedIndentSize = 2;
153
+ }
154
+ }
155
+ return {
156
+ kind: style_1.StyleKind.TabsAndIndentsStyle,
157
+ useTabCharacter: useTabs,
158
+ tabSize: 4,
159
+ indentSize: detectedIndentSize,
160
+ continuationIndent: detectedIndentSize * 2,
161
+ keepIndentsOnEmptyLines: false,
162
+ indentChainedMethods: true,
163
+ indentAllChainedCallsInAGroup: false
164
+ };
165
+ }
166
+ computeGcd(a, b) {
167
+ while (b !== 0) {
168
+ const temp = b;
169
+ b = a % b;
170
+ a = temp;
171
+ }
172
+ return a;
173
+ }
174
+ }
175
+ /**
176
+ * Tracks spacing patterns around ES6 import/export braces.
177
+ */
178
+ class SpacesStatistics {
179
+ constructor() {
180
+ // Track spaces within ES6 import/export braces: { a } vs {a}
181
+ this.es6ImportExportBracesWithSpace = 0;
182
+ this.es6ImportExportBracesWithoutSpace = 0;
183
+ }
184
+ getSpacesStyle() {
185
+ // Use TypeScript defaults as base since most modern JS/TS projects use similar conventions
186
+ // TypeScript defaults include afterTypeReferenceColon: true which is commonly expected
187
+ const defaults = style_1.IntelliJ.TypeScript.spaces();
188
+ return Object.assign(Object.assign({}, defaults), { within: Object.assign(Object.assign({}, defaults.within), { es6ImportExportBraces: this.es6ImportExportBracesWithSpace > this.es6ImportExportBracesWithoutSpace }) });
189
+ }
190
+ }
191
+ // ============================================================================
192
+ // Visitor Classes for Collecting Statistics
193
+ // ============================================================================
194
+ /**
195
+ * Detects indentation patterns by examining block contents.
196
+ */
197
+ class FindIndentVisitor extends visitor_1.JavaScriptVisitor {
198
+ constructor(stats) {
199
+ super();
200
+ this.stats = stats;
201
+ }
202
+ visitBlock(block, p) {
203
+ const _super = Object.create(null, {
204
+ visitBlock: { get: () => super.visitBlock }
205
+ });
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ var _a;
208
+ // Check indentation of statements in the block
209
+ for (const stmt of block.statements) {
210
+ const whitespace = (_a = stmt.element.prefix) === null || _a === void 0 ? void 0 : _a.whitespace;
211
+ if (whitespace) {
212
+ this.analyzeIndent(whitespace);
213
+ }
214
+ }
215
+ return _super.visitBlock.call(this, block, p);
216
+ });
217
+ }
218
+ analyzeIndent(whitespace) {
219
+ const newlineIndex = whitespace.lastIndexOf('\n');
220
+ if (newlineIndex < 0)
221
+ return;
222
+ const indent = whitespace.substring(newlineIndex + 1);
223
+ if (indent.length === 0)
224
+ return;
225
+ // Check first character to determine type
226
+ if (indent[0] === '\t') {
227
+ this.stats.recordTabIndent();
228
+ }
229
+ else if (indent[0] === ' ') {
230
+ // Count consecutive spaces
231
+ let spaceCount = 0;
232
+ for (const char of indent) {
233
+ if (char === ' ')
234
+ spaceCount++;
235
+ else
236
+ break;
237
+ }
238
+ if (spaceCount > 0) {
239
+ this.stats.recordSpaceIndent(spaceCount);
240
+ }
241
+ }
242
+ }
243
+ }
244
+ /**
245
+ * Detects spacing patterns in imports and exports.
246
+ */
247
+ class FindSpacesVisitor extends visitor_1.JavaScriptVisitor {
248
+ constructor(stats) {
249
+ super();
250
+ this.stats = stats;
251
+ }
252
+ visitImportDeclaration(import_, p) {
253
+ const _super = Object.create(null, {
254
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
255
+ });
256
+ return __awaiter(this, void 0, void 0, function* () {
257
+ var _a, _b, _c, _d, _e, _f, _g, _h;
258
+ // Check ES6 import braces spacing: import { a } from 'x' vs import {a} from 'x'
259
+ if (((_b = (_a = import_.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) === null || _b === void 0 ? void 0 : _b.kind) === tree_1.JS.Kind.NamedImports) {
260
+ const namedImports = import_.importClause.namedBindings;
261
+ if (namedImports.elements.elements.length > 0) {
262
+ const firstElement = namedImports.elements.elements[0];
263
+ const hasSpaceAfterOpenBrace = (_e = (_d = (_c = firstElement.element.prefix) === null || _c === void 0 ? void 0 : _c.whitespace) === null || _d === void 0 ? void 0 : _d.includes(' ')) !== null && _e !== void 0 ? _e : false;
264
+ const lastElement = namedImports.elements.elements[namedImports.elements.elements.length - 1];
265
+ const hasSpaceBeforeCloseBrace = (_h = (_g = (_f = lastElement.after) === null || _f === void 0 ? void 0 : _f.whitespace) === null || _g === void 0 ? void 0 : _g.includes(' ')) !== null && _h !== void 0 ? _h : false;
266
+ if (hasSpaceAfterOpenBrace || hasSpaceBeforeCloseBrace) {
267
+ this.stats.es6ImportExportBracesWithSpace++;
268
+ }
269
+ else {
270
+ this.stats.es6ImportExportBracesWithoutSpace++;
271
+ }
272
+ }
273
+ }
274
+ return _super.visitImportDeclaration.call(this, import_, p);
275
+ });
276
+ }
277
+ visitExportDeclaration(export_, p) {
278
+ const _super = Object.create(null, {
279
+ visitExportDeclaration: { get: () => super.visitExportDeclaration }
280
+ });
281
+ return __awaiter(this, void 0, void 0, function* () {
282
+ var _a, _b, _c, _d, _e, _f, _g;
283
+ // Check ES6 export braces spacing
284
+ if (((_a = export_.exportClause) === null || _a === void 0 ? void 0 : _a.kind) === tree_1.JS.Kind.NamedExports) {
285
+ const namedExports = export_.exportClause;
286
+ if (namedExports.elements.elements.length > 0) {
287
+ const firstElement = namedExports.elements.elements[0];
288
+ const hasSpaceAfterOpenBrace = (_d = (_c = (_b = firstElement.element.prefix) === null || _b === void 0 ? void 0 : _b.whitespace) === null || _c === void 0 ? void 0 : _c.includes(' ')) !== null && _d !== void 0 ? _d : false;
289
+ const lastElement = namedExports.elements.elements[namedExports.elements.elements.length - 1];
290
+ const hasSpaceBeforeCloseBrace = (_g = (_f = (_e = lastElement.after) === null || _e === void 0 ? void 0 : _e.whitespace) === null || _f === void 0 ? void 0 : _f.includes(' ')) !== null && _g !== void 0 ? _g : false;
291
+ if (hasSpaceAfterOpenBrace || hasSpaceBeforeCloseBrace) {
292
+ this.stats.es6ImportExportBracesWithSpace++;
293
+ }
294
+ else {
295
+ this.stats.es6ImportExportBracesWithoutSpace++;
296
+ }
297
+ }
298
+ }
299
+ return _super.visitExportDeclaration.call(this, export_, p);
300
+ });
301
+ }
302
+ }
303
+ //# sourceMappingURL=autodetect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autodetect.js","sourceRoot":"","sources":["../../src/javascript/autodetect.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,22 @@ import { JavaScriptVisitor } from "./visitor";
3
3
  import { J, Statement } from "../java";
4
4
  import { Cursor, Tree } from "../tree";
5
5
  import { BlankLinesStyle, SpacesStyle, WrappingAndBracesStyle } from "./style";
6
+ import { NamedStyles } from "../style";
6
7
  export { TabsAndIndentsVisitor } from "./tabs-and-indents-visitor";
7
8
  export declare const maybeAutoFormat: <J2 extends J, P>(before: J2, after: J2, p: P, stopAfter?: J, parent?: Cursor) => Promise<J2>;
8
- export declare const autoFormat: <J2 extends J, P>(j: J2, p: P, stopAfter?: J, parent?: Cursor) => Promise<J2>;
9
+ export declare const autoFormat: <J2 extends J, P>(j: J2, p: P, stopAfter?: J, parent?: Cursor, styles?: NamedStyles[]) => Promise<J2>;
10
+ /**
11
+ * Formats JavaScript/TypeScript code using a comprehensive set of formatting rules.
12
+ *
13
+ * Style resolution order (first match wins):
14
+ * 1. Styles passed to the constructor
15
+ * 2. Styles from source file markers (NamedStyles)
16
+ * 3. IntelliJ defaults
17
+ */
9
18
  export declare class AutoformatVisitor<P> extends JavaScriptVisitor<P> {
10
19
  private stopAfter?;
11
- constructor(stopAfter?: Tree | undefined);
20
+ private readonly styles?;
21
+ constructor(stopAfter?: Tree | undefined, styles?: NamedStyles[]);
12
22
  visit<R extends J>(tree: Tree, p: P, cursor?: Cursor): Promise<R | undefined>;
13
23
  }
14
24
  export declare class NormalizeWhitespaceVisitor<P> extends JavaScriptVisitor<P> {
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/javascript/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/javascript/format.ts"],"names":[],"mappings":"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"}
@@ -43,22 +43,31 @@ const maybeAutoFormat = (before, after, p, stopAfter, parent) => __awaiter(void
43
43
  return after;
44
44
  });
45
45
  exports.maybeAutoFormat = maybeAutoFormat;
46
- const autoFormat = (j, p, stopAfter, parent) => __awaiter(void 0, void 0, void 0, function* () { return yield new AutoformatVisitor(stopAfter).visit(j, p, parent); });
46
+ const autoFormat = (j, p, stopAfter, parent, styles) => __awaiter(void 0, void 0, void 0, function* () { return yield new AutoformatVisitor(stopAfter, styles).visit(j, p, parent); });
47
47
  exports.autoFormat = autoFormat;
48
+ /**
49
+ * Formats JavaScript/TypeScript code using a comprehensive set of formatting rules.
50
+ *
51
+ * Style resolution order (first match wins):
52
+ * 1. Styles passed to the constructor
53
+ * 2. Styles from source file markers (NamedStyles)
54
+ * 3. IntelliJ defaults
55
+ */
48
56
  class AutoformatVisitor extends visitor_1.JavaScriptVisitor {
49
- constructor(stopAfter) {
57
+ constructor(stopAfter, styles) {
50
58
  super();
51
59
  this.stopAfter = stopAfter;
60
+ this.styles = styles;
52
61
  }
53
62
  visit(tree, p, cursor) {
54
63
  return __awaiter(this, void 0, void 0, function* () {
55
64
  const visitors = [
56
65
  new NormalizeWhitespaceVisitor(this.stopAfter),
57
66
  new MinimumViableSpacingVisitor(this.stopAfter),
58
- new BlankLinesVisitor((0, style_1.styleFromSourceFile)(style_1.StyleKind.BlankLinesStyle, tree), this.stopAfter),
59
- new WrappingAndBracesVisitor((0, style_1.styleFromSourceFile)(style_1.StyleKind.WrappingAndBracesStyle, tree), this.stopAfter),
60
- new SpacesVisitor((0, style_1.styleFromSourceFile)(style_1.StyleKind.SpacesStyle, tree), this.stopAfter),
61
- new tabs_and_indents_visitor_1.TabsAndIndentsVisitor((0, style_1.styleFromSourceFile)(style_1.StyleKind.TabsAndIndentsStyle, tree), this.stopAfter),
67
+ new BlankLinesVisitor((0, style_1.getStyle)(style_1.StyleKind.BlankLinesStyle, tree, this.styles), this.stopAfter),
68
+ new WrappingAndBracesVisitor((0, style_1.getStyle)(style_1.StyleKind.WrappingAndBracesStyle, tree, this.styles), this.stopAfter),
69
+ new SpacesVisitor((0, style_1.getStyle)(style_1.StyleKind.SpacesStyle, tree, this.styles), this.stopAfter),
70
+ new tabs_and_indents_visitor_1.TabsAndIndentsVisitor((0, style_1.getStyle)(style_1.StyleKind.TabsAndIndentsStyle, tree, this.styles), this.stopAfter),
62
71
  ];
63
72
  let t = tree;
64
73
  for (const visitor of visitors) {
@@ -282,8 +291,13 @@ class SpacesVisitor extends visitor_1.JavaScriptVisitor {
282
291
  if (draft.exportClause.kind == tree_1.JS.Kind.NamedExports) {
283
292
  const ne = draft.exportClause;
284
293
  if (ne.elements.elements.length > 0) {
285
- ne.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
286
- ne.elements.elements[ne.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
294
+ // Check if this is a multi-line export (any element's prefix has a newline)
295
+ const isMultiLine = ne.elements.elements.some(e => e.element.prefix.whitespace.includes("\n"));
296
+ // Only adjust brace spacing for single-line exports
297
+ if (!isMultiLine) {
298
+ ne.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
299
+ ne.elements.elements[ne.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
300
+ }
287
301
  }
288
302
  }
289
303
  }
@@ -355,8 +369,13 @@ class SpacesVisitor extends visitor_1.JavaScriptVisitor {
355
369
  draft.importClause.namedBindings.prefix.whitespace = " ";
356
370
  if (draft.importClause.namedBindings.kind == tree_1.JS.Kind.NamedImports) {
357
371
  const ni = draft.importClause.namedBindings;
358
- ni.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
359
- ni.elements.elements[ni.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
372
+ // Check if this is a multi-line import (any element's prefix has a newline)
373
+ const isMultiLine = ni.elements.elements.some(e => e.element.prefix.whitespace.includes("\n"));
374
+ // Only adjust brace spacing for single-line imports
375
+ if (!isMultiLine) {
376
+ ni.elements.elements[0].element.prefix.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
377
+ ni.elements.elements[ni.elements.elements.length - 1].after.whitespace = this.style.within.es6ImportExportBraces ? " " : "";
378
+ }
360
379
  }
361
380
  }
362
381
  }
@@ -443,9 +462,14 @@ class SpacesVisitor extends visitor_1.JavaScriptVisitor {
443
462
  });
444
463
  return __awaiter(this, void 0, void 0, function* () {
445
464
  const pa = yield _super.visitPropertyAssignment.call(this, propertyAssignment, p);
446
- return (0, visitor_2.produceAsync)(pa, draft => {
447
- draft.name.after.whitespace = this.style.other.beforePropertyNameValueSeparator ? " " : "";
448
- });
465
+ // Only adjust the space before the colon if there's an initializer (not a shorthand property)
466
+ // For shorthand properties like { headers }, name.after.whitespace is the space before }
467
+ if (pa.initializer) {
468
+ return (0, visitor_2.produceAsync)(pa, draft => {
469
+ draft.name.after.whitespace = this.style.other.beforePropertyNameValueSeparator ? " " : "";
470
+ });
471
+ }
472
+ return pa;
449
473
  });
450
474
  }
451
475
  visitSwitch(switchNode, p) {