@arcmantle/lit-jsx 1.0.6 → 1.0.7
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/README.md +22 -16
- package/dist/compiler/babel-plugin.d.ts +4 -0
- package/dist/compiler/babel-plugin.d.ts.map +1 -0
- package/dist/compiler/babel-plugin.js +20 -0
- package/dist/compiler/babel-plugin.js.map +1 -0
- package/dist/compiler/babel-traverse.d.ts +3 -0
- package/dist/compiler/babel-traverse.d.ts.map +1 -0
- package/dist/compiler/babel-traverse.js +7 -0
- package/dist/compiler/babel-traverse.js.map +1 -0
- package/dist/compiler/compiler-utils.d.ts +3 -2
- package/dist/compiler/compiler-utils.d.ts.map +1 -1
- package/dist/compiler/compiler-utils.js +25 -23
- package/dist/compiler/compiler-utils.js.map +1 -1
- package/dist/compiler/config.d.ts +5 -1
- package/dist/compiler/config.d.ts.map +1 -1
- package/dist/compiler/config.js +2 -2
- package/dist/compiler/config.js.map +1 -1
- package/dist/compiler/create-logger.d.ts +3 -0
- package/dist/compiler/create-logger.d.ts.map +1 -0
- package/dist/compiler/create-logger.js +32 -0
- package/dist/compiler/create-logger.js.map +1 -0
- package/dist/compiler/import-discovery.d.ts +43 -4
- package/dist/compiler/import-discovery.d.ts.map +1 -1
- package/dist/compiler/import-discovery.js +306 -160
- package/dist/compiler/import-discovery.js.map +1 -1
- package/dist/compiler/preprocess.d.ts +1 -1
- package/dist/compiler/preprocess.d.ts.map +1 -1
- package/dist/compiler/preprocess.js +5 -4
- package/dist/compiler/preprocess.js.map +1 -1
- package/dist/compiler/transpiler.js +4 -4
- package/dist/compiler/transpiler.js.map +1 -1
- package/dist/compiler/vite-plugin.d.ts +1 -0
- package/dist/compiler/vite-plugin.d.ts.map +1 -1
- package/dist/compiler/vite-plugin.js +9 -13
- package/dist/compiler/vite-plugin.js.map +1 -1
- package/dist/runtime/type-helpers.d.ts +24 -36
- package/dist/runtime/type-helpers.d.ts.map +1 -1
- package/dist/runtime/type-helpers.js +22 -34
- package/dist/runtime/type-helpers.js.map +1 -1
- package/package.json +5 -2
- package/src/compiler/babel-plugin.ts +23 -0
- package/src/compiler/babel-traverse.ts +7 -0
- package/src/compiler/compiler-utils.ts +35 -25
- package/src/compiler/config.ts +7 -2
- package/src/compiler/create-logger.ts +35 -0
- package/src/compiler/import-discovery.ts +381 -202
- package/src/compiler/preprocess.ts +9 -7
- package/src/compiler/transpiler.ts +4 -4
- package/src/compiler/vite-plugin.ts +16 -22
- package/src/runtime/type-helpers.ts +24 -36
- package/dist/compiler/babel-preset.d.ts +0 -6
- package/dist/compiler/babel-preset.d.ts.map +0 -1
- package/dist/compiler/babel-preset.js +0 -27
- package/dist/compiler/babel-preset.js.map +0 -1
- package/src/compiler/babel-preset.ts +0 -34
|
@@ -1,179 +1,325 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
-
import { dirname
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
3
|
import * as babel from '@babel/core';
|
|
4
|
-
import traverse, { Binding, Hub, NodePath, Scope } from '@babel/traverse';
|
|
5
4
|
import * as t from '@babel/types';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (!binding) {
|
|
30
|
-
//console.log('No binding found for:', elementName);
|
|
31
|
-
return { type: 'unknown' };
|
|
5
|
+
import oxcResolver from 'oxc-resolver';
|
|
6
|
+
import { traverse } from "./babel-traverse.js";
|
|
7
|
+
import { getPathFilename, isComponent } from "./compiler-utils.js";
|
|
8
|
+
import { babelPlugins, debugMode } from "./config.js";
|
|
9
|
+
import { createLogger } from "./create-logger.js";
|
|
10
|
+
export class ImportDiscovery {
|
|
11
|
+
static { this.definitionCache = new Map(); }
|
|
12
|
+
static { this.fileBindingsCache = new Map(); }
|
|
13
|
+
static { this.fileDependencies = new Map(); }
|
|
14
|
+
static { this.EMPTY_BINDINGS = new Map(); }
|
|
15
|
+
static clearCacheForFileAndDependents(changedFilePath) {
|
|
16
|
+
// Clear the changed file itself
|
|
17
|
+
ImportDiscovery.definitionCache.delete(changedFilePath);
|
|
18
|
+
ImportDiscovery.fileBindingsCache.delete(changedFilePath);
|
|
19
|
+
ImportDiscovery.fileDependencies.delete(changedFilePath);
|
|
20
|
+
// Find and clear all files that depend on the changed file in one pass
|
|
21
|
+
for (const [file, dependencies] of ImportDiscovery.fileDependencies) {
|
|
22
|
+
if (!dependencies.has(changedFilePath))
|
|
23
|
+
continue;
|
|
24
|
+
ImportDiscovery.definitionCache.delete(file);
|
|
25
|
+
ImportDiscovery.fileBindingsCache.delete(file);
|
|
26
|
+
ImportDiscovery.fileDependencies.delete(file);
|
|
27
|
+
}
|
|
32
28
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
29
|
+
constructor() {
|
|
30
|
+
this.visitedFiles = new Set();
|
|
31
|
+
this.resolver = oxcResolver;
|
|
32
|
+
this.log = createLogger('import-discovery', debugMode.value);
|
|
33
|
+
this.fs = { existsSync, readFileSync, dirname };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Finds the definition of a JSX element in the given path.
|
|
37
|
+
*/
|
|
38
|
+
findElementDefinition(path) {
|
|
39
|
+
this.visitedFiles.clear();
|
|
40
|
+
const filePath = getPathFilename(path);
|
|
41
|
+
const cacheKey = String(path.node.start);
|
|
42
|
+
const fileCache = ImportDiscovery.definitionCache.get(filePath);
|
|
43
|
+
if (fileCache) {
|
|
44
|
+
const cached = fileCache.get(cacheKey);
|
|
45
|
+
if (cached)
|
|
46
|
+
return cached;
|
|
47
|
+
}
|
|
48
|
+
if (!t.isJSXIdentifier(path.node.name))
|
|
49
|
+
return { type: 'unknown' };
|
|
50
|
+
const elementName = path.node.name.name;
|
|
51
|
+
if (!isComponent(elementName))
|
|
52
|
+
return { type: 'unknown' };
|
|
53
|
+
const currentFileName = getPathFilename(path);
|
|
54
|
+
const result = this.traceElementDefinition(elementName, path.scope, currentFileName);
|
|
55
|
+
// Store in file-specific cache
|
|
56
|
+
const definitionCache = ImportDiscovery.definitionCache.get(filePath)
|
|
57
|
+
?? ImportDiscovery.definitionCache
|
|
58
|
+
.set(filePath, new Map())
|
|
59
|
+
.get(filePath);
|
|
60
|
+
definitionCache.set(cacheKey, result);
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
// Trace the element definition recursively
|
|
64
|
+
traceElementDefinition(elementName, scope, currentFileName) {
|
|
65
|
+
const traceKey = `${currentFileName}:${elementName}`;
|
|
66
|
+
// Prevent infinite recursion
|
|
67
|
+
if (this.visitedFiles.has(traceKey))
|
|
68
|
+
return { type: 'unknown' };
|
|
69
|
+
this.visitedFiles.add(traceKey);
|
|
70
|
+
// Use batched file analysis
|
|
71
|
+
const fileBindings = this.analyzeFileBindings(currentFileName);
|
|
72
|
+
// Check if we have this element in our batch analysis
|
|
73
|
+
if (fileBindings.has(elementName)) {
|
|
74
|
+
const definition = fileBindings.get(elementName);
|
|
75
|
+
// Resolve any lazy references
|
|
76
|
+
return this.resolveLazyDefinition(definition);
|
|
77
|
+
}
|
|
78
|
+
// Fallback to scope-based lookup for dynamic cases
|
|
79
|
+
const binding = scope.getBinding(elementName);
|
|
80
|
+
if (!binding)
|
|
81
|
+
return { type: 'unknown' };
|
|
82
|
+
// Use the fast analysis methods
|
|
83
|
+
const result = this.analyzeBindingFast(binding, currentFileName);
|
|
84
|
+
// Resolve any lazy references (imports, local references)
|
|
85
|
+
return this.resolveLazyDefinition(result);
|
|
86
|
+
}
|
|
87
|
+
// Analyze all relevant bindings in a file at once
|
|
88
|
+
analyzeFileBindings(filePath) {
|
|
89
|
+
const fileBinding = ImportDiscovery.fileBindingsCache.get(filePath);
|
|
90
|
+
if (fileBinding)
|
|
91
|
+
return fileBinding;
|
|
92
|
+
if (!this.fs.existsSync(filePath)) {
|
|
93
|
+
ImportDiscovery.fileBindingsCache.set(filePath, ImportDiscovery.EMPTY_BINDINGS);
|
|
94
|
+
return ImportDiscovery.EMPTY_BINDINGS;
|
|
95
|
+
}
|
|
96
|
+
const fileContent = this.fs.readFileSync(filePath, 'utf-8');
|
|
97
|
+
let ast;
|
|
98
|
+
try {
|
|
99
|
+
ast = babel.parseSync(fileContent, {
|
|
100
|
+
filename: filePath,
|
|
101
|
+
parserOpts: {
|
|
102
|
+
plugins: babelPlugins,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
// Failed to parse, cache empty result
|
|
108
|
+
ImportDiscovery.fileBindingsCache.set(filePath, ImportDiscovery.EMPTY_BINDINGS);
|
|
109
|
+
return ImportDiscovery.EMPTY_BINDINGS;
|
|
110
|
+
}
|
|
111
|
+
let programPath = undefined;
|
|
112
|
+
traverse(ast, { Program(path) { programPath = path; path.stop(); } });
|
|
113
|
+
const bindings = new Map();
|
|
114
|
+
// 1. Analyze all relevant local bindings at once
|
|
115
|
+
this.analyzeFileDeclarations(programPath, filePath, bindings);
|
|
116
|
+
// 2. Analyze all exports at once
|
|
117
|
+
this.analyzeFileExports(programPath, filePath, bindings);
|
|
118
|
+
const readonlyBindings = new Map(bindings);
|
|
119
|
+
ImportDiscovery.fileBindingsCache.set(filePath, readonlyBindings);
|
|
120
|
+
return readonlyBindings;
|
|
121
|
+
}
|
|
122
|
+
// Resolve lazy references in the definition
|
|
123
|
+
analyzeFileDeclarations(programPath, filePath, bindings) {
|
|
124
|
+
for (const [name, binding] of Object.entries(programPath.scope.bindings)) {
|
|
125
|
+
// Skip function/import bindings that are clearly not component-related
|
|
126
|
+
if (binding.kind === 'module' || binding.kind === 'hoisted') {
|
|
127
|
+
if (!isComponent(name))
|
|
128
|
+
continue;
|
|
64
129
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
130
|
+
const definition = this.analyzeBindingFast(binding, filePath);
|
|
131
|
+
if (definition.type !== 'unknown')
|
|
132
|
+
bindings.set(name, definition);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Fast binding analysis without deep traversal
|
|
136
|
+
analyzeBindingFast(binding, filePath) {
|
|
137
|
+
// Handle imports
|
|
138
|
+
if (binding.kind === 'module' && t.isImportSpecifier(binding.path.node))
|
|
139
|
+
return this.analyzeImportBinding(binding, filePath);
|
|
140
|
+
// Handle local variables
|
|
141
|
+
if (binding.kind === 'const' || binding.kind === 'let' || binding.kind === 'var')
|
|
142
|
+
return this.analyzeLocalBinding(binding, filePath);
|
|
143
|
+
return { type: 'unknown' };
|
|
144
|
+
}
|
|
145
|
+
// Analyze import without deep file traversal
|
|
146
|
+
analyzeImportBinding(binding, currentFileName) {
|
|
147
|
+
const importDeclaration = binding.path.parent;
|
|
148
|
+
if (!t.isImportDeclaration(importDeclaration))
|
|
149
|
+
return { type: 'unknown' };
|
|
150
|
+
const importSpecifier = binding.path.node;
|
|
151
|
+
if (!t.isImportSpecifier(importSpecifier))
|
|
152
|
+
return { type: 'unknown' };
|
|
153
|
+
const originalExportedName = t.isIdentifier(importSpecifier.imported)
|
|
154
|
+
? importSpecifier.imported.name
|
|
155
|
+
: importSpecifier.imported.value;
|
|
156
|
+
const importSource = importDeclaration.source.value;
|
|
157
|
+
const currentDir = dirname(currentFileName);
|
|
158
|
+
const resolvedResult = this.resolver.sync(currentDir, importSource);
|
|
159
|
+
const resolvedPath = resolvedResult.path;
|
|
160
|
+
if (!resolvedPath)
|
|
161
|
+
return { type: 'unknown' };
|
|
162
|
+
// Instead of deep traversal, just mark as import and resolve lazily
|
|
163
|
+
return {
|
|
164
|
+
type: 'import',
|
|
165
|
+
source: importSource,
|
|
166
|
+
originalName: originalExportedName,
|
|
167
|
+
localName: binding.identifier.name,
|
|
168
|
+
// Store resolved path for later lookup
|
|
169
|
+
resolvedPath: resolvedPath,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// Analyze local binding without recursion
|
|
173
|
+
analyzeLocalBinding(binding, filePath) {
|
|
174
|
+
if (!t.isVariableDeclarator(binding.path.node))
|
|
175
|
+
return { type: 'local-variable' };
|
|
76
176
|
const declarator = binding.path.node;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (
|
|
177
|
+
if (!declarator.init)
|
|
178
|
+
return { type: 'local-variable' };
|
|
179
|
+
// Check for toComponent/toTag calls
|
|
180
|
+
if (t.isCallExpression(declarator.init)) {
|
|
181
|
+
if (this.isToComponentOrTagCall(declarator.init, binding.path.scope)) {
|
|
82
182
|
return {
|
|
83
183
|
type: 'custom-element',
|
|
84
|
-
source:
|
|
85
|
-
callExpression:
|
|
184
|
+
source: filePath,
|
|
185
|
+
callExpression: declarator.init,
|
|
86
186
|
};
|
|
87
187
|
}
|
|
88
|
-
// Could be assigned to another function call - trace that too
|
|
89
|
-
//console.log('Local variable assigned to call expression:', callExpr.callee);
|
|
90
188
|
}
|
|
91
|
-
//
|
|
92
|
-
if (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
189
|
+
// For identifier assignments, store reference for later resolution
|
|
190
|
+
if (t.isIdentifier(declarator.init)) {
|
|
191
|
+
return {
|
|
192
|
+
type: 'local-variable',
|
|
193
|
+
source: filePath,
|
|
194
|
+
referencedName: declarator.init.name,
|
|
195
|
+
};
|
|
97
196
|
}
|
|
197
|
+
return { type: 'local-variable' };
|
|
98
198
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// Resolve and trace the re-exported file
|
|
123
|
-
const reExportSource = node.source.value;
|
|
124
|
-
const currentDir = dirname(currentFileName);
|
|
125
|
-
const resolvedPath = resolve(currentDir, reExportSource);
|
|
126
|
-
if (!existsSync(resolvedPath))
|
|
127
|
-
continue; // Skip if file doesn't exist
|
|
128
|
-
//console.log('Tracing re-export to:', resolvedPath);
|
|
129
|
-
result = traceReExport(originalName, resolvedPath, visitedFiles);
|
|
130
|
-
// Stop traversing once we find the match
|
|
131
|
-
return exportPath.stop();
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
});
|
|
135
|
-
return result;
|
|
136
|
-
}
|
|
137
|
-
function traceReExport(elementName, filePath, visitedFiles) {
|
|
138
|
-
// Use cached parsing
|
|
139
|
-
const ast = getOrParseFile(filePath);
|
|
140
|
-
if (!ast)
|
|
141
|
-
return { type: 'unknown' };
|
|
142
|
-
let result = { type: 'unknown' };
|
|
143
|
-
traverse(ast, {
|
|
144
|
-
Program(programPath) {
|
|
145
|
-
// Continue tracing in the re-exported file
|
|
146
|
-
result = traceElementDefinition(elementName, programPath.scope, filePath, visitedFiles);
|
|
147
|
-
},
|
|
148
|
-
});
|
|
149
|
-
return result;
|
|
150
|
-
}
|
|
151
|
-
// Helper function to get or parse a file with caching
|
|
152
|
-
function getOrParseFile(filePath) {
|
|
153
|
-
// Check cache first
|
|
154
|
-
if (fileCache.has(filePath)) {
|
|
155
|
-
//console.log('Using cached AST for:', filePath);
|
|
156
|
-
return fileCache.get(filePath);
|
|
199
|
+
// Helper function to check if a call expression is a toComponent/toTag call
|
|
200
|
+
// even if the function has been renamed through imports
|
|
201
|
+
isToComponentOrTagCall(callExpr, scope) {
|
|
202
|
+
if (!t.isIdentifier(callExpr.callee))
|
|
203
|
+
return false;
|
|
204
|
+
const functionName = callExpr.callee.name;
|
|
205
|
+
// Check direct names first (fast path)
|
|
206
|
+
if (functionName === 'toComponent' || functionName === 'toTag')
|
|
207
|
+
return true;
|
|
208
|
+
// Check if this identifier is bound to an import that originally was toComponent/toTag
|
|
209
|
+
const binding = scope.getBinding(functionName);
|
|
210
|
+
if (!binding || binding.kind !== 'module')
|
|
211
|
+
return false;
|
|
212
|
+
if (!t.isImportSpecifier(binding.path.node))
|
|
213
|
+
return false;
|
|
214
|
+
const importSpecifier = binding.path.node;
|
|
215
|
+
const originalImportedName = t.isIdentifier(importSpecifier.imported)
|
|
216
|
+
? importSpecifier.imported.name
|
|
217
|
+
: importSpecifier.imported.value;
|
|
218
|
+
// Check if the original imported name was toComponent or toTag
|
|
219
|
+
const isOriginallyToComponentOrTag = originalImportedName === 'toComponent'
|
|
220
|
+
|| originalImportedName === 'toTag';
|
|
221
|
+
return isOriginallyToComponentOrTag;
|
|
157
222
|
}
|
|
158
|
-
//
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
223
|
+
// Analyze all exports in one pass
|
|
224
|
+
analyzeFileExports(programPath, filePath, bindings) {
|
|
225
|
+
for (const statement of programPath.node.body) {
|
|
226
|
+
// Handle named exports: export { X } from './file' or export { X }
|
|
227
|
+
if (t.isExportNamedDeclaration(statement)) {
|
|
228
|
+
for (const specifier of statement.specifiers) {
|
|
229
|
+
if (!t.isExportSpecifier(specifier))
|
|
230
|
+
continue;
|
|
231
|
+
const exportedName = t.isIdentifier(specifier.exported)
|
|
232
|
+
? specifier.exported.name
|
|
233
|
+
: specifier.exported.value;
|
|
234
|
+
const localName = specifier.local.name;
|
|
235
|
+
if (!isComponent(exportedName))
|
|
236
|
+
continue;
|
|
237
|
+
// For re-exports with source
|
|
238
|
+
if (statement.source) {
|
|
239
|
+
const definition = {
|
|
240
|
+
type: 'import',
|
|
241
|
+
source: statement.source.value,
|
|
242
|
+
originalName: localName,
|
|
243
|
+
localName: exportedName,
|
|
244
|
+
};
|
|
245
|
+
bindings.set(exportedName, definition);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// For local exports, reference the local binding
|
|
249
|
+
const definition = {
|
|
250
|
+
type: 'local-variable',
|
|
251
|
+
source: filePath,
|
|
252
|
+
referencedName: localName,
|
|
253
|
+
localName: exportedName,
|
|
254
|
+
};
|
|
255
|
+
bindings.set(exportedName, definition);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Handle wildcard exports: export * from './file'
|
|
260
|
+
else if (t.isExportAllDeclaration(statement) && statement.source) {
|
|
261
|
+
// For wildcard exports, we need to mark this as a wildcard re-export
|
|
262
|
+
// The actual resolution will happen in resolveLazyDefinition
|
|
263
|
+
const definition = {
|
|
264
|
+
type: 'wildcard-export',
|
|
265
|
+
source: statement.source.value,
|
|
266
|
+
};
|
|
267
|
+
// Store with a special key to indicate wildcard export
|
|
268
|
+
bindings.set('*', definition);
|
|
269
|
+
}
|
|
173
270
|
}
|
|
174
271
|
}
|
|
175
|
-
|
|
176
|
-
|
|
272
|
+
// Resolve lazy definitions (imports, references)
|
|
273
|
+
resolveLazyDefinition(definition) {
|
|
274
|
+
if (definition.type === 'import' && definition.resolvedPath && definition.originalName) {
|
|
275
|
+
if (definition.source) {
|
|
276
|
+
const currentFile = definition.source;
|
|
277
|
+
const dependsOn = definition.resolvedPath;
|
|
278
|
+
let fileDependencies = ImportDiscovery.fileDependencies.get(currentFile);
|
|
279
|
+
if (!fileDependencies) {
|
|
280
|
+
fileDependencies = new Set();
|
|
281
|
+
ImportDiscovery.fileDependencies.set(currentFile, fileDependencies);
|
|
282
|
+
}
|
|
283
|
+
fileDependencies.add(dependsOn);
|
|
284
|
+
}
|
|
285
|
+
// Recursively analyze the imported file
|
|
286
|
+
const importedBindings = this.analyzeFileBindings(definition.resolvedPath);
|
|
287
|
+
const binding = importedBindings.get(definition.originalName);
|
|
288
|
+
if (binding) // Recursively resolve the found definition
|
|
289
|
+
return this.resolveLazyDefinition(binding);
|
|
290
|
+
// If specific export not found, check for wildcard exports
|
|
291
|
+
const wildcardExport = importedBindings.get('*');
|
|
292
|
+
if (wildcardExport && wildcardExport.type === 'wildcard-export') {
|
|
293
|
+
// Resolve the wildcard export by looking in the target file
|
|
294
|
+
const currentDir = this.fs.dirname(definition.resolvedPath);
|
|
295
|
+
const resolvedResult = this.resolver.sync(currentDir, wildcardExport.source);
|
|
296
|
+
const resolvedPath = resolvedResult.path;
|
|
297
|
+
if (resolvedPath) {
|
|
298
|
+
// Create a new import definition for the wildcard target
|
|
299
|
+
const wildcardTargetDefinition = {
|
|
300
|
+
type: 'import',
|
|
301
|
+
source: wildcardExport.source,
|
|
302
|
+
originalName: definition.originalName,
|
|
303
|
+
localName: definition.localName,
|
|
304
|
+
resolvedPath: resolvedPath,
|
|
305
|
+
};
|
|
306
|
+
return this.resolveLazyDefinition(wildcardTargetDefinition);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (definition.type === 'local-variable' && definition.referencedName && definition.source) {
|
|
311
|
+
// Resolve local references
|
|
312
|
+
const fileBindings = this.analyzeFileBindings(definition.source);
|
|
313
|
+
const binding = fileBindings.get(definition.referencedName);
|
|
314
|
+
if (binding)
|
|
315
|
+
return this.resolveLazyDefinition(binding);
|
|
316
|
+
}
|
|
317
|
+
return definition;
|
|
177
318
|
}
|
|
178
319
|
}
|
|
320
|
+
let discovery;
|
|
321
|
+
export const findElementDefinition = (...args) => {
|
|
322
|
+
discovery ??= new ImportDiscovery();
|
|
323
|
+
return discovery.findElementDefinition(...args);
|
|
324
|
+
};
|
|
179
325
|
//# sourceMappingURL=import-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-discovery.js","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import-discovery.js","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAwBlD,MAAM,OAAO,eAAe;aAEX,oBAAe,GAAkD,IAAI,GAAG,EAAE,AAA3D,CAA4D;aAC3E,sBAAiB,GAAwD,IAAI,GAAG,EAAE,AAAjE,CAAkE;aACnF,qBAAgB,GAA8B,IAAI,GAAG,EAAE,AAAvC,CAAwC;aACxD,mBAAc,GAA8C,IAAI,GAAG,EAAE,AAAvD,CAAwD;IAEtF,MAAM,CAAC,8BAA8B,CAAC,eAAuB;QAC5D,gCAAgC;QAChC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACxD,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEzD,uEAAuE;QACvE,KAAK,MAAM,CAAE,IAAI,EAAE,YAAY,CAAE,IAAI,eAAe,CAAC,gBAAgB,EAAE,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;gBACrC,SAAS;YAEV,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAOD;QALmB,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QAMxD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAQ,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,EAAE,GAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,qBAAqB,CACpB,IAAmC;QAEnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM;gBACT,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAErF,+BAA+B;QAC/B,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;eACjE,eAAe,CAAC,eAAe;iBAChC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC;iBACxB,GAAG,CAAC,QAAQ,CAAE,CAAC;QAElB,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,2CAA2C;IACjC,sBAAsB,CAC/B,WAAmB,EACnB,KAAY,EACZ,eAAuB;QAEvB,MAAM,QAAQ,GAAG,GAAI,eAAgB,IAAK,WAAY,EAAE,CAAC;QAEzD,6BAA6B;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAE/D,sDAAsD;QACtD,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YAElD,8BAA8B;YAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,mDAAmD;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAEjE,0DAA0D;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,kDAAkD;IACxC,mBAAmB,CAAC,QAAgB;QAC7C,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,WAAW;YACd,OAAO,WAAW,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;YAEhF,OAAO,eAAe,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,GAAW,CAAC;QAEhB,IAAI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;gBAClC,QAAQ,EAAI,QAAQ;gBACpB,UAAU,EAAE;oBACX,OAAO,EAAE,YAAY;iBACrB;aACD,CAAE,CAAC;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACd,sCAAsC;YACtC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;YAEhF,OAAO,eAAe,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,IAAI,WAAW,GAAwC,SAAgB,CAAC;QACxE,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAmC,IAAI,GAAG,EAAE,CAAC;QAE3D,iDAAiD;QACjD,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE9D,iCAAiC;QACjC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAA2C,CAAC;QACrF,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAElE,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,4CAA4C;IAClC,uBAAuB,CAChC,WAAgD,EAChD,QAAgB,EAChB,QAAwC;QAExC,KAAK,MAAM,CAAE,IAAI,EAAE,OAAO,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5E,uEAAuE;YACvE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oBACrB,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;gBAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,+CAA+C;IACrC,kBAAkB,CAC3B,OAAgB,EAChB,QAAgB;QAEhB,iBAAiB;QACjB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACtE,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErD,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;YAC/E,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,6CAA6C;IACnC,oBAAoB,CAAC,OAAgB,EAAE,eAAuB;QACvE,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAElC,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;QAEzC,IAAI,CAAC,YAAY;YAChB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,oEAAoE;QACpE,OAAO;YACN,IAAI,EAAU,QAAQ;YACtB,MAAM,EAAQ,YAAY;YAC1B,YAAY,EAAE,oBAAoB;YAClC,SAAS,EAAK,OAAO,CAAC,UAAU,CAAC,IAAI;YACrC,uCAAuC;YACvC,YAAY,EAAE,YAAY;SAC1B,CAAC;IACH,CAAC;IAED,0CAA0C;IAChC,mBAAmB,CAAC,OAAgB,EAAE,QAAgB;QAC/D,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAGnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI;YACnB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAGnC,oCAAoC;QACpC,IAAI,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,OAAO;oBACN,IAAI,EAAY,gBAAgB;oBAChC,MAAM,EAAU,QAAQ;oBACxB,cAAc,EAAE,UAAU,CAAC,IAAI;iBAC/B,CAAC;YACH,CAAC;QACF,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO;gBACN,IAAI,EAAY,gBAAgB;gBAChC,MAAM,EAAU,QAAQ;gBACxB,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI;aACpC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAED,4EAA4E;IAC5E,wDAAwD;IAC9C,sBAAsB,CAC/B,QAA0B,EAC1B,KAAY;QAEZ,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnC,OAAO,KAAK,CAAC;QAEd,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAE1C,uCAAuC;QACvC,IAAI,YAAY,KAAK,aAAa,IAAI,YAAY,KAAK,OAAO;YAC7D,OAAO,IAAI,CAAC;QAEb,uFAAuF;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YACxC,OAAO,KAAK,CAAC;QAEd,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,OAAO,KAAK,CAAC;QAEd,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAElC,+DAA+D;QAC/D,MAAM,4BAA4B,GAChC,oBAAoB,KAAK,aAAa;eACpC,oBAAoB,KAAK,OAAO,CAAC;QAErC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,kCAAkC;IACxB,kBAAkB,CAC3B,WAAgD,EAChD,QAAgB,EAChB,QAAwC;QAExC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/C,mEAAmE;YACnE,IAAI,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;wBAClC,SAAS;oBAEV,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;wBACtD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;wBACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBAEvC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;wBAC7B,SAAS;oBAEV,6BAA6B;oBAC7B,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG;4BAClB,IAAI,EAAU,QAAiB;4BAC/B,MAAM,EAAQ,SAAS,CAAC,MAAM,CAAC,KAAK;4BACpC,YAAY,EAAE,SAAS;4BACvB,SAAS,EAAK,YAAY;yBAC1B,CAAC;wBACF,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC;yBACI,CAAC;wBACL,iDAAiD;wBACjD,MAAM,UAAU,GAAG;4BAClB,IAAI,EAAY,gBAAyB;4BACzC,MAAM,EAAU,QAAQ;4BACxB,cAAc,EAAE,SAAS;4BACzB,SAAS,EAAO,YAAY;yBAC5B,CAAC;wBACF,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC;gBACF,CAAC;YACF,CAAC;YACD,kDAAkD;iBAC7C,IAAI,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBAClE,qEAAqE;gBACrE,6DAA6D;gBAC7D,MAAM,UAAU,GAAG;oBAClB,IAAI,EAAI,iBAA0B;oBAClC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK;iBAC9B,CAAC;gBACF,uDAAuD;gBACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;IACF,CAAC;IAED,iDAAiD;IACvC,qBAAqB,CAAC,UAA6B;QAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;gBACtC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;gBAE1C,IAAI,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvB,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;oBACrC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBACrE,CAAC;gBAED,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YAED,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE9D,IAAI,OAAO,EAAE,2CAA2C;gBACvD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE5C,2DAA2D;YAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACjE,4DAA4D;gBAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,MAAO,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;gBAEzC,IAAI,YAAY,EAAE,CAAC;oBAClB,yDAAyD;oBACzD,MAAM,wBAAwB,GAAsB;wBACnD,IAAI,EAAU,QAAQ;wBACtB,MAAM,EAAQ,cAAc,CAAC,MAAM;wBACnC,YAAY,EAAE,UAAU,CAAC,YAAY;wBACrC,SAAS,EAAK,UAAU,CAAC,SAAS;wBAClC,YAAY,EAAE,YAAY;qBAC1B,CAAC;oBAEF,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;gBAC7D,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5F,2BAA2B;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAE5D,IAAI,OAAO;gBACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;;AAKF,IAAI,SAA0B,CAAC;AAC/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,GAAG,IAA0D,EACN,EAAE;IACzD,SAAS,KAAK,IAAI,eAAe,EAAE,CAAC;IAEpC,OAAO,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PluginPass } from '@babel/core';
|
|
2
2
|
import type { VisitNodeFunction } from '@babel/traverse';
|
|
3
|
-
import {
|
|
3
|
+
import type { Program } from '@babel/types';
|
|
4
4
|
export declare const preprocess: VisitNodeFunction<PluginPass, Program>;
|
|
5
5
|
//# sourceMappingURL=preprocess.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAqCxD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAE7D,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { isJSXElement, isJSXIdentifier } from '@babel/types';
|
|
2
2
|
import { isValidHTMLNesting } from 'validate-html-nesting';
|
|
3
3
|
import { isComponent } from './compiler-utils.js';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const preprocessVisitors = {
|
|
5
|
+
// From https://github.com/MananTank/babel-plugin-validate-jsx-nesting/blob/main/src/index.js
|
|
6
|
+
// Validates JSX nesting based on HTML5 rules.
|
|
6
7
|
JSXElement(path) {
|
|
7
8
|
const elName = path.node.openingElement.name;
|
|
8
9
|
const parent = path.parent;
|
|
@@ -22,7 +23,7 @@ const JSXValidator = {
|
|
|
22
23
|
}
|
|
23
24
|
},
|
|
24
25
|
};
|
|
25
|
-
export const preprocess = (path
|
|
26
|
-
path.traverse(
|
|
26
|
+
export const preprocess = (path) => {
|
|
27
|
+
path.traverse(preprocessVisitors);
|
|
27
28
|
};
|
|
28
29
|
//# sourceMappingURL=preprocess.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,kBAAkB,GAAG;IAC1B,6FAA6F;IAC7F,8CAA8C;IAC9C,UAAU,CAAC,IAA0B;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACpD,OAAO;QAER,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,WAAW,CAAC,SAAS,CAAC;YACzB,OAAO;QAER,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YACjC,OAAO;QAER,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,mBAAmB,CAC9B,iBAAkB,SAAU,yBAA0B,eAAgB,GAAG,CACxE,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAA2C,CAAC,IAAI,EAAQ,EAAE;IAChF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACnC,CAAC,CAAC"}
|
|
@@ -33,14 +33,14 @@ export class TemplateTranspiler extends JSXTranspiler {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
context.tagName = getJSXElementName(context.path.node);
|
|
36
|
-
if (isJSXCustomElementComponent(context.
|
|
36
|
+
if (isJSXCustomElementComponent(context.path)) {
|
|
37
37
|
this.openingTag(context);
|
|
38
38
|
this.attributes(context);
|
|
39
39
|
this.children(context);
|
|
40
40
|
this.closingTag(context);
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
if (isJSXFunctionElementComponent(context.
|
|
43
|
+
if (isJSXFunctionElementComponent(context.path)) {
|
|
44
44
|
// Process attributes and children into a props object
|
|
45
45
|
if (!context.isInitialElement)
|
|
46
46
|
return this.functionalComponent(context);
|
|
@@ -54,7 +54,7 @@ export class TemplateTranspiler extends JSXTranspiler {
|
|
|
54
54
|
this.closingTag(context);
|
|
55
55
|
}
|
|
56
56
|
openingTag(context) {
|
|
57
|
-
if (isJSXCustomElementComponent(context.
|
|
57
|
+
if (isJSXCustomElementComponent(context.path)) {
|
|
58
58
|
const literalIdentifier = Ensure.componentLiteral(context.tagName, COMPONENT_LITERAL_PREFIX + context.tagName, context.path, context.program);
|
|
59
59
|
context.literalName = literalIdentifier.name;
|
|
60
60
|
context.builder.addText('<');
|
|
@@ -283,7 +283,7 @@ export class CompiledTranspiler extends JSXTranspiler {
|
|
|
283
283
|
return;
|
|
284
284
|
}
|
|
285
285
|
context.tagName = getJSXElementName(context.path.node);
|
|
286
|
-
if (isJSXFunctionElementComponent(context.
|
|
286
|
+
if (isJSXFunctionElementComponent(context.path)) {
|
|
287
287
|
// Process attributes and children into a props object
|
|
288
288
|
if (!context.isInitialElement)
|
|
289
289
|
return this.functionalComponent(context);
|