allow multiple personas

This commit is contained in:
Ayo 2023-10-20 09:35:14 +02:00
parent edc40a06b2
commit 3d1708fca8

View file

@ -80,7 +80,8 @@ async function insertRegistry(
async function buildRegistry(usedCustomElements: string[], type: "js" | "ts") { async function buildRegistry(usedCustomElements: string[], type: "js" | "ts") {
let registryScript = `<script type='module'>`; let registryScript = `<script type='module'>`;
let baseClassImported = false; let isBaseClassImported = false;
let classesImported = [];
for (const name of usedCustomElements) { for (const name of usedCustomElements) {
const content = await useStorage().getItem( const content = await useStorage().getItem(
@ -91,19 +92,22 @@ async function buildRegistry(usedCustomElements: string[], type: "js" | "ts") {
); );
const className = new evalStore().constructor.name; const className = new evalStore().constructor.name;
if ( if (!classesImported.includes(className)) {
!baseClassImported && if (
content.toString().includes("extends WebComponent") !isBaseClassImported &&
) { content.toString().includes("extends WebComponent")
const baseClassImport = `import { WebComponent } from "https://unpkg.com/web-component-base@1.7.1/WebComponent.mjs";`; ) {
const baseClassImport = `import { WebComponent } from "https://unpkg.com/web-component-base@1.7.1/WebComponent.mjs";`;
registryScript += baseClassImport; registryScript += baseClassImport;
baseClassImported = true; isBaseClassImported = true;
}
registryScript += content;
registryScript += `customElements.define("${name}", ${className});`;
classesImported.push(className);
} }
registryScript += content;
registryScript += `customElements.define("${name}", ${className});`;
} }
registryScript += "</script>"; registryScript += "</script>";