@htmlplus/element 3.1.2 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/transformer.js +17 -8
- package/package.json +1 -1
package/dist/transformer.js
CHANGED
|
@@ -8,7 +8,7 @@ import template from '@babel/template';
|
|
|
8
8
|
import { pascalCase, kebabCase, camelCase, capitalCase } from 'change-case';
|
|
9
9
|
import ora from 'ora';
|
|
10
10
|
import path, { join, resolve, dirname } from 'node:path';
|
|
11
|
-
import { KEY, COMMENT_AUTO_ADDED, DECORATOR_PROPERTY, STATIC_TAG, UTILS_STYLES_LOCAL, UTILS_PATH, DECORATOR_PROPERTY_TYPE, UTILS_STYLES_IMPORTED, ELEMENT_HOST_NAME, UTILS_HTML_IMPORTED, UTILS_HTML_LOCAL, TYPE_OBJECT,
|
|
11
|
+
import { KEY, COMMENT_AUTO_ADDED, DECORATOR_PROPERTY, STATIC_TAG, UTILS_STYLES_LOCAL, UTILS_PATH, DECORATOR_PROPERTY_TYPE, UTILS_STYLES_IMPORTED, ELEMENT_HOST_NAME, UTILS_HTML_IMPORTED, UTILS_HTML_LOCAL, TYPE_OBJECT, TYPE_NULL, TYPE_ARRAY, TYPE_STRING, TYPE_ENUM, TYPE_NUMBER, TYPE_DATE, TYPE_BOOLEAN, UTILS_ATTRIBUTES_IMPORTED, UTILS_ATTRIBUTES_LOCAL, DECORATOR_CSS_VARIABLE, DECORATOR_EVENT, DECORATOR_METHOD, DECORATOR_STATE, STATIC_STYLE, STYLE_IMPORTED, PACKAGE_NAME, DECORATOR_ELEMENT } from './constants.js';
|
|
12
12
|
|
|
13
13
|
const logger = ora({
|
|
14
14
|
color: 'yellow'
|
|
@@ -512,7 +512,9 @@ const customElement = (options) => {
|
|
|
512
512
|
return attribute.type == 'JSXSpreadAttribute';
|
|
513
513
|
});
|
|
514
514
|
if (hasSpreadAttribute) {
|
|
515
|
-
parts.push(' ',
|
|
515
|
+
parts.push(' ', 'ref=', t.arrowFunctionExpression([
|
|
516
|
+
t.identifier('$element')
|
|
517
|
+
], TODO(t.identifier('$element'), attributes)));
|
|
516
518
|
}
|
|
517
519
|
else {
|
|
518
520
|
for (const attribute of attributes) {
|
|
@@ -624,7 +626,9 @@ const customElement = (options) => {
|
|
|
624
626
|
case 'TSStringKeyword':
|
|
625
627
|
type |= TYPE_STRING;
|
|
626
628
|
break;
|
|
629
|
+
case 'Array':
|
|
627
630
|
case 'TSArrayType':
|
|
631
|
+
case 'TSTupleType':
|
|
628
632
|
type |= TYPE_ARRAY;
|
|
629
633
|
break;
|
|
630
634
|
case 'TSLiteralType':
|
|
@@ -635,12 +639,7 @@ const customElement = (options) => {
|
|
|
635
639
|
break;
|
|
636
640
|
case 'Object':
|
|
637
641
|
case 'TSObjectKeyword':
|
|
638
|
-
|
|
639
|
-
break;
|
|
640
|
-
case 'Array':
|
|
641
|
-
case 'TSTupleType':
|
|
642
|
-
type |= TYPE_ARRAY;
|
|
643
|
-
break;
|
|
642
|
+
case 'TSMappedType':
|
|
644
643
|
case 'TSTypeLiteral':
|
|
645
644
|
type |= TYPE_OBJECT;
|
|
646
645
|
break;
|
|
@@ -757,6 +756,16 @@ const customElement = (options) => {
|
|
|
757
756
|
}
|
|
758
757
|
}
|
|
759
758
|
|
|
759
|
+
declare module "react" {
|
|
760
|
+
namespace JSX {
|
|
761
|
+
interface IntrinsicElements {
|
|
762
|
+
"${context.elementTagName}": ${context.className}Events & ${context.className}Attributes & {
|
|
763
|
+
[key: string]: any;
|
|
764
|
+
};
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
|
|
760
769
|
export type ${context.className}Element = globalThis.${context.elementInterfaceName}
|
|
761
770
|
`, {
|
|
762
771
|
plugins: ['typescript'],
|