@openrewrite/rewrite 8.67.0-20251107-150956 → 8.67.0-20251107-160330
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/javascript/templating/placeholder-replacement.d.ts +24 -4
- package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +133 -97
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/templating/template.d.ts +12 -1
- package/dist/javascript/templating/template.d.ts.map +1 -1
- package/dist/javascript/templating/template.js +12 -1
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +4 -1
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/javascript/templating/placeholder-replacement.ts +132 -97
- package/src/javascript/templating/template.ts +12 -1
- package/src/javascript/templating/types.ts +4 -1
|
@@ -11,6 +11,30 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
|
|
|
11
11
|
private readonly values;
|
|
12
12
|
private readonly wrappersMap;
|
|
13
13
|
constructor(substitutions: Map<string, Parameter>, values?: Pick<Map<string, J | J[]>, 'get'>, wrappersMap?: Pick<Map<string, J.RightPadded<J> | J.RightPadded<J>[]>, 'get'>);
|
|
14
|
+
visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* Override visitContainer to handle variadic expansion for containers.
|
|
17
|
+
* This handles J.Container instances anywhere in the AST (method arguments, etc.).
|
|
18
|
+
*/
|
|
19
|
+
visitContainer<T extends J>(container: J.Container<T>, p: any): Promise<J.Container<T>>;
|
|
20
|
+
/**
|
|
21
|
+
* Override visitRightPadded to handle single placeholder replacements.
|
|
22
|
+
* The base implementation will visit the element, which triggers our visit() override
|
|
23
|
+
* for placeholder detection and replacement.
|
|
24
|
+
*/
|
|
25
|
+
visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: any): Promise<J.RightPadded<T>>;
|
|
26
|
+
/**
|
|
27
|
+
* Override visitBlock to handle variadic expansion in block statements.
|
|
28
|
+
* Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
29
|
+
* array-level access for variadic expansion.
|
|
30
|
+
*/
|
|
31
|
+
visitBlock(block: J.Block, p: any): Promise<J | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
|
|
34
|
+
* CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
35
|
+
* array-level access for variadic expansion.
|
|
36
|
+
*/
|
|
37
|
+
visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined>;
|
|
14
38
|
/**
|
|
15
39
|
* Merges prefixes by preserving comments from the source element
|
|
16
40
|
* while using whitespace from the template placeholder.
|
|
@@ -29,10 +53,6 @@ export declare class PlaceholderReplacementVisitor extends JavaScriptVisitor<any
|
|
|
29
53
|
* @returns Promise of new list with placeholders expanded
|
|
30
54
|
*/
|
|
31
55
|
private expandVariadicElements;
|
|
32
|
-
visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined>;
|
|
33
|
-
visitMethodInvocation(method: J.MethodInvocation, p: any): Promise<J | undefined>;
|
|
34
|
-
visitBlock(block: J.Block, p: any): Promise<J | undefined>;
|
|
35
|
-
visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined>;
|
|
36
56
|
/**
|
|
37
57
|
* Checks if a node is a placeholder.
|
|
38
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAS,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,iBAAiB,CAAC,GAAG,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,MAAM,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa,EACrD,WAAW,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa;
|
|
1
|
+
{"version":3,"file":"placeholder-replacement.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAS,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,iBAAiB,CAAC,GAAG,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,MAAM,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa,EACrD,WAAW,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAa;IAKvG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAalF;;;OAGG;IACY,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAgBtG;;;;OAIG;IACY,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlH;;;;OAIG;IACY,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA8BzE;;;;OAIG;IACY,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAc1G;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;;;OAOG;YACW,sBAAsB;IA4IpC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAyG1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAS7B"}
|
|
@@ -42,6 +42,111 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
42
42
|
this.values = values;
|
|
43
43
|
this.wrappersMap = wrappersMap;
|
|
44
44
|
}
|
|
45
|
+
visit(tree, p, parent) {
|
|
46
|
+
const _super = Object.create(null, {
|
|
47
|
+
visit: { get: () => super.visit }
|
|
48
|
+
});
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
// Check if this node is a placeholder
|
|
51
|
+
if (this.isPlaceholder(tree)) {
|
|
52
|
+
const replacement = this.replacePlaceholder(tree);
|
|
53
|
+
if (replacement !== tree) {
|
|
54
|
+
return replacement;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Continue with normal traversal
|
|
58
|
+
return _super.visit.call(this, tree, p, parent);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Override visitContainer to handle variadic expansion for containers.
|
|
63
|
+
* This handles J.Container instances anywhere in the AST (method arguments, etc.).
|
|
64
|
+
*/
|
|
65
|
+
visitContainer(container, p) {
|
|
66
|
+
const _super = Object.create(null, {
|
|
67
|
+
visitContainer: { get: () => super.visitContainer }
|
|
68
|
+
});
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
// Check if any elements are placeholders (possibly variadic)
|
|
71
|
+
const hasPlaceholder = container.elements.some(elem => this.isPlaceholder(elem.element));
|
|
72
|
+
if (!hasPlaceholder) {
|
|
73
|
+
return _super.visitContainer.call(this, container, p);
|
|
74
|
+
}
|
|
75
|
+
// Expand variadic placeholders in the container's elements
|
|
76
|
+
const newElements = yield this.expandVariadicElements(container.elements, undefined, p);
|
|
77
|
+
return (0, immer_1.produce)(container, draft => {
|
|
78
|
+
draft.elements = newElements;
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Override visitRightPadded to handle single placeholder replacements.
|
|
84
|
+
* The base implementation will visit the element, which triggers our visit() override
|
|
85
|
+
* for placeholder detection and replacement.
|
|
86
|
+
*/
|
|
87
|
+
visitRightPadded(right, p) {
|
|
88
|
+
const _super = Object.create(null, {
|
|
89
|
+
visitRightPadded: { get: () => super.visitRightPadded }
|
|
90
|
+
});
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
return _super.visitRightPadded.call(this, right, p);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Override visitBlock to handle variadic expansion in block statements.
|
|
97
|
+
* Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
98
|
+
* array-level access for variadic expansion.
|
|
99
|
+
*/
|
|
100
|
+
visitBlock(block, p) {
|
|
101
|
+
const _super = Object.create(null, {
|
|
102
|
+
visitBlock: { get: () => super.visitBlock }
|
|
103
|
+
});
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
const hasPlaceholder = block.statements.some(stmt => {
|
|
106
|
+
const stmtElement = stmt.element;
|
|
107
|
+
// Check if it's an ExpressionStatement containing a placeholder
|
|
108
|
+
if (stmtElement.kind === __2.JS.Kind.ExpressionStatement) {
|
|
109
|
+
const exprStmt = stmtElement;
|
|
110
|
+
return this.isPlaceholder(exprStmt.expression);
|
|
111
|
+
}
|
|
112
|
+
return this.isPlaceholder(stmtElement);
|
|
113
|
+
});
|
|
114
|
+
if (!hasPlaceholder) {
|
|
115
|
+
return _super.visitBlock.call(this, block, p);
|
|
116
|
+
}
|
|
117
|
+
// Unwrap function to extract placeholder from ExpressionStatement
|
|
118
|
+
const unwrapStatement = (element) => {
|
|
119
|
+
if (element.kind === __2.JS.Kind.ExpressionStatement) {
|
|
120
|
+
return element.expression;
|
|
121
|
+
}
|
|
122
|
+
return element;
|
|
123
|
+
};
|
|
124
|
+
const newStatements = yield this.expandVariadicElements(block.statements, unwrapStatement, p);
|
|
125
|
+
return (0, immer_1.produce)(block, draft => {
|
|
126
|
+
draft.statements = newStatements;
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
|
|
132
|
+
* CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
133
|
+
* array-level access for variadic expansion.
|
|
134
|
+
*/
|
|
135
|
+
visitJsCompilationUnit(compilationUnit, p) {
|
|
136
|
+
const _super = Object.create(null, {
|
|
137
|
+
visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
|
|
138
|
+
});
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
|
|
141
|
+
if (!hasPlaceholder) {
|
|
142
|
+
return _super.visitJsCompilationUnit.call(this, compilationUnit, p);
|
|
143
|
+
}
|
|
144
|
+
const newStatements = yield this.expandVariadicElements(compilationUnit.statements, undefined, p);
|
|
145
|
+
return (0, immer_1.produce)(compilationUnit, draft => {
|
|
146
|
+
draft.statements = newStatements;
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
45
150
|
/**
|
|
46
151
|
* Merges prefixes by preserving comments from the source element
|
|
47
152
|
* while using whitespace from the template placeholder.
|
|
@@ -83,8 +188,15 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
83
188
|
const param = this.substitutions.get(placeholderText);
|
|
84
189
|
if (param) {
|
|
85
190
|
let arrayToExpand = undefined;
|
|
191
|
+
// Check if it's a J.Container
|
|
192
|
+
const isContainer = param.value && typeof param.value === 'object' &&
|
|
193
|
+
param.value.kind === java_1.J.Kind.Container;
|
|
194
|
+
if (isContainer) {
|
|
195
|
+
// Extract elements from J.Container
|
|
196
|
+
arrayToExpand = param.value.elements;
|
|
197
|
+
}
|
|
86
198
|
// Check if it's a direct Tree[] array
|
|
87
|
-
if (Array.isArray(param.value)) {
|
|
199
|
+
else if (Array.isArray(param.value)) {
|
|
88
200
|
arrayToExpand = param.value;
|
|
89
201
|
}
|
|
90
202
|
// Check if it's a CaptureValue
|
|
@@ -192,102 +304,6 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
192
304
|
return newElements;
|
|
193
305
|
});
|
|
194
306
|
}
|
|
195
|
-
visit(tree, p, parent) {
|
|
196
|
-
const _super = Object.create(null, {
|
|
197
|
-
visit: { get: () => super.visit }
|
|
198
|
-
});
|
|
199
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
// Check if this node is a placeholder
|
|
201
|
-
if (this.isPlaceholder(tree)) {
|
|
202
|
-
const replacement = this.replacePlaceholder(tree);
|
|
203
|
-
if (replacement !== tree) {
|
|
204
|
-
return replacement;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
// Continue with normal traversal
|
|
208
|
-
return _super.visit.call(this, tree, p, parent);
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
visitMethodInvocation(method, p) {
|
|
212
|
-
const _super = Object.create(null, {
|
|
213
|
-
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
214
|
-
});
|
|
215
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
216
|
-
// Check if any arguments are placeholders (possibly variadic)
|
|
217
|
-
const hasPlaceholderInArgs = method.arguments.elements.some(arg => this.isPlaceholder(arg.element));
|
|
218
|
-
// Check if the select (the object being called on) is a placeholder
|
|
219
|
-
const hasPlaceholderInSelect = method.select && this.isPlaceholder(method.select.element);
|
|
220
|
-
if (!hasPlaceholderInArgs && !hasPlaceholderInSelect) {
|
|
221
|
-
return _super.visitMethodInvocation.call(this, method, p);
|
|
222
|
-
}
|
|
223
|
-
let newArguments = method.arguments.elements;
|
|
224
|
-
if (hasPlaceholderInArgs) {
|
|
225
|
-
newArguments = yield this.expandVariadicElements(method.arguments.elements, undefined, p);
|
|
226
|
-
}
|
|
227
|
-
let newSelect = method.select;
|
|
228
|
-
if (hasPlaceholderInSelect && method.select) {
|
|
229
|
-
const visitedSelect = yield this.visit(method.select.element, p);
|
|
230
|
-
if (visitedSelect) {
|
|
231
|
-
newSelect = (0, immer_1.produce)(method.select, draft => {
|
|
232
|
-
draft.element = visitedSelect;
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
return (0, immer_1.produce)(method, draft => {
|
|
237
|
-
draft.arguments.elements = newArguments;
|
|
238
|
-
if (newSelect !== method.select) {
|
|
239
|
-
draft.select = newSelect;
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
visitBlock(block, p) {
|
|
245
|
-
const _super = Object.create(null, {
|
|
246
|
-
visitBlock: { get: () => super.visitBlock }
|
|
247
|
-
});
|
|
248
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
249
|
-
// Check if any statements are placeholders (possibly variadic)
|
|
250
|
-
const hasPlaceholder = block.statements.some(stmt => {
|
|
251
|
-
const stmtElement = stmt.element;
|
|
252
|
-
// Check if it's an ExpressionStatement containing a placeholder
|
|
253
|
-
if (stmtElement.kind === __2.JS.Kind.ExpressionStatement) {
|
|
254
|
-
const exprStmt = stmtElement;
|
|
255
|
-
return this.isPlaceholder(exprStmt.expression);
|
|
256
|
-
}
|
|
257
|
-
return this.isPlaceholder(stmtElement);
|
|
258
|
-
});
|
|
259
|
-
if (!hasPlaceholder) {
|
|
260
|
-
return _super.visitBlock.call(this, block, p);
|
|
261
|
-
}
|
|
262
|
-
// Unwrap function to extract placeholder from ExpressionStatement
|
|
263
|
-
const unwrapStatement = (element) => {
|
|
264
|
-
if (element.kind === __2.JS.Kind.ExpressionStatement) {
|
|
265
|
-
return element.expression;
|
|
266
|
-
}
|
|
267
|
-
return element;
|
|
268
|
-
};
|
|
269
|
-
const newStatements = yield this.expandVariadicElements(block.statements, unwrapStatement, p);
|
|
270
|
-
return (0, immer_1.produce)(block, draft => {
|
|
271
|
-
draft.statements = newStatements;
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
visitJsCompilationUnit(compilationUnit, p) {
|
|
276
|
-
const _super = Object.create(null, {
|
|
277
|
-
visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
|
|
278
|
-
});
|
|
279
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
280
|
-
// Check if any statements are placeholders (possibly variadic)
|
|
281
|
-
const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
|
|
282
|
-
if (!hasPlaceholder) {
|
|
283
|
-
return _super.visitJsCompilationUnit.call(this, compilationUnit, p);
|
|
284
|
-
}
|
|
285
|
-
const newStatements = yield this.expandVariadicElements(compilationUnit.statements, undefined, p);
|
|
286
|
-
return (0, immer_1.produce)(compilationUnit, draft => {
|
|
287
|
-
draft.statements = newStatements;
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
307
|
/**
|
|
292
308
|
* Checks if a node is a placeholder.
|
|
293
309
|
*
|
|
@@ -371,6 +387,26 @@ class PlaceholderReplacementVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
371
387
|
// If no match found, return placeholder unchanged
|
|
372
388
|
return placeholder;
|
|
373
389
|
}
|
|
390
|
+
// Check if the parameter value is a J.RightPadded wrapper
|
|
391
|
+
const isRightPadded = param.value && typeof param.value === 'object' &&
|
|
392
|
+
param.value.kind === java_1.J.Kind.RightPadded && (0, __1.isTree)(param.value.element);
|
|
393
|
+
if (isRightPadded) {
|
|
394
|
+
// Extract the element from the J.RightPadded wrapper
|
|
395
|
+
const element = param.value.element;
|
|
396
|
+
return (0, immer_1.produce)(element, draft => {
|
|
397
|
+
draft.markers = placeholder.markers;
|
|
398
|
+
draft.prefix = this.mergePrefix(element.prefix, placeholder.prefix);
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
// Check if the parameter value is a J.Container
|
|
402
|
+
const isContainer = param.value && typeof param.value === 'object' &&
|
|
403
|
+
param.value.kind === java_1.J.Kind.Container;
|
|
404
|
+
if (isContainer) {
|
|
405
|
+
// J.Container should be handled by expandVariadicElements
|
|
406
|
+
// For now, return placeholder - the expansion will happen at a higher level
|
|
407
|
+
// This should not happen in normal usage, as containers are typically used in argument positions
|
|
408
|
+
return placeholder;
|
|
409
|
+
}
|
|
374
410
|
// If the parameter value is an AST node, use it directly
|
|
375
411
|
if ((0, __1.isTree)(param.value)) {
|
|
376
412
|
// Return the AST node, preserving comments from the source
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder-replacement.js","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"placeholder-replacement.js","sourceRoot":"","sources":["../../../src/javascript/templating/placeholder-replacement.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,8 +176,13 @@ export declare class Template {
|
|
|
176
176
|
* to navigate properties (e.g., `method.name`) or array bracket notation to
|
|
177
177
|
* access array elements (e.g., `args.elements[0].element`).
|
|
178
178
|
*
|
|
179
|
+
* Templates can also accept AST wrapper types directly:
|
|
180
|
+
* - J.RightPadded<T>: The element will be extracted and inserted
|
|
181
|
+
* - J.RightPadded<T>[]: Elements will be expanded in place
|
|
182
|
+
* - J.Container<T>: Elements will be expanded in place
|
|
183
|
+
*
|
|
179
184
|
* @param strings The string parts of the template
|
|
180
|
-
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree,
|
|
185
|
+
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
|
|
181
186
|
* @returns A Template object that can be applied to generate AST nodes
|
|
182
187
|
*
|
|
183
188
|
* @example
|
|
@@ -212,6 +217,12 @@ export declare class Template {
|
|
|
212
217
|
* // Array element access
|
|
213
218
|
* const invocation = capture<J.MethodInvocation>('invocation');
|
|
214
219
|
* template`bar(${invocation.arguments.elements[0].element})`
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* // Using J.RightPadded and J.Container directly
|
|
223
|
+
* const selectExpr = method.select; // J.RightPadded<Expression>
|
|
224
|
+
* const args = method.arguments; // J.Container<Expression>
|
|
225
|
+
* template`${selectExpr}.newMethod(${args})`
|
|
215
226
|
*/
|
|
216
227
|
export declare function template(strings: TemplateStringsArray, ...parameters: TemplateParameter[]): Template;
|
|
217
228
|
export type { JavaCoordinates };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAK/E,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB;;GAEG;AACH,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,kBAAU,eAAe,CAAC;IAEtB,KAAY,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAE9E,KAAY,IAAI;QACZ,MAAM,IAAA;QACN,KAAK,IAAA;QACL,OAAO,IAAA;KACV;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAcvB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAWrC;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAiBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,QAAQ;IA4Bb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IA5B/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAI;IAE5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,eAAe;IAIjC;;;;;OAKG;gBAEkB,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,SAAS,EAAE;IAI5C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ;IAO7C;;;;;;;;;;;OAWG;IACG,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC;IAuCpD;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAoDpJ;AAED
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAK/E,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB;;GAEG;AACH,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,kBAAU,eAAe,CAAC;IAEtB,KAAY,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAE9E,KAAY,IAAI;QACZ,MAAM,IAAA;QACN,KAAK,IAAA;QACL,OAAO,IAAA;KACV;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAcvB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAWrC;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAiBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,QAAQ;IA4Bb,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IA5B/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAI;IAE5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,IAAI,eAAe;IAIjC;;;;;OAKG;gBAEkB,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,SAAS,EAAE;IAI5C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ;IAO7C;;;;;;;;;;;OAWG;IACG,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC;IAuCpD;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAoDpJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAQpG;AAED,YAAY,EAAC,eAAe,EAAC,CAAC"}
|
|
@@ -299,8 +299,13 @@ exports.Template = Template;
|
|
|
299
299
|
* to navigate properties (e.g., `method.name`) or array bracket notation to
|
|
300
300
|
* access array elements (e.g., `args.elements[0].element`).
|
|
301
301
|
*
|
|
302
|
+
* Templates can also accept AST wrapper types directly:
|
|
303
|
+
* - J.RightPadded<T>: The element will be extracted and inserted
|
|
304
|
+
* - J.RightPadded<T>[]: Elements will be expanded in place
|
|
305
|
+
* - J.Container<T>: Elements will be expanded in place
|
|
306
|
+
*
|
|
302
307
|
* @param strings The string parts of the template
|
|
303
|
-
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree,
|
|
308
|
+
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
|
|
304
309
|
* @returns A Template object that can be applied to generate AST nodes
|
|
305
310
|
*
|
|
306
311
|
* @example
|
|
@@ -335,6 +340,12 @@ exports.Template = Template;
|
|
|
335
340
|
* // Array element access
|
|
336
341
|
* const invocation = capture<J.MethodInvocation>('invocation');
|
|
337
342
|
* template`bar(${invocation.arguments.elements[0].element})`
|
|
343
|
+
*
|
|
344
|
+
* @example
|
|
345
|
+
* // Using J.RightPadded and J.Container directly
|
|
346
|
+
* const selectExpr = method.select; // J.RightPadded<Expression>
|
|
347
|
+
* const args = method.arguments; // J.Container<Expression>
|
|
348
|
+
* template`${selectExpr}.newMethod(${args})`
|
|
338
349
|
*/
|
|
339
350
|
function template(strings, ...parameters) {
|
|
340
351
|
// Convert parameters to Parameter objects (no longer need to check for mutable tree property)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/javascript/templating/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -245,11 +245,14 @@ export interface PatternOptions {
|
|
|
245
245
|
* - TemplateParam: For standalone template parameters
|
|
246
246
|
* - Tree: AST nodes to be inserted directly
|
|
247
247
|
* - Tree[]: Arrays of AST nodes (from variadic capture operations like slice)
|
|
248
|
+
* - J.RightPadded<any>: Wrapper containing an element with markers (element will be extracted)
|
|
249
|
+
* - J.RightPadded<any>[]: Array of wrappers (elements will be expanded)
|
|
250
|
+
* - J.Container<any>: Container with elements (elements will be expanded)
|
|
248
251
|
*
|
|
249
252
|
* Note: Primitive values (string, number, boolean) are NOT supported in template literals.
|
|
250
253
|
* Use Template.builder() API if you need to insert literal values.
|
|
251
254
|
*/
|
|
252
|
-
export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[]
|
|
255
|
+
export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[] | J.RightPadded<any> | J.RightPadded<any>[] | J.Container<any>;
|
|
253
256
|
/**
|
|
254
257
|
* Parameter specification for template generation (internal).
|
|
255
258
|
* Represents a placeholder in a template that will be replaced with a parameter value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/types.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAE,IAAI,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,GAAG;IAC5B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;;OAKG;IACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,GAAG;IACxB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.67.0-20251107-
|
|
1
|
+
8.67.0-20251107-160330
|
package/package.json
CHANGED
|
@@ -34,6 +34,102 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
34
34
|
super();
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
async visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined> {
|
|
38
|
+
// Check if this node is a placeholder
|
|
39
|
+
if (this.isPlaceholder(tree)) {
|
|
40
|
+
const replacement = this.replacePlaceholder(tree);
|
|
41
|
+
if (replacement !== tree) {
|
|
42
|
+
return replacement as R;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Continue with normal traversal
|
|
47
|
+
return super.visit(tree, p, parent);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Override visitContainer to handle variadic expansion for containers.
|
|
52
|
+
* This handles J.Container instances anywhere in the AST (method arguments, etc.).
|
|
53
|
+
*/
|
|
54
|
+
override async visitContainer<T extends J>(container: J.Container<T>, p: any): Promise<J.Container<T>> {
|
|
55
|
+
// Check if any elements are placeholders (possibly variadic)
|
|
56
|
+
const hasPlaceholder = container.elements.some(elem => this.isPlaceholder(elem.element));
|
|
57
|
+
|
|
58
|
+
if (!hasPlaceholder) {
|
|
59
|
+
return super.visitContainer(container, p);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Expand variadic placeholders in the container's elements
|
|
63
|
+
const newElements = await this.expandVariadicElements(container.elements, undefined, p);
|
|
64
|
+
|
|
65
|
+
return produce(container, draft => {
|
|
66
|
+
draft.elements = newElements as any;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Override visitRightPadded to handle single placeholder replacements.
|
|
72
|
+
* The base implementation will visit the element, which triggers our visit() override
|
|
73
|
+
* for placeholder detection and replacement.
|
|
74
|
+
*/
|
|
75
|
+
override async visitRightPadded<T extends J | boolean>(right: J.RightPadded<T>, p: any): Promise<J.RightPadded<T>> {
|
|
76
|
+
return super.visitRightPadded(right, p);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Override visitBlock to handle variadic expansion in block statements.
|
|
81
|
+
* Block.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
82
|
+
* array-level access for variadic expansion.
|
|
83
|
+
*/
|
|
84
|
+
override async visitBlock(block: J.Block, p: any): Promise<J | undefined> {
|
|
85
|
+
const hasPlaceholder = block.statements.some(stmt => {
|
|
86
|
+
const stmtElement = stmt.element;
|
|
87
|
+
// Check if it's an ExpressionStatement containing a placeholder
|
|
88
|
+
if (stmtElement.kind === JS.Kind.ExpressionStatement) {
|
|
89
|
+
const exprStmt = stmtElement as JS.ExpressionStatement;
|
|
90
|
+
return this.isPlaceholder(exprStmt.expression);
|
|
91
|
+
}
|
|
92
|
+
return this.isPlaceholder(stmtElement);
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
if (!hasPlaceholder) {
|
|
96
|
+
return super.visitBlock(block, p);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Unwrap function to extract placeholder from ExpressionStatement
|
|
100
|
+
const unwrapStatement = (element: J): J => {
|
|
101
|
+
if (element.kind === JS.Kind.ExpressionStatement) {
|
|
102
|
+
return (element as JS.ExpressionStatement).expression;
|
|
103
|
+
}
|
|
104
|
+
return element;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const newStatements = await this.expandVariadicElements(block.statements, unwrapStatement, p);
|
|
108
|
+
|
|
109
|
+
return produce(block, draft => {
|
|
110
|
+
draft.statements = newStatements;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Override visitJsCompilationUnit to handle variadic expansion in top-level statements.
|
|
116
|
+
* CompilationUnit.statements is J.RightPadded<Statement>[] (not a Container), so we need
|
|
117
|
+
* array-level access for variadic expansion.
|
|
118
|
+
*/
|
|
119
|
+
override async visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined> {
|
|
120
|
+
const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
|
|
121
|
+
|
|
122
|
+
if (!hasPlaceholder) {
|
|
123
|
+
return super.visitJsCompilationUnit(compilationUnit, p);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const newStatements = await this.expandVariadicElements(compilationUnit.statements, undefined, p);
|
|
127
|
+
|
|
128
|
+
return produce(compilationUnit, draft => {
|
|
129
|
+
draft.statements = newStatements;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
37
133
|
/**
|
|
38
134
|
* Merges prefixes by preserving comments from the source element
|
|
39
135
|
* while using whitespace from the template placeholder.
|
|
@@ -83,8 +179,15 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
83
179
|
if (param) {
|
|
84
180
|
let arrayToExpand: J[] | J.RightPadded<J>[] | undefined = undefined;
|
|
85
181
|
|
|
182
|
+
// Check if it's a J.Container
|
|
183
|
+
const isContainer = param.value && typeof param.value === 'object' &&
|
|
184
|
+
param.value.kind === J.Kind.Container;
|
|
185
|
+
if (isContainer) {
|
|
186
|
+
// Extract elements from J.Container
|
|
187
|
+
arrayToExpand = param.value.elements as J.RightPadded<J>[];
|
|
188
|
+
}
|
|
86
189
|
// Check if it's a direct Tree[] array
|
|
87
|
-
if (Array.isArray(param.value)) {
|
|
190
|
+
else if (Array.isArray(param.value)) {
|
|
88
191
|
arrayToExpand = param.value as J[];
|
|
89
192
|
}
|
|
90
193
|
// Check if it's a CaptureValue
|
|
@@ -97,7 +200,7 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
97
200
|
// Check if it's a direct variadic capture
|
|
98
201
|
else {
|
|
99
202
|
const isCapture = param.value instanceof CaptureImpl ||
|
|
100
|
-
|
|
203
|
+
(param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
|
|
101
204
|
if (isCapture) {
|
|
102
205
|
const name = param.value[CAPTURE_NAME_SYMBOL] || param.value.name;
|
|
103
206
|
const capture = Array.from(this.substitutions.values())
|
|
@@ -176,7 +279,7 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
176
279
|
const param = this.substitutions.get(placeholderText);
|
|
177
280
|
if (param) {
|
|
178
281
|
const isCapture = param.value instanceof CaptureImpl ||
|
|
179
|
-
|
|
282
|
+
(param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
|
|
180
283
|
if (isCapture) {
|
|
181
284
|
const name = param.value[CAPTURE_NAME_SYMBOL] || param.value.name;
|
|
182
285
|
const wrapper = this.wrappersMap.get(name);
|
|
@@ -197,98 +300,6 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
197
300
|
return newElements;
|
|
198
301
|
}
|
|
199
302
|
|
|
200
|
-
async visit<R extends J>(tree: J, p: any, parent?: Cursor): Promise<R | undefined> {
|
|
201
|
-
// Check if this node is a placeholder
|
|
202
|
-
if (this.isPlaceholder(tree)) {
|
|
203
|
-
const replacement = this.replacePlaceholder(tree);
|
|
204
|
-
if (replacement !== tree) {
|
|
205
|
-
return replacement as R;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Continue with normal traversal
|
|
210
|
-
return super.visit(tree, p, parent);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
override async visitMethodInvocation(method: J.MethodInvocation, p: any): Promise<J | undefined> {
|
|
214
|
-
// Check if any arguments are placeholders (possibly variadic)
|
|
215
|
-
const hasPlaceholderInArgs = method.arguments.elements.some(arg => this.isPlaceholder(arg.element));
|
|
216
|
-
// Check if the select (the object being called on) is a placeholder
|
|
217
|
-
const hasPlaceholderInSelect = method.select && this.isPlaceholder(method.select.element);
|
|
218
|
-
|
|
219
|
-
if (!hasPlaceholderInArgs && !hasPlaceholderInSelect) {
|
|
220
|
-
return super.visitMethodInvocation(method, p);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
let newArguments = method.arguments.elements;
|
|
224
|
-
if (hasPlaceholderInArgs) {
|
|
225
|
-
newArguments = await this.expandVariadicElements(method.arguments.elements, undefined, p);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
let newSelect = method.select;
|
|
229
|
-
if (hasPlaceholderInSelect && method.select) {
|
|
230
|
-
const visitedSelect = await this.visit(method.select.element, p);
|
|
231
|
-
if (visitedSelect) {
|
|
232
|
-
newSelect = produce(method.select, draft => {
|
|
233
|
-
draft.element = visitedSelect;
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
return produce(method, draft => {
|
|
239
|
-
draft.arguments.elements = newArguments;
|
|
240
|
-
if (newSelect !== method.select) {
|
|
241
|
-
draft.select = newSelect;
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
override async visitBlock(block: J.Block, p: any): Promise<J | undefined> {
|
|
247
|
-
// Check if any statements are placeholders (possibly variadic)
|
|
248
|
-
const hasPlaceholder = block.statements.some(stmt => {
|
|
249
|
-
const stmtElement = stmt.element;
|
|
250
|
-
// Check if it's an ExpressionStatement containing a placeholder
|
|
251
|
-
if (stmtElement.kind === JS.Kind.ExpressionStatement) {
|
|
252
|
-
const exprStmt = stmtElement as JS.ExpressionStatement;
|
|
253
|
-
return this.isPlaceholder(exprStmt.expression);
|
|
254
|
-
}
|
|
255
|
-
return this.isPlaceholder(stmtElement);
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
if (!hasPlaceholder) {
|
|
259
|
-
return super.visitBlock(block, p);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Unwrap function to extract placeholder from ExpressionStatement
|
|
263
|
-
const unwrapStatement = (element: J): J => {
|
|
264
|
-
if (element.kind === JS.Kind.ExpressionStatement) {
|
|
265
|
-
return (element as JS.ExpressionStatement).expression;
|
|
266
|
-
}
|
|
267
|
-
return element;
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
const newStatements = await this.expandVariadicElements(block.statements, unwrapStatement, p);
|
|
271
|
-
|
|
272
|
-
return produce(block, draft => {
|
|
273
|
-
draft.statements = newStatements;
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
override async visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: any): Promise<J | undefined> {
|
|
278
|
-
// Check if any statements are placeholders (possibly variadic)
|
|
279
|
-
const hasPlaceholder = compilationUnit.statements.some(stmt => this.isPlaceholder(stmt.element));
|
|
280
|
-
|
|
281
|
-
if (!hasPlaceholder) {
|
|
282
|
-
return super.visitJsCompilationUnit(compilationUnit, p);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
const newStatements = await this.expandVariadicElements(compilationUnit.statements, undefined, p);
|
|
286
|
-
|
|
287
|
-
return produce(compilationUnit, draft => {
|
|
288
|
-
draft.statements = newStatements;
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
|
|
292
303
|
/**
|
|
293
304
|
* Checks if a node is a placeholder.
|
|
294
305
|
*
|
|
@@ -362,13 +373,13 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
362
373
|
|
|
363
374
|
// Check if the parameter value is a Capture (could be a Proxy) or TemplateParam
|
|
364
375
|
const isCapture = param.value instanceof CaptureImpl ||
|
|
365
|
-
|
|
376
|
+
(param.value && typeof param.value === 'object' && param.value[CAPTURE_NAME_SYMBOL]);
|
|
366
377
|
const isTemplateParam = param.value instanceof TemplateParamImpl;
|
|
367
378
|
|
|
368
379
|
if (isCapture || isTemplateParam) {
|
|
369
380
|
// Simple capture/template param (no property path for template params)
|
|
370
381
|
const name = isTemplateParam ? param.value.name :
|
|
371
|
-
|
|
382
|
+
(param.value[CAPTURE_NAME_SYMBOL] || param.value.name);
|
|
372
383
|
const matchedNode = this.values.get(name);
|
|
373
384
|
if (matchedNode && !Array.isArray(matchedNode)) {
|
|
374
385
|
return produce(matchedNode, draft => {
|
|
@@ -381,6 +392,30 @@ export class PlaceholderReplacementVisitor extends JavaScriptVisitor<any> {
|
|
|
381
392
|
return placeholder;
|
|
382
393
|
}
|
|
383
394
|
|
|
395
|
+
// Check if the parameter value is a J.RightPadded wrapper
|
|
396
|
+
const isRightPadded = param.value && typeof param.value === 'object' &&
|
|
397
|
+
param.value.kind === J.Kind.RightPadded && isTree(param.value.element);
|
|
398
|
+
|
|
399
|
+
if (isRightPadded) {
|
|
400
|
+
// Extract the element from the J.RightPadded wrapper
|
|
401
|
+
const element = param.value.element as J;
|
|
402
|
+
return produce(element, draft => {
|
|
403
|
+
draft.markers = placeholder.markers;
|
|
404
|
+
draft.prefix = this.mergePrefix(element.prefix, placeholder.prefix);
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Check if the parameter value is a J.Container
|
|
409
|
+
const isContainer = param.value && typeof param.value === 'object' &&
|
|
410
|
+
param.value.kind === J.Kind.Container;
|
|
411
|
+
|
|
412
|
+
if (isContainer) {
|
|
413
|
+
// J.Container should be handled by expandVariadicElements
|
|
414
|
+
// For now, return placeholder - the expansion will happen at a higher level
|
|
415
|
+
// This should not happen in normal usage, as containers are typically used in argument positions
|
|
416
|
+
return placeholder;
|
|
417
|
+
}
|
|
418
|
+
|
|
384
419
|
// If the parameter value is an AST node, use it directly
|
|
385
420
|
if (isTree(param.value)) {
|
|
386
421
|
// Return the AST node, preserving comments from the source
|
|
@@ -344,8 +344,13 @@ export class Template {
|
|
|
344
344
|
* to navigate properties (e.g., `method.name`) or array bracket notation to
|
|
345
345
|
* access array elements (e.g., `args.elements[0].element`).
|
|
346
346
|
*
|
|
347
|
+
* Templates can also accept AST wrapper types directly:
|
|
348
|
+
* - J.RightPadded<T>: The element will be extracted and inserted
|
|
349
|
+
* - J.RightPadded<T>[]: Elements will be expanded in place
|
|
350
|
+
* - J.Container<T>: Elements will be expanded in place
|
|
351
|
+
*
|
|
347
352
|
* @param strings The string parts of the template
|
|
348
|
-
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree,
|
|
353
|
+
* @param parameters The parameters between the string parts (Capture, CaptureValue, TemplateParam, Tree, Tree[], J.RightPadded, J.RightPadded[], or J.Container)
|
|
349
354
|
* @returns A Template object that can be applied to generate AST nodes
|
|
350
355
|
*
|
|
351
356
|
* @example
|
|
@@ -380,6 +385,12 @@ export class Template {
|
|
|
380
385
|
* // Array element access
|
|
381
386
|
* const invocation = capture<J.MethodInvocation>('invocation');
|
|
382
387
|
* template`bar(${invocation.arguments.elements[0].element})`
|
|
388
|
+
*
|
|
389
|
+
* @example
|
|
390
|
+
* // Using J.RightPadded and J.Container directly
|
|
391
|
+
* const selectExpr = method.select; // J.RightPadded<Expression>
|
|
392
|
+
* const args = method.arguments; // J.Container<Expression>
|
|
393
|
+
* template`${selectExpr}.newMethod(${args})`
|
|
383
394
|
*/
|
|
384
395
|
export function template(strings: TemplateStringsArray, ...parameters: TemplateParameter[]): Template {
|
|
385
396
|
// Convert parameters to Parameter objects (no longer need to check for mutable tree property)
|
|
@@ -278,11 +278,14 @@ export interface PatternOptions {
|
|
|
278
278
|
* - TemplateParam: For standalone template parameters
|
|
279
279
|
* - Tree: AST nodes to be inserted directly
|
|
280
280
|
* - Tree[]: Arrays of AST nodes (from variadic capture operations like slice)
|
|
281
|
+
* - J.RightPadded<any>: Wrapper containing an element with markers (element will be extracted)
|
|
282
|
+
* - J.RightPadded<any>[]: Array of wrappers (elements will be expanded)
|
|
283
|
+
* - J.Container<any>: Container with elements (elements will be expanded)
|
|
281
284
|
*
|
|
282
285
|
* Note: Primitive values (string, number, boolean) are NOT supported in template literals.
|
|
283
286
|
* Use Template.builder() API if you need to insert literal values.
|
|
284
287
|
*/
|
|
285
|
-
export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[]
|
|
288
|
+
export type TemplateParameter = Capture | CaptureValue | TemplateParam | Tree | Tree[] | J.RightPadded<any> | J.RightPadded<any>[] | J.Container<any>;
|
|
286
289
|
|
|
287
290
|
/**
|
|
288
291
|
* Parameter specification for template generation (internal).
|