@openrewrite/rewrite 8.70.0-20251222-101414 → 8.70.0-20251222-213047
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 +8 -8
- package/dist/index.js.map +1 -1
- package/dist/java/formatting-utils.d.ts +1 -1
- package/dist/java/formatting-utils.js +4 -4
- package/dist/java/formatting-utils.js.map +1 -1
- package/dist/java/markers.js +8 -8
- package/dist/java/markers.js.map +1 -1
- package/dist/java/type-visitor.d.ts +0 -3
- package/dist/java/type-visitor.d.ts.map +1 -1
- package/dist/java/type-visitor.js +67 -68
- package/dist/java/type-visitor.js.map +1 -1
- package/dist/java/visitor.d.ts +3 -3
- package/dist/java/visitor.d.ts.map +1 -1
- package/dist/java/visitor.js +5 -5
- package/dist/java/visitor.js.map +1 -1
- package/dist/javascript/assertions.js +4 -3
- package/dist/javascript/assertions.js.map +1 -1
- package/dist/javascript/cleanup/use-object-property-shorthand.js +3 -3
- package/dist/javascript/cleanup/use-object-property-shorthand.js.map +1 -1
- package/dist/javascript/format/format.d.ts +28 -7
- package/dist/javascript/format/format.d.ts.map +1 -1
- package/dist/javascript/format/format.js +149 -158
- package/dist/javascript/format/format.js.map +1 -1
- package/dist/javascript/format/minimum-viable-spacing-visitor.js +23 -23
- package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
- package/dist/javascript/format/prettier-format.d.ts.map +1 -1
- package/dist/javascript/format/prettier-format.js +8 -11
- package/dist/javascript/format/prettier-format.js.map +1 -1
- package/dist/javascript/format/tabs-and-indents-visitor.js +7 -7
- package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -1
- package/dist/javascript/format/whitespace-reconciler.d.ts.map +1 -1
- package/dist/javascript/format/whitespace-reconciler.js +12 -11
- package/dist/javascript/format/whitespace-reconciler.js.map +1 -1
- package/dist/javascript/markers.d.ts.map +1 -1
- package/dist/javascript/markers.js +6 -5
- package/dist/javascript/markers.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js +2 -2
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-literals.js +2 -2
- package/dist/javascript/migrate/es6/modernize-octal-literals.js.map +1 -1
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js +2 -2
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js.map +1 -1
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js +2 -2
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js.map +1 -1
- package/dist/javascript/node-resolution-result.js +3 -9
- package/dist/javascript/node-resolution-result.js.map +1 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +35 -35
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/project-parser.d.ts.map +1 -1
- package/dist/javascript/project-parser.js +6 -5
- package/dist/javascript/project-parser.js.map +1 -1
- package/dist/javascript/recipes/auto-format.d.ts +7 -23
- package/dist/javascript/recipes/auto-format.d.ts.map +1 -1
- package/dist/javascript/recipes/auto-format.js +8 -54
- package/dist/javascript/recipes/auto-format.js.map +1 -1
- package/dist/javascript/recipes/change-import.js +8 -8
- package/dist/javascript/recipes/change-import.js.map +1 -1
- package/dist/javascript/recipes/order-imports.js +4 -4
- package/dist/javascript/recipes/order-imports.js.map +1 -1
- package/dist/javascript/templating/engine.js +2 -2
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/index.d.ts +1 -0
- package/dist/javascript/templating/index.d.ts.map +1 -1
- package/dist/javascript/templating/index.js +4 -1
- package/dist/javascript/templating/index.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +16 -16
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/type-mapping.d.ts.map +1 -1
- package/dist/javascript/type-mapping.js +49 -58
- package/dist/javascript/type-mapping.js.map +1 -1
- package/dist/javascript/visitor.d.ts +3 -3
- package/dist/javascript/visitor.d.ts.map +1 -1
- package/dist/javascript/visitor.js +3 -3
- package/dist/javascript/visitor.js.map +1 -1
- package/dist/json/rpc.js +48 -49
- package/dist/json/rpc.js.map +1 -1
- package/dist/json/visitor.d.ts +3 -3
- package/dist/json/visitor.d.ts.map +1 -1
- package/dist/json/visitor.js +3 -3
- package/dist/json/visitor.js.map +1 -1
- package/dist/parse-error.js +11 -11
- package/dist/parse-error.js.map +1 -1
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +0 -3
- package/dist/reference.js.map +1 -1
- package/dist/rpc/index.js +42 -42
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/queue.d.ts.map +1 -1
- package/dist/rpc/queue.js +6 -8
- package/dist/rpc/queue.js.map +1 -1
- package/dist/rpc/request/install-recipes.js +1 -1
- package/dist/rpc/request/install-recipes.js.map +1 -1
- package/dist/rpc/request/parse-project.d.ts.map +1 -1
- package/dist/rpc/request/parse-project.js +12 -32
- package/dist/rpc/request/parse-project.js.map +1 -1
- package/dist/rpc/request/parse.d.ts.map +1 -1
- package/dist/rpc/request/parse.js +1 -4
- package/dist/rpc/request/parse.js.map +1 -1
- package/dist/text/rpc.js +18 -18
- package/dist/text/rpc.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/visitor.d.ts +6 -4
- package/dist/visitor.d.ts.map +1 -1
- package/dist/visitor.js +19 -17
- package/dist/visitor.js.map +1 -1
- package/dist/yaml/rpc.js +65 -65
- package/dist/yaml/rpc.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +8 -8
- package/src/java/formatting-utils.ts +2 -2
- package/src/java/markers.ts +8 -8
- package/src/java/type-visitor.ts +59 -68
- package/src/java/visitor.ts +8 -8
- package/src/javascript/assertions.ts +3 -3
- package/src/javascript/cleanup/use-object-property-shorthand.ts +1 -1
- package/src/javascript/format/format.ts +109 -107
- package/src/javascript/format/minimum-viable-spacing-visitor.ts +1 -1
- package/src/javascript/format/prettier-format.ts +9 -12
- package/src/javascript/format/tabs-and-indents-visitor.ts +1 -1
- package/src/javascript/format/whitespace-reconciler.ts +12 -11
- package/src/javascript/markers.ts +6 -6
- package/src/javascript/migrate/es6/modernize-octal-escape-sequences.ts +1 -1
- package/src/javascript/migrate/es6/modernize-octal-literals.ts +1 -1
- package/src/javascript/migrate/es6/remove-duplicate-object-keys.ts +1 -1
- package/src/javascript/migrate/typescript/export-assignment-to-export-default.ts +1 -1
- package/src/javascript/node-resolution-result.ts +8 -14
- package/src/javascript/parser.ts +5 -4
- package/src/javascript/project-parser.ts +4 -4
- package/src/javascript/recipes/auto-format.ts +9 -71
- package/src/javascript/recipes/change-import.ts +4 -4
- package/src/javascript/recipes/order-imports.ts +1 -1
- package/src/javascript/templating/engine.ts +1 -1
- package/src/javascript/templating/index.ts +5 -0
- package/src/javascript/templating/placeholder-replacement.ts +2 -2
- package/src/javascript/type-mapping.ts +28 -34
- package/src/javascript/visitor.ts +6 -6
- package/src/json/rpc.ts +51 -52
- package/src/json/visitor.ts +6 -6
- package/src/parse-error.ts +11 -11
- package/src/reference.ts +0 -5
- package/src/rpc/index.ts +43 -43
- package/src/rpc/queue.ts +6 -8
- package/src/rpc/request/install-recipes.ts +1 -1
- package/src/rpc/request/parse-project.ts +20 -32
- package/src/rpc/request/parse.ts +1 -4
- package/src/text/rpc.ts +18 -18
- package/src/visitor.ts +29 -30
- package/src/yaml/rpc.ts +80 -81
package/src/visitor.ts
CHANGED
|
@@ -15,32 +15,21 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import {emptyMarkers, Marker, Markers} from "./markers";
|
|
17
17
|
import {Cursor, isSourceFile, rootCursor, SourceFile, Tree} from "./tree";
|
|
18
|
-
import {
|
|
19
|
-
import {mapAsync} from "./util";
|
|
18
|
+
import {create, Draft} from "mutative";
|
|
19
|
+
import {mapAsync, updateIfChanged} from "./util";
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
| void
|
|
25
|
-
| undefined
|
|
26
|
-
| typeof nothing
|
|
21
|
+
type Objectish = Record<string, any> | Array<any>;
|
|
22
|
+
|
|
23
|
+
export type ValidRecipeReturnType<State> = State | void | undefined;
|
|
27
24
|
|
|
28
25
|
export async function produceAsync<Base extends Objectish>(
|
|
29
26
|
before: Promise<Base> | Base,
|
|
30
|
-
recipe: (draft: Draft<Base>) =>
|
|
31
|
-
PromiseLike<
|
|
27
|
+
recipe: (draft: Draft<Base>) => ValidRecipeReturnType<Draft<Base>> |
|
|
28
|
+
PromiseLike<ValidRecipeReturnType<Draft<Base>>>
|
|
32
29
|
): Promise<Base | undefined> {
|
|
33
30
|
const b: Base = await before;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// If recipe explicitly returned Immer's nothing, return undefined
|
|
38
|
-
if (result === nothing) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Otherwise, return the finished draft (void/undefined means use draft)
|
|
43
|
-
return finishDraft(draft) as Base;
|
|
31
|
+
// Mutative's create(base, recipe) supports async recipes and rawReturn(undefined)
|
|
32
|
+
return create(b, recipe as any) as Base | undefined;
|
|
44
33
|
}
|
|
45
34
|
|
|
46
35
|
const stopAfterPreVisit = Symbol.for("STOP_AFTER_PRE_VISIT")
|
|
@@ -136,9 +125,9 @@ export abstract class TreeVisitor<T extends Tree, P> {
|
|
|
136
125
|
} else if ((markers.markers?.length || 0) === 0) {
|
|
137
126
|
return markers;
|
|
138
127
|
}
|
|
139
|
-
return (
|
|
140
|
-
|
|
141
|
-
})
|
|
128
|
+
return updateIfChanged(markers, {
|
|
129
|
+
markers: await mapAsync(markers.markers, m => this.visitMarker(m, p))
|
|
130
|
+
});
|
|
142
131
|
}
|
|
143
132
|
|
|
144
133
|
protected async visitMarker<M extends Marker>(marker: M, p: P): Promise<M> {
|
|
@@ -149,15 +138,25 @@ export abstract class TreeVisitor<T extends Tree, P> {
|
|
|
149
138
|
before: T,
|
|
150
139
|
p: P,
|
|
151
140
|
recipe?:
|
|
152
|
-
((draft: Draft<T>) =>
|
|
153
|
-
((draft: Draft<T>) => Promise<
|
|
141
|
+
((draft: Draft<T>) => ValidRecipeReturnType<Draft<T>>) |
|
|
142
|
+
((draft: Draft<T>) => Promise<ValidRecipeReturnType<Draft<T>>>)
|
|
154
143
|
): Promise<T | undefined> {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
144
|
+
// Visit markers separately to avoid Mutative drafting cyclic marker structures
|
|
145
|
+
const newMarkers = await this.visitMarkers(before.markers, p);
|
|
146
|
+
|
|
147
|
+
if (recipe) {
|
|
148
|
+
// Remove markers before Mutative drafting to avoid cycles, then restore after
|
|
149
|
+
const withoutMarkers = { ...before, markers: emptyMarkers };
|
|
150
|
+
const result = await produceAsync(withoutMarkers, recipe);
|
|
151
|
+
if (result === undefined) {
|
|
152
|
+
return undefined;
|
|
159
153
|
}
|
|
160
|
-
|
|
154
|
+
// Restore markers (use newMarkers since we visited them)
|
|
155
|
+
return { ...result, markers: newMarkers } as T;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// No recipe - just update markers if changed
|
|
159
|
+
return updateIfChanged(before, { markers: newMarkers } as Partial<T>);
|
|
161
160
|
}
|
|
162
161
|
}
|
|
163
162
|
|
package/src/yaml/rpc.ts
CHANGED
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
import {YamlVisitor} from "./visitor";
|
|
17
17
|
import {RpcCodecs, RpcReceiveQueue, RpcSendQueue} from "../rpc";
|
|
18
18
|
import {Yaml} from "./tree";
|
|
19
|
-
import {
|
|
20
|
-
import {createDraft, finishDraft} from "immer";
|
|
19
|
+
import {updateIfChanged} from "../util";
|
|
21
20
|
|
|
22
21
|
class YamlSender extends YamlVisitor<RpcSendQueue> {
|
|
23
22
|
|
|
@@ -116,118 +115,118 @@ class YamlSender extends YamlVisitor<RpcSendQueue> {
|
|
|
116
115
|
class YamlReceiver extends YamlVisitor<RpcReceiveQueue> {
|
|
117
116
|
|
|
118
117
|
protected async preVisit(y: Yaml, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
118
|
+
return updateIfChanged(y, {
|
|
119
|
+
id: await q.receive(y.id),
|
|
120
|
+
prefix: await q.receive(y.prefix),
|
|
121
|
+
markers: await q.receive(y.markers),
|
|
122
|
+
});
|
|
124
123
|
}
|
|
125
124
|
|
|
126
125
|
protected async visitDocuments(documents: Yaml.Documents, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
126
|
+
return updateIfChanged(documents, {
|
|
127
|
+
sourcePath: await q.receive(documents.sourcePath),
|
|
128
|
+
charsetName: await q.receive(documents.charsetName),
|
|
129
|
+
charsetBomMarked: await q.receive(documents.charsetBomMarked),
|
|
130
|
+
checksum: await q.receive(documents.checksum),
|
|
131
|
+
fileAttributes: await q.receive(documents.fileAttributes),
|
|
132
|
+
documents: await q.receiveListDefined(documents.documents,
|
|
133
|
+
async doc => await this.visit(doc, q) as Yaml.Document),
|
|
134
|
+
suffix: await q.receive(documents.suffix),
|
|
135
|
+
});
|
|
137
136
|
}
|
|
138
137
|
|
|
139
138
|
protected async visitDocument(document: Yaml.Document, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
139
|
+
return updateIfChanged(document, {
|
|
140
|
+
explicit: await q.receive(document.explicit),
|
|
141
|
+
block: await q.receive(document.block,
|
|
142
|
+
async b => await this.visit(b, q) as Yaml.Block),
|
|
143
|
+
end: await q.receive(document.end,
|
|
144
|
+
async e => await this.visit(e, q) as Yaml.DocumentEnd),
|
|
145
|
+
});
|
|
147
146
|
}
|
|
148
147
|
|
|
149
148
|
protected async visitDocumentEnd(end: Yaml.DocumentEnd, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
return updateIfChanged(end, {
|
|
150
|
+
explicit: await q.receive(end.explicit),
|
|
151
|
+
});
|
|
153
152
|
}
|
|
154
153
|
|
|
155
154
|
protected async visitMapping(mapping: Yaml.Mapping, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
155
|
+
return updateIfChanged(mapping, {
|
|
156
|
+
openingBracePrefix: await q.receive(mapping.openingBracePrefix),
|
|
157
|
+
entries: await q.receiveListDefined(mapping.entries,
|
|
158
|
+
async e => await this.visit(e, q) as Yaml.MappingEntry),
|
|
159
|
+
closingBracePrefix: await q.receive(mapping.closingBracePrefix),
|
|
160
|
+
anchor: await q.receive(mapping.anchor,
|
|
161
|
+
async a => a ? await this.visit(a, q) as Yaml.Anchor : undefined),
|
|
162
|
+
tag: await q.receive(mapping.tag,
|
|
163
|
+
async t => t ? await this.visit(t, q) as Yaml.Tag : undefined),
|
|
164
|
+
});
|
|
166
165
|
}
|
|
167
166
|
|
|
168
167
|
protected async visitMappingEntry(entry: Yaml.MappingEntry, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
168
|
+
return updateIfChanged(entry, {
|
|
169
|
+
key: await q.receive(entry.key,
|
|
170
|
+
async k => await this.visit(k, q) as Yaml.YamlKey),
|
|
171
|
+
beforeMappingValueIndicator: await q.receive(entry.beforeMappingValueIndicator),
|
|
172
|
+
value: await q.receive(entry.value,
|
|
173
|
+
async v => await this.visit(v, q) as Yaml.Block),
|
|
174
|
+
});
|
|
176
175
|
}
|
|
177
176
|
|
|
178
177
|
protected async visitScalar(scalar: Yaml.Scalar, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
178
|
+
return updateIfChanged(scalar, {
|
|
179
|
+
style: await q.receive(scalar.style),
|
|
180
|
+
anchor: await q.receive(scalar.anchor,
|
|
181
|
+
async a => a ? await this.visit(a, q) as Yaml.Anchor : undefined),
|
|
182
|
+
tag: await q.receive(scalar.tag,
|
|
183
|
+
async t => t ? await this.visit(t, q) as Yaml.Tag : undefined),
|
|
184
|
+
value: await q.receive(scalar.value),
|
|
185
|
+
});
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
protected async visitSequence(sequence: Yaml.Sequence, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
189
|
+
return updateIfChanged(sequence, {
|
|
190
|
+
openingBracketPrefix: await q.receive(sequence.openingBracketPrefix),
|
|
191
|
+
entries: await q.receiveListDefined(sequence.entries,
|
|
192
|
+
async e => await this.visit(e, q) as Yaml.SequenceEntry),
|
|
193
|
+
closingBracketPrefix: await q.receive(sequence.closingBracketPrefix),
|
|
194
|
+
anchor: await q.receive(sequence.anchor,
|
|
195
|
+
async a => a ? await this.visit(a, q) as Yaml.Anchor : undefined),
|
|
196
|
+
tag: await q.receive(sequence.tag,
|
|
197
|
+
async t => t ? await this.visit(t, q) as Yaml.Tag : undefined),
|
|
198
|
+
});
|
|
200
199
|
}
|
|
201
200
|
|
|
202
201
|
protected async visitSequenceEntry(entry: Yaml.SequenceEntry, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
202
|
+
return updateIfChanged(entry, {
|
|
203
|
+
block: await q.receive(entry.block,
|
|
204
|
+
async b => await this.visit(b, q) as Yaml.Block),
|
|
205
|
+
dash: await q.receive(entry.dash),
|
|
206
|
+
trailingCommaPrefix: await q.receive(entry.trailingCommaPrefix),
|
|
207
|
+
});
|
|
209
208
|
}
|
|
210
209
|
|
|
211
210
|
protected async visitAnchor(anchor: Yaml.Anchor, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
211
|
+
return updateIfChanged(anchor, {
|
|
212
|
+
postfix: await q.receive(anchor.postfix),
|
|
213
|
+
key: await q.receive(anchor.key),
|
|
214
|
+
});
|
|
216
215
|
}
|
|
217
216
|
|
|
218
217
|
protected async visitAlias(alias: Yaml.Alias, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
218
|
+
return updateIfChanged(alias, {
|
|
219
|
+
anchor: await q.receive(alias.anchor,
|
|
220
|
+
async a => await this.visit(a, q) as Yaml.Anchor),
|
|
221
|
+
});
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
protected async visitTag(tag: Yaml.Tag, q: RpcReceiveQueue): Promise<Yaml | undefined> {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
225
|
+
return updateIfChanged(tag, {
|
|
226
|
+
name: await q.receive(tag.name),
|
|
227
|
+
suffix: await q.receive(tag.suffix),
|
|
228
|
+
tagKind: await q.receive(tag.tagKind),
|
|
229
|
+
});
|
|
231
230
|
}
|
|
232
231
|
}
|
|
233
232
|
|