@openrewrite/rewrite 8.91.1 → 8.91.2
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/add-import.d.ts +68 -34
- package/dist/javascript/add-import.d.ts.map +1 -1
- package/dist/javascript/add-import.js +322 -160
- package/dist/javascript/add-import.js.map +1 -1
- package/dist/javascript/amd.d.ts +138 -0
- package/dist/javascript/amd.d.ts.map +1 -0
- package/dist/javascript/amd.js +768 -0
- package/dist/javascript/amd.js.map +1 -0
- package/dist/javascript/binding.d.ts +94 -0
- package/dist/javascript/binding.d.ts.map +1 -0
- package/dist/javascript/binding.js +335 -0
- package/dist/javascript/binding.js.map +1 -0
- package/dist/javascript/index.d.ts +8 -1
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +26 -1
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/parser-utils.d.ts.map +1 -1
- package/dist/javascript/parser-utils.js +2 -0
- package/dist/javascript/parser-utils.js.map +1 -1
- package/dist/javascript/parser.d.ts +7 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +7 -1
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/recipes/change-import.d.ts +2 -4
- package/dist/javascript/recipes/change-import.d.ts.map +1 -1
- package/dist/javascript/recipes/change-import.js +8 -240
- package/dist/javascript/recipes/change-import.js.map +1 -1
- package/dist/javascript/remove-import.d.ts +2 -28
- package/dist/javascript/remove-import.d.ts.map +1 -1
- package/dist/javascript/remove-import.js +19 -57
- package/dist/javascript/remove-import.js.map +1 -1
- package/dist/javascript/scope.d.ts +49 -0
- package/dist/javascript/scope.d.ts.map +1 -0
- package/dist/javascript/scope.js +324 -0
- package/dist/javascript/scope.js.map +1 -0
- package/dist/javascript/templating/bindings.d.ts +0 -11
- package/dist/javascript/templating/bindings.d.ts.map +1 -1
- package/dist/javascript/templating/bindings.js +0 -29
- package/dist/javascript/templating/bindings.js.map +1 -1
- package/dist/javascript/templating/comparator.d.ts +10 -0
- package/dist/javascript/templating/comparator.d.ts.map +1 -1
- package/dist/javascript/templating/comparator.js +43 -14
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/engine.d.ts +17 -4
- package/dist/javascript/templating/engine.d.ts.map +1 -1
- package/dist/javascript/templating/engine.js +43 -17
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/index.d.ts +1 -1
- package/dist/javascript/templating/index.d.ts.map +1 -1
- package/dist/javascript/templating/index.js.map +1 -1
- package/dist/javascript/templating/pattern.d.ts.map +1 -1
- package/dist/javascript/templating/pattern.js +2 -2
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.d.ts +2 -0
- package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.js +10 -5
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -1
- package/dist/javascript/templating/precedence.d.ts +12 -4
- package/dist/javascript/templating/precedence.d.ts.map +1 -1
- package/dist/javascript/templating/precedence.js +18 -11
- package/dist/javascript/templating/precedence.js.map +1 -1
- package/dist/javascript/templating/rewrite.d.ts.map +1 -1
- package/dist/javascript/templating/rewrite.js +7 -1
- package/dist/javascript/templating/rewrite.js.map +1 -1
- package/dist/javascript/templating/template.d.ts +7 -1
- package/dist/javascript/templating/template.d.ts.map +1 -1
- package/dist/javascript/templating/template.js +48 -28
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +10 -18
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/javascript/templating/utils.d.ts +1 -1
- package/dist/javascript/templating/utils.d.ts.map +1 -1
- package/dist/javascript/templating/utils.js +3 -2
- package/dist/javascript/templating/utils.js.map +1 -1
- package/dist/rewrite-javascript-version.txt +1 -1
- package/package.json +2 -2
- package/src/javascript/add-import.ts +342 -198
- package/src/javascript/amd.ts +915 -0
- package/src/javascript/binding.ts +449 -0
- package/src/javascript/index.ts +12 -1
- package/src/javascript/parser-utils.ts +2 -0
- package/src/javascript/parser.ts +13 -0
- package/src/javascript/recipes/change-import.ts +10 -260
- package/src/javascript/remove-import.ts +20 -56
- package/src/javascript/scope.ts +338 -0
- package/src/javascript/templating/bindings.ts +0 -30
- package/src/javascript/templating/comparator.ts +52 -14
- package/src/javascript/templating/engine.ts +70 -28
- package/src/javascript/templating/index.ts +0 -1
- package/src/javascript/templating/pattern.ts +4 -2
- package/src/javascript/templating/placeholder-replacement.ts +16 -6
- package/src/javascript/templating/precedence.ts +21 -13
- package/src/javascript/templating/rewrite.ts +9 -1
- package/src/javascript/templating/template.ts +62 -29
- package/src/javascript/templating/types.ts +11 -18
- package/src/javascript/templating/utils.ts +4 -2
|
@@ -41,6 +41,11 @@ export interface MatcherCallbacks {
|
|
|
41
41
|
restoreState: (state: MatcherState) => void;
|
|
42
42
|
debug?: DebugCallbacks;
|
|
43
43
|
}
|
|
44
|
+
/** A capture found in a pattern, and the target node it binds to. */
|
|
45
|
+
interface CaptureAt {
|
|
46
|
+
marker: CaptureMarker;
|
|
47
|
+
target: J;
|
|
48
|
+
}
|
|
44
49
|
/**
|
|
45
50
|
* A comparator for pattern matching that is lenient about optional properties.
|
|
46
51
|
* Allows patterns without type annotations to match actual code with type annotations.
|
|
@@ -55,6 +60,10 @@ export declare class PatternMatchingComparator extends JavaScriptSemanticCompara
|
|
|
55
60
|
* @returns The constraint context for evaluating capture constraints
|
|
56
61
|
*/
|
|
57
62
|
protected buildConstraintContext(cursor: Cursor): CaptureConstraintContext;
|
|
63
|
+
/** The capture this pattern node stands for, paired with the target node it should bind to. */
|
|
64
|
+
protected captureAt(j: Tree, p: J): CaptureAt | undefined;
|
|
65
|
+
/** The marker `attachCaptureMarkers` moved onto a parenthesized capture's `J.RightPadded`, which `unwrap()` skips past. */
|
|
66
|
+
private captureBehindParentheses;
|
|
58
67
|
visit<R extends J>(j: Tree, p: J, parent?: Cursor): Promise<R | undefined>;
|
|
59
68
|
protected hasSameKind(j: J, other: J): boolean;
|
|
60
69
|
/**
|
|
@@ -174,4 +183,5 @@ export declare class DebugPatternMatchingComparator extends PatternMatchingCompa
|
|
|
174
183
|
protected visitSequenceElement(patternWrapper: J.RightPadded<J>, targetWrapper: J.RightPadded<J>, targetIdx: number): Promise<boolean>;
|
|
175
184
|
protected matchSequenceOptimized(patternElements: J.RightPadded<J>[], targetElements: J.RightPadded<J>[], patternIdx: number, targetIdx: number, filterEmpty: boolean): Promise<boolean>;
|
|
176
185
|
}
|
|
186
|
+
export {};
|
|
177
187
|
//# sourceMappingURL=comparator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,UAAU,CAAC;AAC5B,OAAO,EAAC,mCAAmC,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAmB,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAU,wBAAwB,EAAc,aAAa,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGvG;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACzG,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjH,cAAc,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACnD,kBAAkB,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC1F,qBAAqB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;IACxG,SAAS,EAAE,MAAM,YAAY,CAAC;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAG5C,KAAK,CAAC,EAAE,cAAc,CAAC;CAC1B;AAwBD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,mCAAmC;IAE1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;gBAAzB,OAAO,EAAE,gBAAgB,EAC5C,mBAAmB,GAAE,OAAc;IAMvC;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;
|
|
1
|
+
{"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,10 @@ class CaptureMapImpl {
|
|
|
41
41
|
return this.storage.has(name);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
+
/** Parentheses that `JavaScriptSemanticComparatorVisitor.unwrap()` sees through. */
|
|
45
|
+
function isParenthesized(j) {
|
|
46
|
+
return (j === null || j === void 0 ? void 0 : j.kind) === java_1.J.Kind.Parentheses || (j === null || j === void 0 ? void 0 : j.kind) === java_1.J.Kind.ControlParentheses;
|
|
47
|
+
}
|
|
44
48
|
/**
|
|
45
49
|
* A comparator for pattern matching that is lenient about optional properties.
|
|
46
50
|
* Allows patterns without type annotations to match actual code with type annotations.
|
|
@@ -64,31 +68,55 @@ class PatternMatchingComparator extends comparator_1.JavaScriptSemanticComparato
|
|
|
64
68
|
captures: new CaptureMapImpl(state.storage)
|
|
65
69
|
};
|
|
66
70
|
}
|
|
71
|
+
/** The capture this pattern node stands for, paired with the target node it should bind to. */
|
|
72
|
+
captureAt(j, p) {
|
|
73
|
+
const marker = utils_1.PlaceholderUtils.getCaptureMarker(j);
|
|
74
|
+
return marker ? { marker, target: p } : this.captureBehindParentheses(j, p);
|
|
75
|
+
}
|
|
76
|
+
/** The marker `attachCaptureMarkers` moved onto a parenthesized capture's `J.RightPadded`, which `unwrap()` skips past. */
|
|
77
|
+
captureBehindParentheses(j, p) {
|
|
78
|
+
let pattern = j;
|
|
79
|
+
let target = p;
|
|
80
|
+
while (isParenthesized(pattern)) {
|
|
81
|
+
const padded = pattern.tree;
|
|
82
|
+
if (!padded) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
target = isParenthesized(target) ? target.tree.element : target;
|
|
86
|
+
const marker = utils_1.PlaceholderUtils.getCaptureMarker(padded);
|
|
87
|
+
if (marker) {
|
|
88
|
+
return { marker, target: target };
|
|
89
|
+
}
|
|
90
|
+
pattern = padded.element;
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
67
94
|
async visit(j, p, parent) {
|
|
68
95
|
// Check if the pattern node is a capture - this handles unwrapped captures
|
|
69
96
|
// (Wrapped captures in J.RightPadded are handled by visitRightPadded override)
|
|
70
97
|
// Note: targetCursor will be pushed by parent's visit() method after this check
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
98
|
+
const capture = this.captureAt(j, p);
|
|
99
|
+
if (capture) {
|
|
100
|
+
const { marker: captureMarker, target } = capture;
|
|
73
101
|
// Push targetCursor to position it at the captured node for constraint evaluation
|
|
74
102
|
// Only create cursor if targetCursor was initialized (meaning user provided one)
|
|
75
103
|
const savedTargetCursor = this.targetCursor;
|
|
76
104
|
const cursorAtCapturedNode = this.targetCursor !== undefined
|
|
77
|
-
? new __1.Cursor(
|
|
78
|
-
: new __1.Cursor(
|
|
105
|
+
? new __1.Cursor(target, this.targetCursor)
|
|
106
|
+
: new __1.Cursor(target);
|
|
79
107
|
this.targetCursor = cursorAtCapturedNode;
|
|
80
108
|
try {
|
|
81
109
|
// Evaluate constraint with context (cursor + previous captures)
|
|
82
110
|
// Skip constraint for variadic captures - they're evaluated in matchSequence with the full array
|
|
83
111
|
if (captureMarker.constraint && !captureMarker.variadicOptions) {
|
|
84
112
|
const context = this.buildConstraintContext(cursorAtCapturedNode);
|
|
85
|
-
if (!captureMarker.constraint(
|
|
113
|
+
if (!captureMarker.constraint(target, context)) {
|
|
86
114
|
const captureName = captureMarker.captureName || 'unnamed';
|
|
87
|
-
const targetKind =
|
|
115
|
+
const targetKind = target.kind || 'unknown';
|
|
88
116
|
return this.constraintFailed(captureName, targetKind);
|
|
89
117
|
}
|
|
90
118
|
}
|
|
91
|
-
const success = this.matcher.handleCapture(captureMarker,
|
|
119
|
+
const success = this.matcher.handleCapture(captureMarker, target, undefined);
|
|
92
120
|
if (!success) {
|
|
93
121
|
const captureName = captureMarker.captureName || 'unnamed';
|
|
94
122
|
return this.captureConflict(captureName);
|
|
@@ -740,25 +768,26 @@ class DebugPatternMatchingComparator extends PatternMatchingComparator {
|
|
|
740
768
|
}
|
|
741
769
|
}
|
|
742
770
|
async visit(j, p, parent) {
|
|
743
|
-
const
|
|
744
|
-
if (
|
|
771
|
+
const capture = this.captureAt(j, p);
|
|
772
|
+
if (capture) {
|
|
773
|
+
const { marker: captureMarker, target } = capture;
|
|
745
774
|
const savedTargetCursor = this.targetCursor;
|
|
746
775
|
const cursorAtCapturedNode = this.targetCursor !== undefined
|
|
747
|
-
? new __1.Cursor(
|
|
748
|
-
: new __1.Cursor(
|
|
776
|
+
? new __1.Cursor(target, this.targetCursor)
|
|
777
|
+
: new __1.Cursor(target);
|
|
749
778
|
this.targetCursor = cursorAtCapturedNode;
|
|
750
779
|
try {
|
|
751
780
|
if (captureMarker.constraint && !captureMarker.variadicOptions) {
|
|
752
781
|
this.debug.log('debug', 'constraint', `Evaluating constraint for capture: ${captureMarker.captureName}`);
|
|
753
|
-
const constraintResult = captureMarker.constraint(
|
|
782
|
+
const constraintResult = captureMarker.constraint(target, this.buildConstraintContext(cursorAtCapturedNode));
|
|
754
783
|
if (!constraintResult) {
|
|
755
784
|
this.debug.log('info', 'constraint', `Constraint failed for capture: ${captureMarker.captureName}`);
|
|
756
|
-
this.debug.setExplanation('constraint-failed', `Capture ${captureMarker.captureName} with valid constraint`, `Constraint failed for ${
|
|
785
|
+
this.debug.setExplanation('constraint-failed', `Capture ${captureMarker.captureName} with valid constraint`, `Constraint failed for ${target.kind}`, `Constraint evaluation returned false`);
|
|
757
786
|
return this.abort(j);
|
|
758
787
|
}
|
|
759
788
|
this.debug.log('debug', 'constraint', `Constraint passed for capture: ${captureMarker.captureName}`);
|
|
760
789
|
}
|
|
761
|
-
const success = this.matcher.handleCapture(captureMarker,
|
|
790
|
+
const success = this.matcher.handleCapture(captureMarker, target, undefined);
|
|
762
791
|
if (!success) {
|
|
763
792
|
return this.abort(j);
|
|
764
793
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparator.js","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"comparator.js","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Cursor } from '../..';
|
|
2
2
|
import { J } from '../../java';
|
|
3
|
-
import { Any, Capture
|
|
3
|
+
import { Any, Capture } from '..';
|
|
4
4
|
import { RawCode } from './capture';
|
|
5
5
|
import { JavaCoordinates } from './template';
|
|
6
6
|
import ts from "typescript";
|
|
7
|
+
import { ModuleScopeBinding } from '../add-import';
|
|
8
|
+
/** A module a template's context binds, and whether the parse resolved it well enough to attribute. */
|
|
9
|
+
export interface ContextBinding extends ModuleScopeBinding {
|
|
10
|
+
attributed: boolean;
|
|
11
|
+
}
|
|
7
12
|
import { Parameter } from "./types";
|
|
8
13
|
/**
|
|
9
14
|
* Configure the sourceFileCache used for template parsing.
|
|
@@ -31,7 +36,15 @@ export declare class TemplateEngine {
|
|
|
31
36
|
* @param dependencies NPM dependencies for type attribution
|
|
32
37
|
* @returns A Promise resolving to the extracted template AST
|
|
33
38
|
*/
|
|
34
|
-
|
|
39
|
+
/** The template parsed with its context, which is what gives its code types to attribute against. */
|
|
40
|
+
private static parseWithContext;
|
|
41
|
+
/**
|
|
42
|
+
* The modules the template's context binds, for the caller to bind in the file being edited.
|
|
43
|
+
* An `import` or `require` states one; anything else — a `declare`, a helper signature — types
|
|
44
|
+
* the template without asking for a binding.
|
|
45
|
+
*/
|
|
46
|
+
static getContextBindings(templateParts: TemplateStringsArray, parameters: Parameter[], contextStatements?: string[], dependencies?: Record<string, string>, types?: string[]): Promise<ContextBinding[]>;
|
|
47
|
+
static getTemplateTree(templateParts: TemplateStringsArray, parameters: Parameter[], contextStatements?: string[], dependencies?: Record<string, string>, types?: string[]): Promise<J>;
|
|
35
48
|
/**
|
|
36
49
|
* Applies a template from a pre-parsed AST and returns the resulting AST.
|
|
37
50
|
* This method is used by Template.apply() after getting the cached template tree.
|
|
@@ -47,7 +60,7 @@ export declare class TemplateEngine {
|
|
|
47
60
|
* @param modules The module each declared binding names, keyed as declared
|
|
48
61
|
* @returns A Promise resolving to the generated AST node
|
|
49
62
|
*/
|
|
50
|
-
static applyTemplateFromAst(ast:
|
|
63
|
+
static applyTemplateFromAst(ast: J, parameters: Parameter[], cursor: Cursor, coordinates: JavaCoordinates, values?: Pick<Map<string, J>, 'get'>, wrappersMap?: Pick<Map<string, J.RightPadded<J> | J.RightPadded<J>[]>, 'get'>, format?: boolean, renames?: Record<string, string>, modules?: Record<string, string>): Promise<J | undefined>;
|
|
51
64
|
/**
|
|
52
65
|
* Generates type preamble declarations for captures/parameters with type annotations.
|
|
53
66
|
*
|
|
@@ -85,7 +98,7 @@ export declare class TemplateEngine {
|
|
|
85
98
|
* @param dependencies NPM dependencies for type attribution
|
|
86
99
|
* @returns A Promise resolving to the extracted pattern AST
|
|
87
100
|
*/
|
|
88
|
-
static getPatternTree(templateParts: TemplateStringsArray, captures: (Capture | Any | RawCode)[], contextStatements?: string[], dependencies?: Record<string, string
|
|
101
|
+
static getPatternTree(templateParts: TemplateStringsArray, captures: (Capture | Any | RawCode)[], contextStatements?: string[], dependencies?: Record<string, string>, types?: string[]): Promise<J>;
|
|
89
102
|
/**
|
|
90
103
|
* Binds a pattern tree to a set of captures by attaching a CaptureMarker, carrying that
|
|
91
104
|
* capture's constraint and variadic options, to each placeholder identifier.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/engine.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAA8C,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAa,CAAC,EAAkB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAC,GAAG,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,9 @@ const bindings_1 = require("./bindings");
|
|
|
31
31
|
const parser_utils_1 = require("../parser-utils");
|
|
32
32
|
const uuid_1 = require("../../uuid");
|
|
33
33
|
const dependency_workspace_1 = require("../dependency-workspace");
|
|
34
|
+
const add_import_1 = require("../add-import");
|
|
35
|
+
const scope_1 = require("../scope");
|
|
36
|
+
const java_2 = require("../../java");
|
|
34
37
|
/**
|
|
35
38
|
* Simple LRU (Least Recently Used) cache implementation.
|
|
36
39
|
* Used for template/pattern compilation caching with bounded memory usage.
|
|
@@ -83,11 +86,13 @@ function setTemplateSourceFileCache(cache) {
|
|
|
83
86
|
// Every template parses under `template.tsx`, so one parser per workspace carries its program
|
|
84
87
|
// from one compile to the next; see `JavaScriptParser.parse`.
|
|
85
88
|
const templateParsers = new Map();
|
|
86
|
-
function templateParser(workspaceDir) {
|
|
87
|
-
|
|
89
|
+
function templateParser(workspaceDir, types) {
|
|
90
|
+
// `types` changes what the compiler loads, so parsers cannot be shared across differing sets.
|
|
91
|
+
// An empty list loads nothing where absence loads the defaults, so the two encode apart.
|
|
92
|
+
const key = `${workspaceDir !== null && workspaceDir !== void 0 ? workspaceDir : ""}::${JSON.stringify(types !== null && types !== void 0 ? types : null)}`;
|
|
88
93
|
let parser = templateParsers.get(key);
|
|
89
94
|
if (!parser) {
|
|
90
|
-
parser = new __2.JavaScriptParser({ relativeTo: workspaceDir, sourceFileCache: templateSourceFileCache });
|
|
95
|
+
parser = new __2.JavaScriptParser({ relativeTo: workspaceDir, sourceFileCache: templateSourceFileCache, types });
|
|
91
96
|
templateParsers.set(key, parser);
|
|
92
97
|
}
|
|
93
98
|
return parser;
|
|
@@ -104,7 +109,7 @@ class TemplateCache {
|
|
|
104
109
|
/**
|
|
105
110
|
* Generates a cache key from template string, captures, and options.
|
|
106
111
|
*/
|
|
107
|
-
generateKey(templateString, captures, contextStatements, dependencies) {
|
|
112
|
+
generateKey(templateString, captures, contextStatements, dependencies, types) {
|
|
108
113
|
// Use the actual template string (with placeholders) as the primary key
|
|
109
114
|
const templateKey = templateString;
|
|
110
115
|
// Capture names
|
|
@@ -113,13 +118,13 @@ class TemplateCache {
|
|
|
113
118
|
const contextKey = contextStatements.join(';');
|
|
114
119
|
// Dependencies
|
|
115
120
|
const depsKey = JSON.stringify(dependencies || {});
|
|
116
|
-
return `${templateKey}::${capturesKey}::${contextKey}::${depsKey}`;
|
|
121
|
+
return `${templateKey}::${capturesKey}::${contextKey}::${depsKey}::${JSON.stringify(types !== null && types !== void 0 ? types : null)}`;
|
|
117
122
|
}
|
|
118
123
|
/**
|
|
119
124
|
* Gets a cached compilation unit or creates and caches a new one.
|
|
120
125
|
*/
|
|
121
|
-
async getOrParse(templateString, captures, contextStatements, dependencies) {
|
|
122
|
-
const key = this.generateKey(templateString, captures, contextStatements, dependencies);
|
|
126
|
+
async getOrParse(templateString, captures, contextStatements, dependencies, types) {
|
|
127
|
+
const key = this.generateKey(templateString, captures, contextStatements, dependencies, types);
|
|
123
128
|
let cu = this.cache.get(key);
|
|
124
129
|
if (cu) {
|
|
125
130
|
return cu;
|
|
@@ -137,7 +142,7 @@ class TemplateCache {
|
|
|
137
142
|
: templateString;
|
|
138
143
|
// Parse and cache (workspace only needed during parsing)
|
|
139
144
|
// Use templateSourceFileCache if configured for ~3.2x speedup on dependency file parsing
|
|
140
|
-
const parser = templateParser(workspaceDir);
|
|
145
|
+
const parser = templateParser(workspaceDir, types);
|
|
141
146
|
const parseGenerator = parser.parse({ text: fullTemplateString, sourcePath: 'template.tsx' });
|
|
142
147
|
cu = (await parseGenerator.next()).value;
|
|
143
148
|
this.cache.set(key, cu);
|
|
@@ -177,20 +182,41 @@ class TemplateEngine {
|
|
|
177
182
|
* @param dependencies NPM dependencies for type attribution
|
|
178
183
|
* @returns A Promise resolving to the extracted template AST
|
|
179
184
|
*/
|
|
180
|
-
|
|
181
|
-
|
|
185
|
+
/** The template parsed with its context, which is what gives its code types to attribute against. */
|
|
186
|
+
static async parseWithContext(templateParts, parameters, contextStatements, dependencies, types) {
|
|
187
|
+
// A capture's declared type reaches the parse as a declaration, so it belongs with context.
|
|
182
188
|
const preamble = TemplateEngine.parameterPreamble(parameters);
|
|
183
|
-
// Build the template string with parameter placeholders
|
|
184
189
|
const templateString = TemplateEngine.buildTemplateString(templateParts, parameters);
|
|
185
|
-
// Add preamble to context statements (so they're skipped during extraction)
|
|
186
190
|
const contextWithPreamble = preamble.length > 0
|
|
187
191
|
? [...contextStatements, ...preamble]
|
|
188
192
|
: contextStatements;
|
|
189
|
-
|
|
190
|
-
|
|
193
|
+
return templateCache.getOrParse(templateString, [], contextWithPreamble, dependencies, types);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The modules the template's context binds, for the caller to bind in the file being edited.
|
|
197
|
+
* An `import` or `require` states one; anything else — a `declare`, a helper signature — types
|
|
198
|
+
* the template without asking for a binding.
|
|
199
|
+
*/
|
|
200
|
+
static async getContextBindings(templateParts, parameters, contextStatements = [], dependencies = {}, types) {
|
|
201
|
+
const cu = await TemplateEngine.parseWithContext(templateParts, parameters, contextStatements, dependencies, types);
|
|
202
|
+
// The template's own code is the last statement, so everything ahead of it is context.
|
|
203
|
+
const context = Object.assign(Object.assign({}, cu), { statements: cu.statements.slice(0, -1) });
|
|
204
|
+
const attributed = new Set();
|
|
205
|
+
(0, scope_1.walk)(context.statements, node => {
|
|
206
|
+
if ((0, java_2.isIdentifier)(node) && (node.type !== undefined || node.fieldType !== undefined)) {
|
|
207
|
+
attributed.add(node.simpleName);
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
});
|
|
211
|
+
return (0, add_import_1.moduleScopeBindings)(context)
|
|
212
|
+
.filter(b => b.module !== undefined)
|
|
213
|
+
.map(b => (Object.assign(Object.assign({}, b), { attributed: attributed.has(b.name) })));
|
|
214
|
+
}
|
|
215
|
+
static async getTemplateTree(templateParts, parameters, contextStatements = [], dependencies = {}, types) {
|
|
216
|
+
const cu = await TemplateEngine.parseWithContext(templateParts, parameters, contextStatements, dependencies, types);
|
|
191
217
|
// Check if there are any statements
|
|
192
218
|
if (!cu.statements || cu.statements.length === 0) {
|
|
193
|
-
throw new Error(`Failed to parse template code (no statements):\n${
|
|
219
|
+
throw new Error(`Failed to parse template code (no statements):\n${TemplateEngine.buildTemplateString(templateParts, parameters)}`);
|
|
194
220
|
}
|
|
195
221
|
// The template code is always the last statement (after context + preamble)
|
|
196
222
|
const lastStatement = cu.statements[cu.statements.length - 1].element;
|
|
@@ -407,7 +433,7 @@ class TemplateEngine {
|
|
|
407
433
|
* @param dependencies NPM dependencies for type attribution
|
|
408
434
|
* @returns A Promise resolving to the extracted pattern AST
|
|
409
435
|
*/
|
|
410
|
-
static async getPatternTree(templateParts, captures, contextStatements = [], dependencies = {}) {
|
|
436
|
+
static async getPatternTree(templateParts, captures, contextStatements = [], dependencies = {}, types) {
|
|
411
437
|
const preamble = TemplateEngine.capturePreamble(captures);
|
|
412
438
|
// Build the template string with placeholders for captures and raw code
|
|
413
439
|
let result = '';
|
|
@@ -436,7 +462,7 @@ class TemplateEngine {
|
|
|
436
462
|
// Filter out RawCode from captures for cache and marker attachment
|
|
437
463
|
const actualCaptures = captures.filter(c => !(c instanceof capture_1.RawCode || (c && typeof c === 'object' && c[capture_1.RAW_CODE_SYMBOL])));
|
|
438
464
|
// Use cache to get or parse the compilation unit
|
|
439
|
-
const cu = await templateCache.getOrParse(templateString, actualCaptures, contextWithPreamble, dependencies);
|
|
465
|
+
const cu = await templateCache.getOrParse(templateString, actualCaptures, contextWithPreamble, dependencies, types);
|
|
440
466
|
// Check if there are any statements
|
|
441
467
|
if (!cu.statements || cu.statements.length === 0) {
|
|
442
468
|
throw new Error(`Failed to parse pattern code (no statements):\n${templateString}`);
|