@openrewrite/rewrite 8.72.2 → 8.72.4
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/execution.js +3 -16
- package/dist/execution.js.map +1 -1
- package/dist/index.js +34 -49
- package/dist/index.js.map +1 -1
- package/dist/java/markers.js +12 -29
- package/dist/java/markers.js.map +1 -1
- package/dist/java/print.js +2 -13
- package/dist/java/print.js.map +1 -1
- package/dist/java/rpc.js +1344 -1725
- package/dist/java/rpc.js.map +1 -1
- package/dist/java/type-visitor.js +143 -184
- package/dist/java/type-visitor.js.map +1 -1
- package/dist/java/visitor.js +1072 -1249
- package/dist/java/visitor.js.map +1 -1
- package/dist/javascript/add-import.js +495 -534
- package/dist/javascript/add-import.js.map +1 -1
- package/dist/javascript/autodetect.js +116 -159
- package/dist/javascript/autodetect.js.map +1 -1
- package/dist/javascript/cleanup/add-parse-int-radix.js +41 -57
- package/dist/javascript/cleanup/add-parse-int-radix.js.map +1 -1
- package/dist/javascript/cleanup/prefer-optional-chain.js +89 -105
- package/dist/javascript/cleanup/prefer-optional-chain.js.map +1 -1
- package/dist/javascript/cleanup/use-object-property-shorthand.js +74 -95
- package/dist/javascript/cleanup/use-object-property-shorthand.js.map +1 -1
- package/dist/javascript/comparator.js +815 -1167
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/dependency-workspace.js +206 -219
- package/dist/javascript/dependency-workspace.js.map +1 -1
- package/dist/javascript/format/format.js +682 -908
- package/dist/javascript/format/format.js.map +1 -1
- package/dist/javascript/format/minimum-viable-spacing-visitor.js +152 -231
- package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
- package/dist/javascript/format/normalize-whitespace-visitor.js +12 -31
- package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -1
- package/dist/javascript/format/prettier-config-loader.js +134 -153
- package/dist/javascript/format/prettier-config-loader.js.map +1 -1
- package/dist/javascript/format/prettier-format.js +112 -129
- package/dist/javascript/format/prettier-format.js.map +1 -1
- package/dist/javascript/format/tabs-and-indents-visitor.js +112 -136
- package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -1
- package/dist/javascript/markers.js +59 -92
- package/dist/javascript/markers.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js +39 -52
- package/dist/javascript/migrate/es6/modernize-octal-escape-sequences.js.map +1 -1
- package/dist/javascript/migrate/es6/modernize-octal-literals.js +25 -38
- package/dist/javascript/migrate/es6/modernize-octal-literals.js.map +1 -1
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js +66 -82
- package/dist/javascript/migrate/es6/remove-duplicate-object-keys.js.map +1 -1
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js +10 -23
- package/dist/javascript/migrate/typescript/export-assignment-to-export-default.js.map +1 -1
- package/dist/javascript/node-resolution-result.js +137 -166
- package/dist/javascript/node-resolution-result.js.map +1 -1
- package/dist/javascript/package-json-parser.js +312 -343
- package/dist/javascript/package-json-parser.js.map +1 -1
- package/dist/javascript/package-manager.js +145 -170
- package/dist/javascript/package-manager.js.map +1 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +94 -68
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/print.js +1572 -1835
- package/dist/javascript/print.js.map +1 -1
- package/dist/javascript/project-parser.js +151 -172
- package/dist/javascript/project-parser.js.map +1 -1
- package/dist/javascript/recipes/add-dependency.js +140 -175
- package/dist/javascript/recipes/add-dependency.js.map +1 -1
- package/dist/javascript/recipes/async-callback-in-sync-array-method.js +20 -36
- package/dist/javascript/recipes/async-callback-in-sync-array-method.js.map +1 -1
- package/dist/javascript/recipes/auto-format.js +3 -14
- package/dist/javascript/recipes/auto-format.js.map +1 -1
- package/dist/javascript/recipes/change-import.js +447 -495
- package/dist/javascript/recipes/change-import.js.map +1 -1
- package/dist/javascript/recipes/order-imports.js +162 -175
- package/dist/javascript/recipes/order-imports.js.map +1 -1
- package/dist/javascript/recipes/upgrade-dependency-version.js +167 -197
- package/dist/javascript/recipes/upgrade-dependency-version.js.map +1 -1
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js +166 -193
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js.map +1 -1
- package/dist/javascript/remove-import.js +689 -724
- package/dist/javascript/remove-import.js.map +1 -1
- package/dist/javascript/rpc.js +1007 -1332
- package/dist/javascript/rpc.js.map +1 -1
- package/dist/javascript/search/find-dependency.js +84 -110
- package/dist/javascript/search/find-dependency.js.map +1 -1
- package/dist/javascript/search/uses-method.js +5 -19
- package/dist/javascript/search/uses-method.js.map +1 -1
- package/dist/javascript/search/uses-type.js +9 -20
- package/dist/javascript/search/uses-type.js.map +1 -1
- package/dist/javascript/templating/comparator.js +737 -822
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/engine.js +211 -245
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/pattern.js +169 -190
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +172 -210
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/templating/rewrite.js +75 -97
- package/dist/javascript/templating/rewrite.js.map +1 -1
- package/dist/javascript/templating/template.js +69 -82
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/tree-debug.js +109 -137
- package/dist/javascript/tree-debug.js.map +1 -1
- package/dist/javascript/visitor.js +1090 -1254
- package/dist/javascript/visitor.js.map +1 -1
- package/dist/json/print.js +72 -103
- package/dist/json/print.js.map +1 -1
- package/dist/json/rpc.js +120 -181
- package/dist/json/rpc.js.map +1 -1
- package/dist/json/visitor.js +69 -100
- package/dist/json/visitor.js.map +1 -1
- package/dist/marketplace.js +20 -33
- package/dist/marketplace.js.map +1 -1
- package/dist/parse-error.js +41 -62
- package/dist/parse-error.js.map +1 -1
- package/dist/parser.js +7 -18
- package/dist/parser.js.map +1 -1
- package/dist/path-utils.js +46 -59
- package/dist/path-utils.js.map +1 -1
- package/dist/preconditions.js +30 -47
- package/dist/preconditions.js.map +1 -1
- package/dist/print.js +6 -19
- package/dist/print.js.map +1 -1
- package/dist/recipe.js +42 -73
- package/dist/recipe.js.map +1 -1
- package/dist/rpc/index.js +74 -115
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/queue.js +71 -90
- package/dist/rpc/queue.js.map +1 -1
- package/dist/rpc/recipe.js +32 -57
- package/dist/rpc/recipe.js.map +1 -1
- package/dist/rpc/request/generate.js +4 -13
- package/dist/rpc/request/generate.js.map +1 -1
- package/dist/rpc/request/get-languages.js +2 -11
- package/dist/rpc/request/get-languages.js.map +1 -1
- package/dist/rpc/request/get-marketplace.js +9 -20
- package/dist/rpc/request/get-marketplace.js.map +1 -1
- package/dist/rpc/request/get-object.js +4 -13
- package/dist/rpc/request/get-object.js.map +1 -1
- package/dist/rpc/request/install-recipes.js +25 -36
- package/dist/rpc/request/install-recipes.js.map +1 -1
- package/dist/rpc/request/metrics.js +8 -17
- package/dist/rpc/request/metrics.js.map +1 -1
- package/dist/rpc/request/parse-project.js +36 -45
- package/dist/rpc/request/parse-project.js.map +1 -1
- package/dist/rpc/request/parse.js +5 -14
- package/dist/rpc/request/parse.js.map +1 -1
- package/dist/rpc/request/prepare-recipe.js +37 -52
- package/dist/rpc/request/prepare-recipe.js.map +1 -1
- package/dist/rpc/request/print.js +5 -14
- package/dist/rpc/request/print.js.map +1 -1
- package/dist/rpc/request/visit.js +56 -71
- package/dist/rpc/request/visit.js.map +1 -1
- package/dist/rpc/rewrite-rpc.js +70 -97
- package/dist/rpc/rewrite-rpc.js.map +1 -1
- package/dist/rpc/server.js +76 -89
- package/dist/rpc/server.js.map +1 -1
- package/dist/run.js +47 -66
- package/dist/run.js.map +1 -1
- package/dist/search/is-source-file.js +8 -19
- package/dist/search/is-source-file.js.map +1 -1
- package/dist/test/rewrite-test.js +154 -188
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/text/print.js +23 -38
- package/dist/text/print.js.map +1 -1
- package/dist/text/rpc.js +29 -44
- package/dist/text/rpc.js.map +1 -1
- package/dist/text/visitor.js +16 -33
- package/dist/text/visitor.js.map +1 -1
- package/dist/util.js +13 -24
- package/dist/util.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/visitor.js +84 -115
- package/dist/visitor.js.map +1 -1
- package/dist/yaml/index.d.ts +2 -0
- package/dist/yaml/index.d.ts.map +1 -1
- package/dist/yaml/index.js +2 -0
- package/dist/yaml/index.js.map +1 -1
- package/dist/yaml/markers.d.ts +21 -0
- package/dist/yaml/markers.d.ts.map +1 -0
- package/dist/yaml/markers.js +37 -0
- package/dist/yaml/markers.js.map +1 -0
- package/dist/yaml/parser.d.ts.map +1 -1
- package/dist/yaml/parser.js +4 -1
- package/dist/yaml/parser.js.map +1 -1
- package/dist/yaml/print.d.ts +1 -1
- package/dist/yaml/print.d.ts.map +1 -1
- package/dist/yaml/print.js +175 -208
- package/dist/yaml/print.js.map +1 -1
- package/dist/yaml/rpc.js +154 -219
- package/dist/yaml/rpc.js.map +1 -1
- package/dist/yaml/visitor.js +78 -113
- package/dist/yaml/visitor.js.map +1 -1
- package/package.json +1 -1
- package/src/javascript/parser.ts +56 -14
- package/src/yaml/index.ts +2 -0
- package/src/yaml/markers.ts +70 -0
- package/src/yaml/parser.ts +5 -1
- package/src/yaml/print.ts +5 -2
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.fromRecipe = void 0;
|
|
13
4
|
exports.rewrite = rewrite;
|
|
@@ -23,45 +14,43 @@ class RewriteRuleImpl {
|
|
|
23
14
|
this.preMatch = preMatch;
|
|
24
15
|
this.postMatch = postMatch;
|
|
25
16
|
}
|
|
26
|
-
tryOn(cursor, node) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return undefined; // Early exit - don't attempt pattern matching
|
|
33
|
-
}
|
|
17
|
+
async tryOn(cursor, node) {
|
|
18
|
+
// Evaluate preMatch before attempting any pattern matching
|
|
19
|
+
if (this.preMatch) {
|
|
20
|
+
const preMatchResult = await this.preMatch(node, { cursor });
|
|
21
|
+
if (!preMatchResult) {
|
|
22
|
+
return undefined; // Early exit - don't attempt pattern matching
|
|
34
23
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
// Apply transformation
|
|
47
|
-
let result;
|
|
48
|
-
if (typeof this.after === 'function') {
|
|
49
|
-
// Call the function to get a template, then apply it
|
|
50
|
-
const template = this.after(match);
|
|
51
|
-
result = yield template.apply(node, cursor, { values: match });
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
// Use template.apply() as before
|
|
55
|
-
result = yield this.after.apply(node, cursor, { values: match });
|
|
56
|
-
}
|
|
57
|
-
if (result) {
|
|
58
|
-
return result;
|
|
24
|
+
}
|
|
25
|
+
for (const pattern of this.before) {
|
|
26
|
+
// Pass cursor to pattern.match() for context-aware capture constraints
|
|
27
|
+
const match = await pattern.match(node, cursor);
|
|
28
|
+
if (match) {
|
|
29
|
+
// Evaluate postMatch after structural match succeeds
|
|
30
|
+
if (this.postMatch) {
|
|
31
|
+
const postMatchResult = await this.postMatch(node, { cursor, captures: match });
|
|
32
|
+
if (!postMatchResult) {
|
|
33
|
+
continue; // Pattern matched but postMatch failed, try next pattern
|
|
59
34
|
}
|
|
60
35
|
}
|
|
36
|
+
// Apply transformation
|
|
37
|
+
let result;
|
|
38
|
+
if (typeof this.after === 'function') {
|
|
39
|
+
// Call the function to get a template, then apply it
|
|
40
|
+
const template = this.after(match);
|
|
41
|
+
result = await template.apply(node, cursor, { values: match });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Use template.apply() as before
|
|
45
|
+
result = await this.after.apply(node, cursor, { values: match });
|
|
46
|
+
}
|
|
47
|
+
if (result) {
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
61
50
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
51
|
+
}
|
|
52
|
+
// Return undefined if no patterns match or all postMatch checks failed
|
|
53
|
+
return undefined;
|
|
65
54
|
}
|
|
66
55
|
andThen(next) {
|
|
67
56
|
const first = this;
|
|
@@ -71,15 +60,13 @@ class RewriteRuleImpl {
|
|
|
71
60
|
// since we override tryOn
|
|
72
61
|
super([], () => undefined);
|
|
73
62
|
}
|
|
74
|
-
tryOn(cursor, node) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return undefined;
|
|
82
|
-
});
|
|
63
|
+
async tryOn(cursor, node) {
|
|
64
|
+
const firstResult = await first.tryOn(cursor, node);
|
|
65
|
+
if (firstResult !== undefined) {
|
|
66
|
+
const secondResult = await next.tryOn(cursor, firstResult);
|
|
67
|
+
return secondResult !== null && secondResult !== void 0 ? secondResult : firstResult;
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
83
70
|
}
|
|
84
71
|
})();
|
|
85
72
|
}
|
|
@@ -91,14 +78,12 @@ class RewriteRuleImpl {
|
|
|
91
78
|
// since we override tryOn
|
|
92
79
|
super([], () => undefined);
|
|
93
80
|
}
|
|
94
|
-
tryOn(cursor, node) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return yield alternative.tryOn(cursor, node);
|
|
101
|
-
});
|
|
81
|
+
async tryOn(cursor, node) {
|
|
82
|
+
const firstResult = await first.tryOn(cursor, node);
|
|
83
|
+
if (firstResult !== undefined) {
|
|
84
|
+
return firstResult;
|
|
85
|
+
}
|
|
86
|
+
return await alternative.tryOn(cursor, node);
|
|
102
87
|
}
|
|
103
88
|
})();
|
|
104
89
|
}
|
|
@@ -197,13 +182,11 @@ const fromRecipe = (recipe, ctx) => {
|
|
|
197
182
|
// since we override tryOn
|
|
198
183
|
super([], () => undefined);
|
|
199
184
|
}
|
|
200
|
-
tryOn(cursor, tree) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return result !== tree ? result : undefined;
|
|
206
|
-
});
|
|
185
|
+
async tryOn(cursor, tree) {
|
|
186
|
+
const visitor = await recipe.editor();
|
|
187
|
+
const result = await visitor.visit(tree, ctx, cursor);
|
|
188
|
+
// Return undefined if the visitor didn't change the node
|
|
189
|
+
return result !== tree ? result : undefined;
|
|
207
190
|
}
|
|
208
191
|
})();
|
|
209
192
|
};
|
|
@@ -243,39 +226,34 @@ exports.fromRecipe = fromRecipe;
|
|
|
243
226
|
function flattenBlock(visitor, block) {
|
|
244
227
|
// Create a visitor that will flatten this specific block when found in a parent block
|
|
245
228
|
const flattenVisitor = new class extends visitor_1.JavaScriptVisitor {
|
|
246
|
-
visitBlock(parentBlock, p) {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}) }));
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
newStatements.push(innerStmt);
|
|
266
|
-
}
|
|
229
|
+
async visitBlock(parentBlock, p) {
|
|
230
|
+
let modified = false;
|
|
231
|
+
const newStatements = [];
|
|
232
|
+
for (const stmt of parentBlock.statements) {
|
|
233
|
+
// Check if this statement is the block we want to flatten
|
|
234
|
+
if (stmt.element === block || stmt.element.id === block.id) {
|
|
235
|
+
// Splice in the inner block's statements
|
|
236
|
+
for (let i = 0; i < block.statements.length; i++) {
|
|
237
|
+
const innerStmt = block.statements[i];
|
|
238
|
+
if (i === 0) {
|
|
239
|
+
// First statement inherits the outer statement's padding
|
|
240
|
+
newStatements.push(Object.assign(Object.assign({}, innerStmt), { element: Object.assign(Object.assign({}, innerStmt.element), { prefix: stmt.element.prefix // Use the original statement's prefix
|
|
241
|
+
}) }));
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
newStatements.push(innerStmt);
|
|
267
245
|
}
|
|
268
|
-
modified = true;
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
newStatements.push(stmt);
|
|
272
246
|
}
|
|
247
|
+
modified = true;
|
|
273
248
|
}
|
|
274
|
-
|
|
275
|
-
|
|
249
|
+
else {
|
|
250
|
+
newStatements.push(stmt);
|
|
276
251
|
}
|
|
277
|
-
|
|
278
|
-
|
|
252
|
+
}
|
|
253
|
+
if (modified) {
|
|
254
|
+
return Object.assign(Object.assign({}, parentBlock), { statements: newStatements });
|
|
255
|
+
}
|
|
256
|
+
return super.visitBlock(parentBlock, p);
|
|
279
257
|
}
|
|
280
258
|
}();
|
|
281
259
|
// Register the flatten visitor to run after the main visitor completes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../../src/javascript/templating/rewrite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../../src/javascript/templating/rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.Template = exports.TemplateBuilder = void 0;
|
|
13
4
|
exports.template = template;
|
|
@@ -210,38 +201,36 @@ class Template {
|
|
|
210
201
|
* @returns The cached or newly computed template tree
|
|
211
202
|
* @internal
|
|
212
203
|
*/
|
|
213
|
-
getTemplateTree() {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
return `raw:${value.code}`;
|
|
228
|
-
}
|
|
229
|
-
return i.toString();
|
|
230
|
-
}).join(',');
|
|
231
|
-
const cacheKey = (0, utils_1.generateCacheKey)(this.templateParts, parametersKey, contextStatements, this.options.dependencies || {});
|
|
232
|
-
// Level 2: Global cache (fast path - shared with Pattern)
|
|
233
|
-
const cached = utils_1.globalAstCache.get(cacheKey);
|
|
234
|
-
if (cached) {
|
|
235
|
-
this._cachedTemplate = cached;
|
|
236
|
-
return cached;
|
|
204
|
+
async getTemplateTree() {
|
|
205
|
+
// Level 1: Instance cache (fastest path)
|
|
206
|
+
if (this._cachedTemplate) {
|
|
207
|
+
return this._cachedTemplate;
|
|
208
|
+
}
|
|
209
|
+
// Generate cache key for global lookup
|
|
210
|
+
// For raw() parameters, we need to include their code values in the key
|
|
211
|
+
// since they're spliced at construction time, not application time
|
|
212
|
+
const contextStatements = this.options.context || this.options.imports || [];
|
|
213
|
+
const parametersKey = this.parameters.map((p, i) => {
|
|
214
|
+
const value = p.value;
|
|
215
|
+
// Include raw code values in the cache key using the symbol
|
|
216
|
+
if (value && typeof value === 'object' && value[capture_1.RAW_CODE_SYMBOL]) {
|
|
217
|
+
return `raw:${value.code}`;
|
|
237
218
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
219
|
+
return i.toString();
|
|
220
|
+
}).join(',');
|
|
221
|
+
const cacheKey = (0, utils_1.generateCacheKey)(this.templateParts, parametersKey, contextStatements, this.options.dependencies || {});
|
|
222
|
+
// Level 2: Global cache (fast path - shared with Pattern)
|
|
223
|
+
const cached = utils_1.globalAstCache.get(cacheKey);
|
|
224
|
+
if (cached) {
|
|
225
|
+
this._cachedTemplate = cached;
|
|
226
|
+
return cached;
|
|
227
|
+
}
|
|
228
|
+
// Level 3: Compute via TemplateEngine (slow path)
|
|
229
|
+
const result = await engine_1.TemplateEngine.getTemplateTree(this.templateParts, this.parameters, contextStatements, this.options.dependencies || {});
|
|
230
|
+
// Cache in both levels
|
|
231
|
+
utils_1.globalAstCache.set(cacheKey, result);
|
|
232
|
+
this._cachedTemplate = result;
|
|
233
|
+
return result;
|
|
245
234
|
}
|
|
246
235
|
/**
|
|
247
236
|
* Applies this template and returns the resulting tree.
|
|
@@ -266,54 +255,52 @@ class Template {
|
|
|
266
255
|
* });
|
|
267
256
|
* ```
|
|
268
257
|
*/
|
|
269
|
-
apply(tree, cursor, options) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
258
|
+
async apply(tree, cursor, options) {
|
|
259
|
+
// Extract values from options
|
|
260
|
+
const values = options === null || options === void 0 ? void 0 : options.values;
|
|
261
|
+
// Normalize the values map: convert any Capture keys to string keys
|
|
262
|
+
let normalizedValues;
|
|
263
|
+
let wrappersMap = new Map();
|
|
264
|
+
if (values instanceof pattern_1.MatchResult) {
|
|
265
|
+
// MatchResult - extract both bindings and wrappersMap
|
|
266
|
+
normalizedValues = values;
|
|
267
|
+
wrappersMap = values[utils_1.WRAPPERS_MAP_SYMBOL]();
|
|
268
|
+
}
|
|
269
|
+
else if (values instanceof Map) {
|
|
270
|
+
const normalized = new Map();
|
|
271
|
+
for (const [key, value] of values.entries()) {
|
|
272
|
+
const stringKey = typeof key === 'string'
|
|
273
|
+
? key
|
|
274
|
+
: (key[capture_1.CAPTURE_NAME_SYMBOL] || key.getName());
|
|
275
|
+
normalized.set(stringKey, value);
|
|
276
|
+
}
|
|
277
|
+
normalizedValues = normalized;
|
|
278
|
+
}
|
|
279
|
+
else if (values && typeof values === 'object') {
|
|
280
|
+
// Check if it's a Map-like object with 'get' method, or a plain object literal
|
|
281
|
+
if ('get' in values && typeof values.get === 'function') {
|
|
282
|
+
// Map-like object with get method
|
|
278
283
|
normalizedValues = values;
|
|
279
|
-
wrappersMap = values[utils_1.WRAPPERS_MAP_SYMBOL]();
|
|
280
284
|
}
|
|
281
|
-
else
|
|
285
|
+
else {
|
|
286
|
+
// Plain object literal - convert to Map
|
|
287
|
+
// Keys may be strings or Capture objects (via computed properties {[x]: value})
|
|
282
288
|
const normalized = new Map();
|
|
283
|
-
for (const [key, value] of
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
normalized.set(stringKey, value);
|
|
289
|
+
for (const [key, value] of Object.entries(values)) {
|
|
290
|
+
// If the key happens to be a stringified Capture (from computed properties),
|
|
291
|
+
// it's already been converted to a string by JavaScript
|
|
292
|
+
normalized.set(key, value);
|
|
288
293
|
}
|
|
289
294
|
normalizedValues = normalized;
|
|
290
295
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
// Keys may be strings or Capture objects (via computed properties {[x]: value})
|
|
300
|
-
const normalized = new Map();
|
|
301
|
-
for (const [key, value] of Object.entries(values)) {
|
|
302
|
-
// If the key happens to be a stringified Capture (from computed properties),
|
|
303
|
-
// it's already been converted to a string by JavaScript
|
|
304
|
-
normalized.set(key, value);
|
|
305
|
-
}
|
|
306
|
-
normalizedValues = normalized;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
// Use instance-level cache to get the template tree
|
|
310
|
-
const ast = yield this.getTemplateTree();
|
|
311
|
-
// Delegate to TemplateEngine for placeholder substitution and application
|
|
312
|
-
return engine_1.TemplateEngine.applyTemplateFromAst(ast, this.parameters, cursor, {
|
|
313
|
-
tree,
|
|
314
|
-
mode: JavaCoordinates.Mode.Replace
|
|
315
|
-
}, normalizedValues, wrappersMap);
|
|
316
|
-
});
|
|
296
|
+
}
|
|
297
|
+
// Use instance-level cache to get the template tree
|
|
298
|
+
const ast = await this.getTemplateTree();
|
|
299
|
+
// Delegate to TemplateEngine for placeholder substitution and application
|
|
300
|
+
return engine_1.TemplateEngine.applyTemplateFromAst(ast, this.parameters, cursor, {
|
|
301
|
+
tree,
|
|
302
|
+
mode: JavaCoordinates.Mode.Replace
|
|
303
|
+
}, normalizedValues, wrappersMap);
|
|
317
304
|
}
|
|
318
305
|
}
|
|
319
306
|
exports.Template = Template;
|
|
@@ -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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"}
|