Skip to content

Commit

Permalink
fix(autoloader): only attempt to register root element if it's shoela…
Browse files Browse the repository at this point in the history
…ce element (#1563)
  • Loading branch information
wes-goulet committed Sep 13, 2023
1 parent e6db8c9 commit 317d567
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/shoelace-autoloader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ const observer = new MutationObserver(mutations => {
*/
export async function discover(root: Element | ShadowRoot) {
const rootTagName = root instanceof Element ? root.tagName.toLowerCase() : '';
const rootIsCustomElement = rootTagName?.includes('-');
const rootIsShoelaceElement = rootTagName?.startsWith('sl-');
const tags = [...root.querySelectorAll(':not(:defined)')]
.map(el => el.tagName.toLowerCase())
.filter(tag => tag.startsWith('sl-'));

// If the root element is an undefined custom element, add it to the list
if (rootIsCustomElement && !customElements.get(rootTagName)) {
// If the root element is an undefined shoelace custom element, add it to the list
if (rootIsShoelaceElement && !customElements.get(rootTagName)) {
tags.push(rootTagName);
}

Expand All @@ -35,14 +35,14 @@ export async function discover(root: Element | ShadowRoot) {
* Registers an element by tag name.
*/
function register(tagName: string): Promise<void> {
const tagWithoutPrefix = tagName.replace(/^sl-/i, '');
const path = getBasePath(`components/${tagWithoutPrefix}/${tagWithoutPrefix}.js`);

// If the element is already defined, there's nothing more to do
if (customElements.get(tagName)) {
return Promise.resolve();
}

const tagWithoutPrefix = tagName.replace(/^sl-/i, '');
const path = getBasePath(`components/${tagWithoutPrefix}/${tagWithoutPrefix}.js`);

// Register it
return new Promise((resolve, reject) => {
import(path).then(() => resolve()).catch(() => reject(new Error(`Unable to autoload <${tagName}> from ${path}`)));
Expand Down

0 comments on commit 317d567

Please sign in to comment.