@arcmantle/lit-jsx 1.0.4 → 1.0.6

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.
@@ -68,7 +68,6 @@ export declare const ERROR_MESSAGES: {
68
68
  readonly ONLY_STRING_LITERALS: "Only string literals are supported for JSX attributes.";
69
69
  readonly INVALID_DIRECTIVE_VALUE: "Invalid value in directive expression.";
70
70
  readonly UNKNOWN_JSX_ATTRIBUTE_TYPE: "Unknown JSX attribute type found.";
71
- readonly EMPTY_EXPRESSION: "Empty expression found in JSX.";
72
71
  readonly IDENTIFIER_NOT_FOUND: (name: string) => string;
73
72
  readonly TAG_NAME_NOT_FOUND: (tagName: string) => string;
74
73
  readonly NO_STATEMENT_PATH: (tagName: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,eAAe,EAAE,MAAM,EAA0B,CAAC;AAC/D,eAAO,MAAM,YAAY,EAAE,MAAM,EAAO,CAAC;AACzC,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AACX,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,WAAW;;;CAGd,CAAC;AACX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AACX,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBV,CAAC;AACX,eAAO,MAAM,cAAc;;;;;;;;;0CASS,MAAM,KAAG,MAAM;2CACZ,MAAM,KAAG,MAAM;0CACf,MAAM,KAAG,MAAM;2CAClB,MAAM,KAAG,MAAM;uCACf,MAAM,KAAG,MAAM;CACzC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,eAAe,EAAE,MAAM,EAA0B,CAAC;AAC/D,eAAO,MAAM,YAAY,EAAE,MAAM,EAAO,CAAC;AACzC,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AACX,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,WAAW;;;CAGd,CAAC;AACX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AACX,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBV,CAAC;AACX,eAAO,MAAM,cAAc;;;;;;;;0CAQS,MAAM,KAAG,MAAM;2CACZ,MAAM,KAAG,MAAM;0CACf,MAAM,KAAG,MAAM;2CAClB,MAAM,KAAG,MAAM;uCACf,MAAM,KAAG,MAAM;CACzC,CAAC"}
@@ -69,7 +69,6 @@ export const ERROR_MESSAGES = {
69
69
  ONLY_STRING_LITERALS: 'Only string literals are supported for JSX attributes.',
70
70
  INVALID_DIRECTIVE_VALUE: 'Invalid value in directive expression.',
71
71
  UNKNOWN_JSX_ATTRIBUTE_TYPE: 'Unknown JSX attribute type found.',
72
- EMPTY_EXPRESSION: 'Empty expression found in JSX.',
73
72
  IDENTIFIER_NOT_FOUND: (name) => `Identifier '${name}' not found in any accessible scope`,
74
73
  TAG_NAME_NOT_FOUND: (tagName) => `Tag name '${tagName}' not found in any accessible scope`,
75
74
  NO_STATEMENT_PATH: (tagName) => `Could not find statement-level path for tagName: ${tagName}`,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAa,CAAE,KAAK,EAAE,UAAU,CAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAa,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,GAAG,EAAW,KAAK;IACnB,UAAU,EAAI,WAAW;IACzB,UAAU,EAAI,WAAW;IACzB,SAAS,EAAK,WAAW;IACzB,YAAY,EAAE,KAAK;CACV,CAAC;AACX,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACH,CAAC;AACX,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,IAAI,EAAkB,MAAM;IAC5B,WAAW,EAAW,YAAY;IAClC,GAAG,EAAmB,KAAK;IAC3B,UAAU,EAAY,WAAW;IACjC,MAAM,EAAgB,QAAQ;IAC9B,aAAa,EAAS,cAAc;IACpC,aAAa,EAAS,cAAc;IACpC,SAAS,EAAa,UAAU;IAChC,SAAS,EAAa,UAAU;IAChC,GAAG,EAAmB,KAAK;IAC3B,IAAI,EAAkB,SAAS;IAC/B,WAAW,EAAW,eAAe;IACrC,oBAAoB,EAAE,MAAM;IAC5B,YAAY,EAAU,aAAa;IACnC,cAAc,EAAQ,eAAe;IACrC,aAAa,EAAS,cAAc;IACpC,YAAY,EAAU,aAAa;IACnC,UAAU,EAAY,WAAW;IACjC,UAAU,EAAY,WAAW;CACxB,CAAC;AACX,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,IAAI,EAAe,UAAU;IAC7B,QAAQ,EAAW,KAAK;IACxB,WAAW,EAAQ,oBAAoB;IACvC,eAAe,EAAI,oBAAoB;IACvC,GAAG,EAAgB,4BAA4B;IAC/C,OAAO,EAAY,uBAAuB;IAC1C,MAAM,EAAa,+BAA+B;IAClD,UAAU,EAAS,0BAA0B;IAC7C,UAAU,EAAS,oBAAoB;IACvC,cAAc,EAAK,oBAAoB;IACvC,aAAa,EAAM,oBAAoB;IACvC,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAM,oBAAoB;IACvC,iBAAiB,EAAE,oBAAoB;IACvC,GAAG,EAAgB,4BAA4B;IAC/C,OAAO,EAAY,uBAAuB;IAC1C,SAAS,EAAU,kCAAkC;IACrD,aAAa,EAAM,6BAA6B;IAChD,SAAS,EAAU,kCAAkC;IACrD,aAAa,EAAM,6BAA6B;IAChD,IAAI,EAAe,oBAAoB;IACvC,WAAW,EAAQ,oBAAoB;IACvC,OAAO,EAAY,oBAAoB;CAC9B,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,uBAAuB,EAAK,yEAAyE;IACrG,gBAAgB,EAAY,0CAA0C;IACtE,mBAAmB,EAAS,4BAA4B;IACxD,oBAAoB,EAAQ,6BAA6B;IACzD,oBAAoB,EAAQ,wDAAwD;IACpF,uBAAuB,EAAK,wCAAwC;IACpE,0BAA0B,EAAE,mCAAmC;IAC/D,gBAAgB,EAAY,gCAAgC;IAC5D,oBAAoB,EAAQ,CAAC,IAAY,EAAU,EAAE,CAAC,eAAgB,IAAK,qCAAqC;IAChH,kBAAkB,EAAU,CAAC,OAAe,EAAU,EAAE,CAAC,aAAc,OAAQ,qCAAqC;IACpH,iBAAiB,EAAW,CAAC,OAAe,EAAU,EAAE,CAAC,oDAAqD,OAAQ,EAAE;IACxH,qBAAqB,EAAO,CAAC,IAAY,EAAU,EAAE,CAAC,0BAA2B,IAAK,EAAE;IACxF,iBAAiB,EAAW,CAAC,IAAY,EAAU,EAAE,CAAC,sBAAuB,IAAK,EAAE;CAC3E,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as babel from '@babel/core';
2
+ import { NodePath } from '@babel/traverse';
3
+ import * as t from '@babel/types';
4
+ export type BabelPlugins = NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']>;
5
+ export interface ElementDefinition {
6
+ type: 'custom-element' | 'import' | 'local-variable' | 'unknown';
7
+ source?: string;
8
+ originalName?: string;
9
+ callExpression?: t.CallExpression;
10
+ }
11
+ export declare function findElementDefinition(path: NodePath<t.JSXOpeningElement>): ElementDefinition;
12
+ //# sourceMappingURL=import-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-discovery.d.ts","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAiB,EAAgB,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAOlC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAIrG,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAa,gBAAgB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC5E,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,YAAY,CAAC,EAAI,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC;CAClC;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAiB5F"}
@@ -0,0 +1,179 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import * as babel from '@babel/core';
4
+ import traverse, { Binding, Hub, NodePath, Scope } from '@babel/traverse';
5
+ import * as t from '@babel/types';
6
+ // Cache for parsed files to avoid re-parsing
7
+ const fileCache = new Map();
8
+ // Helper function to find the definition of a JSX element
9
+ export function findElementDefinition(path) {
10
+ const elementName = path.node.name;
11
+ const hub = path.hub;
12
+ const currentFileName = hub.file.opts.filename;
13
+ // Only handle JSXIdentifier (not JSXMemberExpression or JSXNamespacedName)
14
+ if (!t.isJSXIdentifier(elementName))
15
+ return { type: 'unknown' };
16
+ const elementNameString = elementName.name;
17
+ //console.log('Tracing element:', elementNameString);
18
+ // Start tracing with the current file context
19
+ return traceElementDefinition(elementNameString, path.scope, currentFileName);
20
+ }
21
+ // Core recursive tracing function
22
+ function traceElementDefinition(elementName, scope, currentFileName, visitedFiles = new Set()) {
23
+ // Prevent infinite recursion
24
+ if (visitedFiles.has(`${currentFileName}:${elementName}`))
25
+ return { type: 'unknown' };
26
+ visitedFiles.add(`${currentFileName}:${elementName}`);
27
+ // Check if there's a binding for this identifier in the current scope
28
+ const binding = scope.getBinding(elementName);
29
+ if (!binding) {
30
+ //console.log('No binding found for:', elementName);
31
+ return { type: 'unknown' };
32
+ }
33
+ //console.log('Binding kind:', binding.kind, 'type:', binding.path.type);
34
+ // Handle imports
35
+ if (binding.kind === 'module' && t.isImportSpecifier(binding.path.node))
36
+ return traceImport(binding, currentFileName, elementName, visitedFiles);
37
+ // Handle local variables/constants
38
+ if (binding.kind === 'const' || binding.kind === 'let' || binding.kind === 'var')
39
+ return traceLocalVariable(binding, currentFileName, visitedFiles);
40
+ return { type: 'unknown' };
41
+ }
42
+ function traceImport(binding, currentFileName, elementName, visitedFiles) {
43
+ const importDeclaration = binding.path.parent;
44
+ if (!t.isImportDeclaration(importDeclaration))
45
+ return { type: 'unknown' };
46
+ const importSource = importDeclaration.source.value;
47
+ const currentDir = dirname(currentFileName);
48
+ const resolvedPath = resolve(currentDir, importSource);
49
+ //console.log('Tracing import from:', importSource);
50
+ //console.log('Resolved to:', resolvedPath);
51
+ // Use cached parsing
52
+ const ast = getOrParseFile(resolvedPath);
53
+ if (!ast)
54
+ return { type: 'unknown' };
55
+ let result = { type: 'unknown' };
56
+ traverse(ast, {
57
+ Program(programPath) {
58
+ // First try to find a local binding (normal export)
59
+ const localBinding = programPath.scope.getBinding(elementName);
60
+ if (localBinding) {
61
+ //console.log('Found local binding in imported file');
62
+ result = traceElementDefinition(elementName, programPath.scope, resolvedPath, visitedFiles);
63
+ return;
64
+ }
65
+ // If no local binding found, check for re-exports
66
+ //console.log('No local binding, checking for re-exports...');
67
+ result = checkForReExports(programPath, elementName, resolvedPath, visitedFiles);
68
+ },
69
+ });
70
+ return result;
71
+ }
72
+ function traceLocalVariable(binding, currentFileName, visitedFiles) {
73
+ //console.log('Tracing local variable:', binding.kind, binding.path.type);
74
+ // Check if it's a variable declarator (const/let/var)
75
+ if (t.isVariableDeclarator(binding.path.node)) {
76
+ const declarator = binding.path.node;
77
+ // Check if it's assigned to a call expression
78
+ if (declarator.init && t.isCallExpression(declarator.init)) {
79
+ const callExpr = declarator.init;
80
+ // Check if it's a toJSX call
81
+ if (t.isIdentifier(callExpr.callee) && callExpr.callee.name === 'toJSX') {
82
+ return {
83
+ type: 'custom-element',
84
+ source: currentFileName,
85
+ callExpression: callExpr,
86
+ };
87
+ }
88
+ // Could be assigned to another function call - trace that too
89
+ //console.log('Local variable assigned to call expression:', callExpr.callee);
90
+ }
91
+ // Check if it's assigned to an identifier (another variable)
92
+ if (declarator.init && t.isIdentifier(declarator.init)) {
93
+ const assignedIdentifier = declarator.init.name;
94
+ //console.log('Local variable assigned to identifier:', assignedIdentifier);
95
+ // Recursively trace this identifier in the same scope
96
+ return traceElementDefinition(assignedIdentifier, binding.path.scope, currentFileName, visitedFiles);
97
+ }
98
+ }
99
+ return { type: 'local-variable' };
100
+ }
101
+ function checkForReExports(programPath, elementName, currentFileName, visitedFiles) {
102
+ let result = { type: 'unknown' };
103
+ // Check all export declarations for re-exports
104
+ programPath.traverse({
105
+ ExportNamedDeclaration(exportPath) {
106
+ const node = exportPath.node;
107
+ if (!node.source || !node.specifiers)
108
+ return; // Skip if no source or specifiers
109
+ // Handle re-exports: export { X } from './file'
110
+ //console.log('Found re-export from:', node.source.value);
111
+ for (const specifier of node.specifiers) {
112
+ if (!t.isExportSpecifier(specifier))
113
+ continue; // Only handle export specifiers
114
+ const exportedName = t.isIdentifier(specifier.exported)
115
+ ? specifier.exported.name
116
+ : specifier.exported.value;
117
+ // Check if this re-export matches our element name
118
+ if (exportedName !== elementName)
119
+ continue;
120
+ const originalName = specifier.local.name;
121
+ //console.log(`Found re-export: ${ originalName } as ${ exportedName }`);
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);
157
+ }
158
+ // File not in cache, parse it
159
+ if (!existsSync(filePath))
160
+ return;
161
+ const fileContent = readFileSync(filePath, 'utf-8');
162
+ try {
163
+ const ast = babel.parseSync(fileContent, {
164
+ filename: filePath,
165
+ parserOpts: {
166
+ plugins: ['jsx', 'typescript'],
167
+ },
168
+ });
169
+ if (ast) {
170
+ //console.log('Parsed and cached:', filePath);
171
+ fileCache.set(filePath, ast);
172
+ return ast;
173
+ }
174
+ }
175
+ catch (error) {
176
+ console.log('Failed to parse file:', filePath, error);
177
+ }
178
+ }
179
+ //# sourceMappingURL=import-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-discovery.js","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"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"}
@@ -323,7 +323,7 @@ export class CompiledTranspiler extends JSXTranspiler {
323
323
  }
324
324
  else if (t.isJSXExpressionContainer(child)) {
325
325
  if (t.isJSXEmptyExpression(child.expression))
326
- throw new Error(ERROR_MESSAGES.EMPTY_EXPRESSION);
326
+ continue;
327
327
  context.builder.addText('<?>');
328
328
  context.builder.addValue(child.expression);
329
329
  context.builder.addPart(CreateCompiledPart.child(partIndex));
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/compiler/transpiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/compiler/transpiler.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,8 @@
27
27
  export declare const toJSX: <T extends {
28
28
  new (...args: any): any;
29
29
  tagName: string;
30
- }>(element: T) => (props: JSX.JSXProps<InstanceType<T>>) => string;
30
+ }>(element: T) => ToJSX<InstanceType<T>>;
31
+ export type ToJSX<T extends object> = (props: JSX.JSXProps<T>) => string;
31
32
  /**
32
33
  * Creates a dynamic tag name object that can be used with jsx-lit's Component syntax.
33
34
  * This function is required for dynamic tag names to compile to static literals.
@@ -1 +1 @@
1
- {"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE,EAC3E,SAAS,CAAC,KACR,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,MAS5C,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC1E,KAAK,CAAC,KACJ;IAAE,GAAG,EAAE,CAAC,CAAC;CAEX,CAAC"}
1
+ {"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE,EAC3E,SAAS,CAAC,KACR,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAYvB,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AAGzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC1E,KAAK,CAAC,KACJ;IAAE,GAAG,EAAE,CAAC,CAAC;CAEX,CAAC"}
@@ -25,6 +25,8 @@
25
25
  * ```
26
26
  */
27
27
  export const toJSX = (element) => {
28
+ if (!element.tagName)
29
+ throw new Error('Element must have a static tagName property');
28
30
  queueMicrotask(() => {
29
31
  if ('register' in element && typeof element.register === 'function')
30
32
  element.register();
@@ -1 +1 @@
1
- {"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,OAAU,EACyC,EAAE;IACrD,cAAc,CAAC,GAAG,EAAE;QACnB,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAClE,OAAO,CAAC,QAAQ,EAAE,CAAC;aACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;YAC5C,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAc,CAAC;AAC/B,CAAC,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,GAAM,EACQ,EAAE;IAChB,OAAO,EAAE,GAAG,EAAS,CAAC;AACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../../src/runtime/type-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,OAAU,EACe,EAAE;IAC3B,IAAI,CAAC,OAAO,CAAC,OAAO;QACnB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAEhE,cAAc,CAAC,GAAG,EAAE;QACnB,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAClE,OAAO,CAAC,QAAQ,EAAE,CAAC;aACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;YAC5C,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAc,CAAC;AAC/B,CAAC,CAAC;AAKF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,GAAM,EACQ,EAAE;IAChB,OAAO,EAAE,GAAG,EAAS,CAAC;AACvB,CAAC,CAAC"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/arcmantle/lit-jsx.git"
11
11
  },
12
- "version": "1.0.4",
12
+ "version": "1.0.6",
13
13
  "files": [
14
14
  "dist",
15
15
  "src"
@@ -69,7 +69,6 @@ export const ERROR_MESSAGES = {
69
69
  ONLY_STRING_LITERALS: 'Only string literals are supported for JSX attributes.',
70
70
  INVALID_DIRECTIVE_VALUE: 'Invalid value in directive expression.',
71
71
  UNKNOWN_JSX_ATTRIBUTE_TYPE: 'Unknown JSX attribute type found.',
72
- EMPTY_EXPRESSION: 'Empty expression found in JSX.',
73
72
  IDENTIFIER_NOT_FOUND: (name: string): string => `Identifier '${ name }' not found in any accessible scope`,
74
73
  TAG_NAME_NOT_FOUND: (tagName: string): string => `Tag name '${ tagName }' not found in any accessible scope`,
75
74
  NO_STATEMENT_PATH: (tagName: string): string => `Could not find statement-level path for tagName: ${ tagName }`,
@@ -0,0 +1,281 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+
4
+ import * as babel from '@babel/core';
5
+ import traverse, { Binding, Hub, NodePath, Scope } from '@babel/traverse';
6
+ import * as t from '@babel/types';
7
+
8
+
9
+ // Cache for parsed files to avoid re-parsing
10
+ const fileCache: Map<string, t.File> = new Map();
11
+
12
+
13
+ export type BabelPlugins = NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']>;
14
+
15
+
16
+ // Types for our discovery results
17
+ export interface ElementDefinition {
18
+ type: 'custom-element' | 'import' | 'local-variable' | 'unknown';
19
+ source?: string; // file path for imports
20
+ originalName?: string; // for imports/re-exports
21
+ callExpression?: t.CallExpression; // for toJSX calls
22
+ }
23
+
24
+
25
+ // Helper function to find the definition of a JSX element
26
+ export function findElementDefinition(path: NodePath<t.JSXOpeningElement>): ElementDefinition {
27
+ const elementName = path.node.name;
28
+
29
+ const hub = path.hub as Hub & { file: { opts: { filename: string; }; }; };
30
+
31
+ const currentFileName = hub.file.opts.filename;
32
+
33
+ // Only handle JSXIdentifier (not JSXMemberExpression or JSXNamespacedName)
34
+ if (!t.isJSXIdentifier(elementName))
35
+ return { type: 'unknown' };
36
+
37
+ const elementNameString = elementName.name;
38
+
39
+ //console.log('Tracing element:', elementNameString);
40
+
41
+ // Start tracing with the current file context
42
+ return traceElementDefinition(elementNameString, path.scope, currentFileName);
43
+ }
44
+
45
+ // Core recursive tracing function
46
+ function traceElementDefinition(
47
+ elementName: string,
48
+ scope: Scope,
49
+ currentFileName: string,
50
+ visitedFiles: Set<string> = new Set(),
51
+ ): ElementDefinition {
52
+ // Prevent infinite recursion
53
+ if (visitedFiles.has(`${ currentFileName }:${ elementName }`))
54
+ return { type: 'unknown' };
55
+
56
+ visitedFiles.add(`${ currentFileName }:${ elementName }`);
57
+
58
+ // Check if there's a binding for this identifier in the current scope
59
+ const binding = scope.getBinding(elementName);
60
+
61
+ if (!binding) {
62
+ //console.log('No binding found for:', elementName);
63
+
64
+ return { type: 'unknown' };
65
+ }
66
+
67
+ //console.log('Binding kind:', binding.kind, 'type:', binding.path.type);
68
+
69
+ // Handle imports
70
+ if (binding.kind === 'module' && t.isImportSpecifier(binding.path.node))
71
+ return traceImport(binding, currentFileName, elementName, visitedFiles);
72
+
73
+
74
+ // Handle local variables/constants
75
+ if (binding.kind === 'const' || binding.kind === 'let' || binding.kind === 'var')
76
+ return traceLocalVariable(binding, currentFileName, visitedFiles);
77
+
78
+
79
+ return { type: 'unknown' };
80
+ }
81
+
82
+ function traceImport(
83
+ binding: Binding,
84
+ currentFileName: string,
85
+ elementName: string,
86
+ visitedFiles: Set<string>,
87
+ ): ElementDefinition {
88
+ const importDeclaration = binding.path.parent;
89
+
90
+ if (!t.isImportDeclaration(importDeclaration))
91
+ return { type: 'unknown' };
92
+
93
+ const importSource = importDeclaration.source.value;
94
+ const currentDir = dirname(currentFileName);
95
+ const resolvedPath = resolve(currentDir, importSource);
96
+
97
+ //console.log('Tracing import from:', importSource);
98
+ //console.log('Resolved to:', resolvedPath);
99
+
100
+ // Use cached parsing
101
+ const ast = getOrParseFile(resolvedPath);
102
+ if (!ast)
103
+ return { type: 'unknown' };
104
+
105
+
106
+ let result: ElementDefinition = { type: 'unknown' };
107
+
108
+ traverse(ast, {
109
+ Program(programPath) {
110
+ // First try to find a local binding (normal export)
111
+ const localBinding = programPath.scope.getBinding(elementName);
112
+
113
+ if (localBinding) {
114
+ //console.log('Found local binding in imported file');
115
+ result = traceElementDefinition(elementName, programPath.scope, resolvedPath, visitedFiles);
116
+
117
+ return;
118
+ }
119
+
120
+ // If no local binding found, check for re-exports
121
+ //console.log('No local binding, checking for re-exports...');
122
+ result = checkForReExports(programPath, elementName, resolvedPath, visitedFiles);
123
+ },
124
+ });
125
+
126
+ return result;
127
+ }
128
+
129
+ function traceLocalVariable(
130
+ binding: Binding,
131
+ currentFileName: string,
132
+ visitedFiles: Set<string>,
133
+ ): ElementDefinition {
134
+ //console.log('Tracing local variable:', binding.kind, binding.path.type);
135
+
136
+ // Check if it's a variable declarator (const/let/var)
137
+ if (t.isVariableDeclarator(binding.path.node)) {
138
+ const declarator = binding.path.node;
139
+
140
+ // Check if it's assigned to a call expression
141
+ if (declarator.init && t.isCallExpression(declarator.init)) {
142
+ const callExpr = declarator.init;
143
+
144
+ // Check if it's a toJSX call
145
+ if (t.isIdentifier(callExpr.callee) && callExpr.callee.name === 'toJSX') {
146
+ return {
147
+ type: 'custom-element',
148
+ source: currentFileName,
149
+ callExpression: callExpr,
150
+ };
151
+ }
152
+
153
+ // Could be assigned to another function call - trace that too
154
+ //console.log('Local variable assigned to call expression:', callExpr.callee);
155
+ }
156
+
157
+ // Check if it's assigned to an identifier (another variable)
158
+ if (declarator.init && t.isIdentifier(declarator.init)) {
159
+ const assignedIdentifier = declarator.init.name;
160
+ //console.log('Local variable assigned to identifier:', assignedIdentifier);
161
+
162
+ // Recursively trace this identifier in the same scope
163
+ return traceElementDefinition(assignedIdentifier, binding.path.scope, currentFileName, visitedFiles);
164
+ }
165
+ }
166
+
167
+ return { type: 'local-variable' };
168
+ }
169
+
170
+ function checkForReExports(
171
+ programPath: babel.NodePath<babel.types.Program>,
172
+ elementName: string,
173
+ currentFileName: string,
174
+ visitedFiles: Set<string>,
175
+ ): ElementDefinition {
176
+ let result: ElementDefinition = { type: 'unknown' };
177
+
178
+ // Check all export declarations for re-exports
179
+ programPath.traverse({
180
+ ExportNamedDeclaration(exportPath) {
181
+ const node = exportPath.node;
182
+
183
+ if (!node.source || !node.specifiers)
184
+ return; // Skip if no source or specifiers
185
+
186
+ // Handle re-exports: export { X } from './file'
187
+ //console.log('Found re-export from:', node.source.value);
188
+
189
+ for (const specifier of node.specifiers) {
190
+ if (!t.isExportSpecifier(specifier))
191
+ continue; // Only handle export specifiers
192
+
193
+ const exportedName = t.isIdentifier(specifier.exported)
194
+ ? specifier.exported.name
195
+ : specifier.exported.value;
196
+
197
+ // Check if this re-export matches our element name
198
+ if (exportedName !== elementName)
199
+ continue;
200
+
201
+ const originalName = specifier.local.name;
202
+ //console.log(`Found re-export: ${ originalName } as ${ exportedName }`);
203
+
204
+ // Resolve and trace the re-exported file
205
+ const reExportSource = node.source.value;
206
+ const currentDir = dirname(currentFileName);
207
+ const resolvedPath = resolve(currentDir, reExportSource);
208
+
209
+ if (!existsSync(resolvedPath))
210
+ continue; // Skip if file doesn't exist
211
+
212
+ //console.log('Tracing re-export to:', resolvedPath);
213
+ result = traceReExport(originalName, resolvedPath, visitedFiles);
214
+
215
+ // Stop traversing once we find the match
216
+ return exportPath.stop();
217
+ }
218
+ },
219
+ });
220
+
221
+ return result;
222
+ }
223
+
224
+ function traceReExport(
225
+ elementName: string,
226
+ filePath: string,
227
+ visitedFiles: Set<string>,
228
+ ): ElementDefinition {
229
+ // Use cached parsing
230
+ const ast = getOrParseFile(filePath);
231
+ if (!ast)
232
+ return { type: 'unknown' };
233
+
234
+
235
+ let result: ElementDefinition = { type: 'unknown' };
236
+
237
+ traverse(ast, {
238
+ Program(programPath) {
239
+ // Continue tracing in the re-exported file
240
+ result = traceElementDefinition(elementName, programPath.scope, filePath, visitedFiles);
241
+ },
242
+ });
243
+
244
+ return result;
245
+ }
246
+
247
+
248
+ // Helper function to get or parse a file with caching
249
+ function getOrParseFile(filePath: string): t.File | undefined {
250
+ // Check cache first
251
+ if (fileCache.has(filePath)) {
252
+ //console.log('Using cached AST for:', filePath);
253
+
254
+ return fileCache.get(filePath)!;
255
+ }
256
+
257
+ // File not in cache, parse it
258
+ if (!existsSync(filePath))
259
+ return;
260
+
261
+ const fileContent = readFileSync(filePath, 'utf-8');
262
+
263
+ try {
264
+ const ast = babel.parseSync(fileContent, {
265
+ filename: filePath,
266
+ parserOpts: {
267
+ plugins: [ 'jsx', 'typescript' ] satisfies BabelPlugins,
268
+ },
269
+ });
270
+
271
+ if (ast) {
272
+ //console.log('Parsed and cached:', filePath);
273
+ fileCache.set(filePath, ast);
274
+
275
+ return ast;
276
+ }
277
+ }
278
+ catch (error) {
279
+ console.log('Failed to parse file:', filePath, error);
280
+ }
281
+ }
@@ -464,7 +464,7 @@ export class CompiledTranspiler extends JSXTranspiler<CompiledContext> {
464
464
  }
465
465
  else if (t.isJSXExpressionContainer(child)) {
466
466
  if (t.isJSXEmptyExpression(child.expression))
467
- throw new Error(ERROR_MESSAGES.EMPTY_EXPRESSION);
467
+ continue;
468
468
 
469
469
  context.builder.addText('<?>');
470
470
  context.builder.addValue(child.expression);
@@ -26,7 +26,10 @@
26
26
  */
27
27
  export const toJSX = <T extends { new(...args: any): any; tagName: string; }>(
28
28
  element: T,
29
- ): (props: JSX.JSXProps<InstanceType<T>>) => string => {
29
+ ): ToJSX<InstanceType<T>> => {
30
+ if (!element.tagName)
31
+ throw new Error('Element must have a static tagName property');
32
+
30
33
  queueMicrotask(() => {
31
34
  if ('register' in element && typeof element.register === 'function')
32
35
  element.register();
@@ -37,6 +40,8 @@ export const toJSX = <T extends { new(...args: any): any; tagName: string; }>(
37
40
  return element.tagName as any;
38
41
  };
39
42
 
43
+ export type ToJSX<T extends object> = (props: JSX.JSXProps<T>) => string;
44
+
40
45
 
41
46
  /**
42
47
  * Creates a dynamic tag name object that can be used with jsx-lit's Component syntax.