From 5eb6782410fc77ba747b34bfe16124536a69f2e3 Mon Sep 17 00:00:00 2001 From: Emmanuel Oga Date: Wed, 17 Jul 2024 02:08:35 -0700 Subject: [PATCH 1/2] Return the newly created HtmlElement class, as opposed to just "undefined" Currently `register` returns the result of `customElements.define`, which happens to be undefined. While it is possible to get the just defined tab right away, it would make sense to return the newly create HtmlElement class instead. ```js const klass = register(Component, 'element-tag'); ``` vs ```js register(Component, 'element-tag'); const klass = customElements.get('element-tag'); ``` --- src/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 287e6b7..5a0aac3 100644 --- a/src/index.js +++ b/src/index.js @@ -75,10 +75,12 @@ export default function register(Component, tagName, propNames, options) { }); }); - return customElements.define( + customElements.define( tagName || Component.tagName || Component.displayName || Component.name, PreactElement ); + + return PreactElement; } function ContextProvider(props) { From 8e575bbf20b08174d7d02fc9fa837ff15d6ef416 Mon Sep 17 00:00:00 2001 From: Ryan Christian Date: Fri, 5 Sep 2025 23:53:54 -0500 Subject: [PATCH 2/2] feat: Add types --- src/index.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.d.ts b/src/index.d.ts index 5c0bab3..a401390 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -43,6 +43,7 @@ type Options = * shadow: true, * mode: 'closed' * }); + * const klass = register(PreactComponent, 'my-component'); * ``` */ export default function register( @@ -50,4 +51,4 @@ export default function register( tagName?: string, propNames?: string[], options?: Options -): void; +): HTMLElement;