@openrewrite/rewrite 8.70.0-20251218-160300 → 8.70.0-20251219-115915

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.
Files changed (82) hide show
  1. package/dist/java/type.d.ts +5 -0
  2. package/dist/java/type.d.ts.map +1 -1
  3. package/dist/java/type.js +12 -0
  4. package/dist/java/type.js.map +1 -1
  5. package/dist/javascript/assertions.d.ts.map +1 -1
  6. package/dist/javascript/assertions.js +9 -0
  7. package/dist/javascript/assertions.js.map +1 -1
  8. package/dist/javascript/comparator.d.ts.map +1 -1
  9. package/dist/javascript/comparator.js +5 -9
  10. package/dist/javascript/comparator.js.map +1 -1
  11. package/dist/javascript/{format.d.ts → format/format.d.ts} +14 -33
  12. package/dist/javascript/format/format.d.ts.map +1 -0
  13. package/dist/javascript/{format.js → format/format.js} +28 -313
  14. package/dist/javascript/{format.js.map → format/format.js.map} +1 -1
  15. package/dist/javascript/format/index.d.ts +3 -0
  16. package/dist/javascript/format/index.d.ts.map +1 -0
  17. package/dist/javascript/format/index.js +38 -0
  18. package/dist/javascript/format/index.js.map +1 -0
  19. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts +28 -0
  20. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts.map +1 -0
  21. package/dist/javascript/format/minimum-viable-spacing-visitor.js +308 -0
  22. package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -0
  23. package/dist/javascript/format/normalize-whitespace-visitor.d.ts +14 -0
  24. package/dist/javascript/format/normalize-whitespace-visitor.d.ts.map +1 -0
  25. package/dist/javascript/format/normalize-whitespace-visitor.js +65 -0
  26. package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -0
  27. package/dist/javascript/format/prettier-config-loader.d.ts +92 -0
  28. package/dist/javascript/format/prettier-config-loader.d.ts.map +1 -0
  29. package/dist/javascript/format/prettier-config-loader.js +419 -0
  30. package/dist/javascript/format/prettier-config-loader.js.map +1 -0
  31. package/dist/javascript/format/prettier-format.d.ts +111 -0
  32. package/dist/javascript/format/prettier-format.d.ts.map +1 -0
  33. package/dist/javascript/format/prettier-format.js +496 -0
  34. package/dist/javascript/format/prettier-format.js.map +1 -0
  35. package/dist/javascript/{tabs-and-indents-visitor.d.ts → format/tabs-and-indents-visitor.d.ts} +4 -4
  36. package/dist/javascript/format/tabs-and-indents-visitor.d.ts.map +1 -0
  37. package/dist/javascript/{tabs-and-indents-visitor.js → format/tabs-and-indents-visitor.js} +7 -7
  38. package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -0
  39. package/dist/javascript/format/whitespace-reconciler.d.ts +106 -0
  40. package/dist/javascript/format/whitespace-reconciler.d.ts.map +1 -0
  41. package/dist/javascript/format/whitespace-reconciler.js +291 -0
  42. package/dist/javascript/format/whitespace-reconciler.js.map +1 -0
  43. package/dist/javascript/markers.d.ts.map +1 -1
  44. package/dist/javascript/markers.js +21 -0
  45. package/dist/javascript/markers.js.map +1 -1
  46. package/dist/javascript/parser.d.ts +15 -3
  47. package/dist/javascript/parser.d.ts.map +1 -1
  48. package/dist/javascript/parser.js +107 -24
  49. package/dist/javascript/parser.js.map +1 -1
  50. package/dist/javascript/recipes/auto-format.d.ts +3 -0
  51. package/dist/javascript/recipes/auto-format.d.ts.map +1 -1
  52. package/dist/javascript/recipes/auto-format.js +22 -1
  53. package/dist/javascript/recipes/auto-format.js.map +1 -1
  54. package/dist/javascript/style.d.ts +52 -1
  55. package/dist/javascript/style.d.ts.map +1 -1
  56. package/dist/javascript/style.js +43 -2
  57. package/dist/javascript/style.js.map +1 -1
  58. package/dist/test/rewrite-test.d.ts +3 -4
  59. package/dist/test/rewrite-test.d.ts.map +1 -1
  60. package/dist/test/rewrite-test.js +6 -18
  61. package/dist/test/rewrite-test.js.map +1 -1
  62. package/dist/version.txt +1 -1
  63. package/package.json +4 -3
  64. package/src/java/type.ts +12 -0
  65. package/src/javascript/assertions.ts +9 -0
  66. package/src/javascript/comparator.ts +6 -11
  67. package/src/javascript/{format.ts → format/format.ts} +35 -267
  68. package/src/javascript/format/index.ts +21 -0
  69. package/src/javascript/format/minimum-viable-spacing-visitor.ts +256 -0
  70. package/src/javascript/format/normalize-whitespace-visitor.ts +42 -0
  71. package/src/javascript/format/prettier-config-loader.ts +422 -0
  72. package/src/javascript/format/prettier-format.ts +622 -0
  73. package/src/javascript/{tabs-and-indents-visitor.ts → format/tabs-and-indents-visitor.ts} +8 -8
  74. package/src/javascript/format/whitespace-reconciler.ts +345 -0
  75. package/src/javascript/markers.ts +19 -0
  76. package/src/javascript/parser.ts +107 -20
  77. package/src/javascript/recipes/auto-format.ts +28 -1
  78. package/src/javascript/style.ts +41 -2
  79. package/src/test/rewrite-test.ts +6 -18
  80. package/dist/javascript/format.d.ts.map +0 -1
  81. package/dist/javascript/tabs-and-indents-visitor.d.ts.map +0 -1
  82. package/dist/javascript/tabs-and-indents-visitor.js.map +0 -1
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BlankLinesVisitor = exports.MinimumViableSpacingVisitor = exports.WrappingAndBracesVisitor = exports.SpacesVisitor = exports.NormalizeWhitespaceVisitor = exports.AutoformatVisitor = exports.autoFormat = exports.maybeAutoFormat = exports.TabsAndIndentsVisitor = void 0;
12
+ exports.prettierFormat = exports.BlankLinesVisitor = exports.WrappingAndBracesVisitor = exports.SpacesVisitor = exports.AutoformatVisitor = exports.autoFormat = exports.maybeAutoFormat = exports.MinimumViableSpacingVisitor = exports.NormalizeWhitespaceVisitor = exports.TabsAndIndentsVisitor = void 0;
13
13
  /*
14
14
  * Copyright 2025 the original author or authors.
15
15
  * <p>
@@ -25,17 +25,23 @@ exports.BlankLinesVisitor = exports.MinimumViableSpacingVisitor = exports.Wrappi
25
25
  * See the License for the specific language governing permissions and
26
26
  * limitations under the License.
27
27
  */
28
- const tree_1 = require("./tree");
29
- const visitor_1 = require("./visitor");
30
- const java_1 = require("../java");
28
+ const tree_1 = require("../tree");
29
+ const visitor_1 = require("../visitor");
30
+ const java_1 = require("../../java");
31
31
  const immer_1 = require("immer");
32
- const tree_2 = require("../tree");
33
- const style_1 = require("./style");
34
- const visitor_2 = require("../visitor");
35
- const markers_1 = require("../markers");
32
+ const tree_2 = require("../../tree");
33
+ const style_1 = require("../style");
34
+ const visitor_2 = require("../../visitor");
36
35
  const tabs_and_indents_visitor_1 = require("./tabs-and-indents-visitor");
36
+ const normalize_whitespace_visitor_1 = require("./normalize-whitespace-visitor");
37
+ const minimum_viable_spacing_visitor_1 = require("./minimum-viable-spacing-visitor");
38
+ const prettier_format_1 = require("./prettier-format");
37
39
  var tabs_and_indents_visitor_2 = require("./tabs-and-indents-visitor");
38
40
  Object.defineProperty(exports, "TabsAndIndentsVisitor", { enumerable: true, get: function () { return tabs_and_indents_visitor_2.TabsAndIndentsVisitor; } });
41
+ var normalize_whitespace_visitor_2 = require("./normalize-whitespace-visitor");
42
+ Object.defineProperty(exports, "NormalizeWhitespaceVisitor", { enumerable: true, get: function () { return normalize_whitespace_visitor_2.NormalizeWhitespaceVisitor; } });
43
+ var minimum_viable_spacing_visitor_2 = require("./minimum-viable-spacing-visitor");
44
+ Object.defineProperty(exports, "MinimumViableSpacingVisitor", { enumerable: true, get: function () { return minimum_viable_spacing_visitor_2.MinimumViableSpacingVisitor; } });
39
45
  const maybeAutoFormat = (before, after, p, stopAfter, parent) => __awaiter(void 0, void 0, void 0, function* () {
40
46
  if (before !== after) {
41
47
  return (0, exports.autoFormat)(after, p, stopAfter, parent);
@@ -52,6 +58,9 @@ exports.autoFormat = autoFormat;
52
58
  * 1. Styles passed to the constructor
53
59
  * 2. Styles from source file markers (NamedStyles)
54
60
  * 3. IntelliJ defaults
61
+ *
62
+ * When a PrettierStyle is present (either in the styles array or as a marker on the source file),
63
+ * Prettier is used for formatting. Otherwise, built-in formatting visitors are used.
55
64
  */
56
65
  class AutoformatVisitor extends visitor_1.JavaScriptVisitor {
57
66
  constructor(stopAfter, styles) {
@@ -61,9 +70,15 @@ class AutoformatVisitor extends visitor_1.JavaScriptVisitor {
61
70
  }
62
71
  visit(tree, p, cursor) {
63
72
  return __awaiter(this, void 0, void 0, function* () {
73
+ // Check for PrettierStyle in styles array or as marker on source file
74
+ // If found, delegate entirely to Prettier (skip other formatting visitors)
75
+ const prettierStyle = (0, prettier_format_1.getPrettierStyle)(tree, cursor, this.styles);
76
+ if (prettierStyle) {
77
+ return (0, prettier_format_1.applyPrettierFormatting)(tree, prettierStyle, p, cursor, this.stopAfter);
78
+ }
64
79
  const visitors = [
65
- new NormalizeWhitespaceVisitor(this.stopAfter),
66
- new MinimumViableSpacingVisitor(this.stopAfter),
80
+ new normalize_whitespace_visitor_1.NormalizeWhitespaceVisitor(this.stopAfter),
81
+ new minimum_viable_spacing_visitor_1.MinimumViableSpacingVisitor(this.stopAfter),
67
82
  new BlankLinesVisitor((0, style_1.getStyle)(style_1.StyleKind.BlankLinesStyle, tree, this.styles), this.stopAfter),
68
83
  new WrappingAndBracesVisitor((0, style_1.getStyle)(style_1.StyleKind.WrappingAndBracesStyle, tree, this.styles), this.stopAfter),
69
84
  new SpacesVisitor((0, style_1.getStyle)(style_1.StyleKind.SpacesStyle, tree, this.styles), this.stopAfter),
@@ -81,39 +96,6 @@ class AutoformatVisitor extends visitor_1.JavaScriptVisitor {
81
96
  }
82
97
  }
83
98
  exports.AutoformatVisitor = AutoformatVisitor;
84
- class NormalizeWhitespaceVisitor extends visitor_1.JavaScriptVisitor {
85
- // called NormalizeFormat in Java
86
- // Ensures that whitespace is on the outermost AST element possible
87
- constructor(stopAfter) {
88
- super();
89
- this.stopAfter = stopAfter;
90
- }
91
- visit(tree, p, parent) {
92
- const _super = Object.create(null, {
93
- visit: { get: () => super.visit }
94
- });
95
- return __awaiter(this, void 0, void 0, function* () {
96
- var _a;
97
- if (((_a = this.cursor) === null || _a === void 0 ? void 0 : _a.getNearestMessage("stop")) != null) {
98
- return tree;
99
- }
100
- return _super.visit.call(this, tree, p, parent);
101
- });
102
- }
103
- postVisit(tree, p) {
104
- const _super = Object.create(null, {
105
- postVisit: { get: () => super.postVisit }
106
- });
107
- return __awaiter(this, void 0, void 0, function* () {
108
- var _a;
109
- if (this.stopAfter != null && (0, tree_2.isScope)(this.stopAfter, tree)) {
110
- (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.root.messages.set("stop", true);
111
- }
112
- return _super.postVisit.call(this, tree, p);
113
- });
114
- }
115
- }
116
- exports.NormalizeWhitespaceVisitor = NormalizeWhitespaceVisitor;
117
99
  class SpacesVisitor extends visitor_1.JavaScriptVisitor {
118
100
  constructor(style, stopAfter) {
119
101
  super();
@@ -1096,276 +1078,6 @@ class WrappingAndBracesVisitor extends visitor_1.JavaScriptVisitor {
1096
1078
  }
1097
1079
  }
1098
1080
  exports.WrappingAndBracesVisitor = WrappingAndBracesVisitor;
1099
- class MinimumViableSpacingVisitor extends visitor_1.JavaScriptVisitor {
1100
- constructor(stopAfter) {
1101
- super();
1102
- this.stopAfter = stopAfter;
1103
- }
1104
- visit(tree, p, parent) {
1105
- const _super = Object.create(null, {
1106
- visit: { get: () => super.visit }
1107
- });
1108
- return __awaiter(this, void 0, void 0, function* () {
1109
- var _a;
1110
- if (((_a = this.cursor) === null || _a === void 0 ? void 0 : _a.getNearestMessage("stop")) != null) {
1111
- return tree;
1112
- }
1113
- return _super.visit.call(this, tree, p, parent);
1114
- });
1115
- }
1116
- postVisit(tree, p) {
1117
- const _super = Object.create(null, {
1118
- postVisit: { get: () => super.postVisit }
1119
- });
1120
- return __awaiter(this, void 0, void 0, function* () {
1121
- var _a;
1122
- if (this.stopAfter != null && (0, tree_2.isScope)(this.stopAfter, tree)) {
1123
- (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.root.messages.set("stop", true);
1124
- }
1125
- return _super.postVisit.call(this, tree, p);
1126
- });
1127
- }
1128
- visitAwait(await_, p) {
1129
- const _super = Object.create(null, {
1130
- visitAwait: { get: () => super.visitAwait }
1131
- });
1132
- return __awaiter(this, void 0, void 0, function* () {
1133
- const ret = yield _super.visitAwait.call(this, await_, p);
1134
- return (0, immer_1.produce)(ret, draft => {
1135
- this.ensureSpace(draft.expression.prefix);
1136
- });
1137
- });
1138
- }
1139
- visitClassDeclaration(classDecl, p) {
1140
- const _super = Object.create(null, {
1141
- visitClassDeclaration: { get: () => super.visitClassDeclaration }
1142
- });
1143
- return __awaiter(this, void 0, void 0, function* () {
1144
- let c = yield _super.visitClassDeclaration.call(this, classDecl, p);
1145
- let first = c.leadingAnnotations.length === 0;
1146
- if (c.modifiers.length > 0) {
1147
- if (!first && c.modifiers[0].prefix.whitespace === "") {
1148
- c = (0, immer_1.produce)(c, draft => {
1149
- this.ensureSpace(draft.modifiers[0].prefix);
1150
- });
1151
- }
1152
- c = (0, immer_1.produce)(c, draft => {
1153
- for (let i = 1; i < draft.modifiers.length; i++) {
1154
- this.ensureSpace(draft.modifiers[i].prefix);
1155
- }
1156
- });
1157
- first = false;
1158
- }
1159
- if (c.classKind.prefix.whitespace === "" && !first) {
1160
- c = (0, immer_1.produce)(c, draft => {
1161
- this.ensureSpace(draft.classKind.prefix);
1162
- });
1163
- first = false;
1164
- }
1165
- // anonymous classes have an empty name
1166
- if (c.name.simpleName !== "") {
1167
- c = (0, immer_1.produce)(c, draft => {
1168
- this.ensureSpace(draft.name.prefix);
1169
- });
1170
- }
1171
- // Note: typeParameters should NOT have space before them - they immediately follow the class name
1172
- // e.g., "class DataTable<Row>" not "class DataTable <Row>"
1173
- if (c.extends && c.extends.before.whitespace === "") {
1174
- c = (0, immer_1.produce)(c, draft => {
1175
- this.ensureSpace(draft.extends.before);
1176
- });
1177
- }
1178
- if (c.implements && c.implements.before.whitespace === "") {
1179
- c = (0, immer_1.produce)(c, draft => {
1180
- this.ensureSpace(draft.implements.before);
1181
- if (draft.implements != undefined && draft.implements.elements.length > 0) {
1182
- this.ensureSpace(draft.implements.elements[0].element.prefix);
1183
- }
1184
- });
1185
- }
1186
- c = (0, immer_1.produce)(c, draft => {
1187
- draft.body.prefix.whitespace = "";
1188
- });
1189
- return c;
1190
- });
1191
- }
1192
- visitMethodDeclaration(method, p) {
1193
- const _super = Object.create(null, {
1194
- visitMethodDeclaration: { get: () => super.visitMethodDeclaration }
1195
- });
1196
- return __awaiter(this, void 0, void 0, function* () {
1197
- let m = yield _super.visitMethodDeclaration.call(this, method, p);
1198
- let first = m.leadingAnnotations.length === 0;
1199
- if (m.modifiers.length > 0) {
1200
- if (!first && m.modifiers[0].prefix.whitespace === "") {
1201
- m = (0, immer_1.produce)(m, draft => {
1202
- this.ensureSpace(draft.modifiers[0].prefix);
1203
- });
1204
- }
1205
- m = (0, immer_1.produce)(m, draft => {
1206
- for (let i = 1; i < draft.modifiers.length; i++) {
1207
- this.ensureSpace(draft.modifiers[i].prefix);
1208
- }
1209
- });
1210
- first = false;
1211
- }
1212
- // FunctionDeclaration marker check must come AFTER modifiers processing
1213
- // to avoid adding unwanted space before the first modifier (e.g., 'async')
1214
- if ((0, markers_1.findMarker)(method, tree_1.JS.Markers.FunctionDeclaration)) {
1215
- first = false;
1216
- }
1217
- if (!first && m.name.prefix.whitespace === "") {
1218
- m = (0, immer_1.produce)(m, draft => {
1219
- this.ensureSpace(draft.name.prefix);
1220
- });
1221
- }
1222
- if (m.throws && m.throws.before.whitespace === "") {
1223
- m = (0, immer_1.produce)(m, draft => {
1224
- this.ensureSpace(draft.throws.before);
1225
- });
1226
- }
1227
- return m;
1228
- });
1229
- }
1230
- visitNamespaceDeclaration(namespaceDeclaration, p) {
1231
- const _super = Object.create(null, {
1232
- visitNamespaceDeclaration: { get: () => super.visitNamespaceDeclaration }
1233
- });
1234
- return __awaiter(this, void 0, void 0, function* () {
1235
- const ret = yield _super.visitNamespaceDeclaration.call(this, namespaceDeclaration, p);
1236
- return (0, immer_1.produce)(ret, draft => {
1237
- if (draft.modifiers.length > 0) {
1238
- draft.keywordType.before.whitespace = " ";
1239
- }
1240
- this.ensureSpace(draft.name.element.prefix);
1241
- });
1242
- });
1243
- }
1244
- visitNewClass(newClass, p) {
1245
- const _super = Object.create(null, {
1246
- visitNewClass: { get: () => super.visitNewClass }
1247
- });
1248
- return __awaiter(this, void 0, void 0, function* () {
1249
- const ret = yield _super.visitNewClass.call(this, newClass, p);
1250
- return (0, immer_1.produce)(ret, draft => {
1251
- if (draft.class) {
1252
- if (draft.class.kind == java_1.J.Kind.Identifier) {
1253
- this.ensureSpace(draft.class.prefix);
1254
- }
1255
- }
1256
- });
1257
- });
1258
- }
1259
- visitReturn(returnNode, p) {
1260
- const _super = Object.create(null, {
1261
- visitReturn: { get: () => super.visitReturn }
1262
- });
1263
- return __awaiter(this, void 0, void 0, function* () {
1264
- const r = yield _super.visitReturn.call(this, returnNode, p);
1265
- if (r.expression && r.expression.prefix.whitespace === "" &&
1266
- !r.markers.markers.find(m => m.id === "org.openrewrite.java.marker.ImplicitReturn")) {
1267
- return (0, immer_1.produce)(r, draft => {
1268
- this.ensureSpace(draft.expression.prefix);
1269
- });
1270
- }
1271
- return r;
1272
- });
1273
- }
1274
- visitThrow(thrown, p) {
1275
- const _super = Object.create(null, {
1276
- visitThrow: { get: () => super.visitThrow }
1277
- });
1278
- return __awaiter(this, void 0, void 0, function* () {
1279
- const ret = yield _super.visitThrow.call(this, thrown, p);
1280
- return ret && (0, immer_1.produce)(ret, draft => {
1281
- this.ensureSpace(draft.exception.prefix);
1282
- });
1283
- });
1284
- }
1285
- visitTypeDeclaration(typeDeclaration, p) {
1286
- const _super = Object.create(null, {
1287
- visitTypeDeclaration: { get: () => super.visitTypeDeclaration }
1288
- });
1289
- return __awaiter(this, void 0, void 0, function* () {
1290
- const ret = yield _super.visitTypeDeclaration.call(this, typeDeclaration, p);
1291
- return (0, immer_1.produce)(ret, draft => {
1292
- if (draft.modifiers.length > 0) {
1293
- this.ensureSpace(draft.name.before);
1294
- }
1295
- this.ensureSpace(draft.name.element.prefix);
1296
- });
1297
- });
1298
- }
1299
- visitTypeOf(typeOf, p) {
1300
- const _super = Object.create(null, {
1301
- visitTypeOf: { get: () => super.visitTypeOf }
1302
- });
1303
- return __awaiter(this, void 0, void 0, function* () {
1304
- const ret = yield _super.visitTypeOf.call(this, typeOf, p);
1305
- return (0, immer_1.produce)(ret, draft => {
1306
- this.ensureSpace(draft.expression.prefix);
1307
- });
1308
- });
1309
- }
1310
- visitTypeParameter(typeParam, p) {
1311
- const _super = Object.create(null, {
1312
- visitTypeParameter: { get: () => super.visitTypeParameter }
1313
- });
1314
- return __awaiter(this, void 0, void 0, function* () {
1315
- const ret = yield _super.visitTypeParameter.call(this, typeParam, p);
1316
- return (0, immer_1.produce)(ret, draft => {
1317
- if (draft.bounds && draft.bounds.elements.length > 0) {
1318
- this.ensureSpace(draft.bounds.before);
1319
- this.ensureSpace(draft.bounds.elements[0].element.prefix);
1320
- }
1321
- });
1322
- });
1323
- }
1324
- visitVariableDeclarations(v, p) {
1325
- const _super = Object.create(null, {
1326
- visitVariableDeclarations: { get: () => super.visitVariableDeclarations }
1327
- });
1328
- return __awaiter(this, void 0, void 0, function* () {
1329
- let ret = yield _super.visitVariableDeclarations.call(this, v, p);
1330
- let first = ret.leadingAnnotations.length === 0;
1331
- if (first && ret.modifiers.length > 0) {
1332
- ret = (0, immer_1.produce)(ret, draft => {
1333
- for (let i = 1; i < draft.modifiers.length; i++) {
1334
- this.ensureSpace(draft.modifiers[i].prefix);
1335
- }
1336
- });
1337
- first = false;
1338
- }
1339
- if (!first) {
1340
- ret = (0, immer_1.produce)(ret, draft => {
1341
- this.ensureSpace(draft.variables[0].element.prefix);
1342
- });
1343
- }
1344
- return ret;
1345
- });
1346
- }
1347
- visitCase(caseNode, p) {
1348
- const _super = Object.create(null, {
1349
- visitCase: { get: () => super.visitCase }
1350
- });
1351
- return __awaiter(this, void 0, void 0, function* () {
1352
- const c = yield _super.visitCase.call(this, caseNode, p);
1353
- if (c.guard && c.caseLabels.elements.length > 0 && c.caseLabels.elements[c.caseLabels.elements.length - 1].after.whitespace === "") {
1354
- return (0, immer_1.produce)(c, draft => {
1355
- const last = draft.caseLabels.elements.length - 1;
1356
- draft.caseLabels.elements[last].after.whitespace = " ";
1357
- });
1358
- }
1359
- return c;
1360
- });
1361
- }
1362
- ensureSpace(spaceDraft) {
1363
- if (spaceDraft.whitespace.length === 0 && spaceDraft.comments.length === 0) {
1364
- spaceDraft.whitespace = " ";
1365
- }
1366
- }
1367
- }
1368
- exports.MinimumViableSpacingVisitor = MinimumViableSpacingVisitor;
1369
1081
  class BlankLinesVisitor extends visitor_1.JavaScriptVisitor {
1370
1082
  constructor(style, stopAfter) {
1371
1083
  super();
@@ -1597,4 +1309,7 @@ class BlankLinesVisitor extends visitor_1.JavaScriptVisitor {
1597
1309
  }
1598
1310
  }
1599
1311
  exports.BlankLinesVisitor = BlankLinesVisitor;
1312
+ // Re-export prettier formatting utilities
1313
+ var prettier_format_2 = require("./prettier-format");
1314
+ Object.defineProperty(exports, "prettierFormat", { enumerable: true, get: function () { return prettier_format_2.prettierFormat; } });
1600
1315
  //# sourceMappingURL=format.js.map