From 51456270077581560aae204bd5208033c5815207 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 24 Jan 2025 18:27:31 +0000 Subject: [PATCH 01/72] chance to add your own logos, idk if it works yet --- src/lib/util/mermaid.ts | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index c4a5c6c5f..e49de65ad 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -6,6 +6,44 @@ import mermaid from 'mermaid'; mermaid.registerLayoutLoaders(elkLayouts); const init = mermaid.registerExternalDiagrams([zenuml]); +function UrlsToRegisterObject(UrlOb){ + let name = UrlOb.name; + let url = UrlOb.url; + return { + name: name, + loader: () => import(url).then((module) => module.icons), + } +} + +function loadInputs() { + const data = JSON.parse(document.getElementById('extension-data').innerText); + //extension-data doesn't exist by itself, but should exist if the extension is installed + /* + data has the shape: + [ + { + url: part of url for lazy loading of icons (example: @iconify-json/logos) + name: 'some name all minus no spaces no numbers, just lower case lyrics' + } + ] + */ + return data; +} + +function mermaidRegisterProcess(){ + let inputs = loadInputs(); + if (inputs){ + mermaid.registerIconPacks( + loadInputs().map(UrlsToRegisterObject) + ) + } + return undefined; +} + +mermaidRegisterProcess(); + + + export const render = async ( config: MermaidConfig, code: string, From 9e4681a5f42c1f467e63cbabfc9f85402df47a45 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 24 Jan 2025 21:06:24 +0000 Subject: [PATCH 02/72] change deploy to gh pages --- .github/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 45847c445..095de58f4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,7 +21,7 @@ jobs: - name: Build & Deploy env: - MERMAID_DOMAIN: 'mermaid.live' + MERMAID_DOMAIN: 'https://noobtolinux.github.io/mermaid-live-editor/' MERMAID_ANALYTICS_URL: 'https://p.mermaid.live' MERMAID_RENDERER_URL: 'https://mermaid.ink' MERMAID_KROKI_RENDERER_URL: 'https://kroki.io' @@ -37,7 +37,7 @@ jobs: - name: Deploy uses: peaceiris/actions-gh-pages@v3 - if: ${{ github.ref == 'refs/heads/master' }} + if: ${{ github.ref == 'refs/heads/develop' }} with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs From 865879bb15e7318faf3a7382e1cf1a180a174307 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 13:14:27 +0000 Subject: [PATCH 03/72] otro cambio para gh pages --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 095de58f4..1e85c12a0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -41,4 +41,5 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs + publish_branch: gh-pages # Especificamos la rama de despliegue, en este caso 'gh-pages' keep_files: true From 51cad18bb89d875a088cc6f2a8d55674d6ba26d0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 13:28:40 +0000 Subject: [PATCH 04/72] another change for gh pages --- .github/workflows/deploy.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1e85c12a0..779403001 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,10 +2,9 @@ name: Deploy Live Editor on: push: branches: - - master + - develop pull_request: branches: - - master - develop jobs: build: From 7441d1de70233def2f6afd8933fa453791e024dc Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 13:33:35 +0000 Subject: [PATCH 05/72] change run ons build to lts, no longer work latest --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 779403001..1515f781c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -8,7 +8,7 @@ on: - develop jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3 From ce052cb03bdfb9364678993b88c1a2851817c9f3 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 14:31:17 +0000 Subject: [PATCH 06/72] another attempt --- src/lib/util/mermaid.ts | 4 +++- tsconfig.json | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index e49de65ad..431646274 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -6,6 +6,7 @@ import mermaid from 'mermaid'; mermaid.registerLayoutLoaders(elkLayouts); const init = mermaid.registerExternalDiagrams([zenuml]); + function UrlsToRegisterObject(UrlOb){ let name = UrlOb.name; let url = UrlOb.url; @@ -15,6 +16,8 @@ function UrlsToRegisterObject(UrlOb){ } } + + function loadInputs() { const data = JSON.parse(document.getElementById('extension-data').innerText); //extension-data doesn't exist by itself, but should exist if the extension is installed @@ -43,7 +46,6 @@ function mermaidRegisterProcess(){ mermaidRegisterProcess(); - export const render = async ( config: MermaidConfig, code: string, diff --git a/tsconfig.json b/tsconfig.json index 91263b2e3..5a3d2a764 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,8 @@ "resolveJsonModule": true, "allowSyntheticDefaultImports": true, "strictNullChecks": true, - "types": ["vitest/importMeta"] + "types": ["vitest/importMeta"], + "lib": [ "es2015" ] }, "extends": "./.svelte-kit/tsconfig.json" } From d6f1f9f1b6af0dea1e065df6d6f45d52f2ea700f Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 14:37:26 +0000 Subject: [PATCH 07/72] another change for gh pages --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 5a3d2a764..200eb304f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,7 @@ "allowSyntheticDefaultImports": true, "strictNullChecks": true, "types": ["vitest/importMeta"], - "lib": [ "es2015" ] + "lib": [ "es2015", "dom" ] }, "extends": "./.svelte-kit/tsconfig.json" } From 5e4d1d3195a4850db9a3e4be484d473f06b6b244 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 14:44:12 +0000 Subject: [PATCH 08/72] another --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1515f781c..adb756ea9 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -31,6 +31,7 @@ jobs: yarn install version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2) yarn build + npx prettier --write . yarn run lint cd .. From 764da5954a01875f4dd10e72d0f601bfb8455d18 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 14:57:34 +0000 Subject: [PATCH 09/72] silence prettier --- .github/workflows/deploy.yml | 1 - package.json | 4 ++-- src/lib/util/mermaid.ts | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index adb756ea9..1515f781c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -31,7 +31,6 @@ jobs: yarn install version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2) yarn build - npx prettier --write . yarn run lint cd .. diff --git a/package.json b/package.json index f0b5939d4..0197acb6e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "dev:test": "yarn dev", "build": "vite build", "preview": "vite preview", - "lint": "prettier --check --cache . && eslint --ignore-path .gitignore .", + "lint": "prettier --check --quiet --cache . && eslint --ignore-path .gitignore .", "lint:fix": "prettier --write --cache . && eslint --fix --ignore-path .gitignore .", "format": "prettier --write --cache .", "pre-commit": "lint-staged", @@ -90,7 +90,7 @@ }, "lint-staged": { "*.{ts,svelte,js,css,md,json}": [ - "prettier --plugin-search-dir=. --write", + "prettier --plugin-search-dir=. --check --quiet", "eslint --ignore-path .gitignore " ] }, diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 431646274..fd2031d91 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -8,8 +8,8 @@ const init = mermaid.registerExternalDiagrams([zenuml]); function UrlsToRegisterObject(UrlOb){ - let name = UrlOb.name; - let url = UrlOb.url; + const name = UrlOb.name; + const url = UrlOb.url; return { name: name, loader: () => import(url).then((module) => module.icons), From fcf49bf842bf21bee99ea0d1ed8c9e4a6b718033 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:01:27 +0000 Subject: [PATCH 10/72] another change for prettier silence --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0197acb6e..c515ee1a8 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "build": "vite build", "preview": "vite preview", "lint": "prettier --check --quiet --cache . && eslint --ignore-path .gitignore .", - "lint:fix": "prettier --write --cache . && eslint --fix --ignore-path .gitignore .", - "format": "prettier --write --cache .", + "lint:fix": "prettier --check --quiet --cache . && eslint --fix --ignore-path .gitignore .", + "format": "prettier --check --quiet --cache .", "pre-commit": "lint-staged", "postinstall": "husky install && svelte-kit sync && (git config blame.ignoreRevsFile .git-blame-ignore-revs || true)", "test:unit": "vitest", From 4c70fe111730a40b3815f65482f486cf1af2d51e Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:06:05 +0000 Subject: [PATCH 11/72] package json back to og --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index c515ee1a8..f0b5939d4 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,9 @@ "dev:test": "yarn dev", "build": "vite build", "preview": "vite preview", - "lint": "prettier --check --quiet --cache . && eslint --ignore-path .gitignore .", - "lint:fix": "prettier --check --quiet --cache . && eslint --fix --ignore-path .gitignore .", - "format": "prettier --check --quiet --cache .", + "lint": "prettier --check --cache . && eslint --ignore-path .gitignore .", + "lint:fix": "prettier --write --cache . && eslint --fix --ignore-path .gitignore .", + "format": "prettier --write --cache .", "pre-commit": "lint-staged", "postinstall": "husky install && svelte-kit sync && (git config blame.ignoreRevsFile .git-blame-ignore-revs || true)", "test:unit": "vitest", @@ -90,7 +90,7 @@ }, "lint-staged": { "*.{ts,svelte,js,css,md,json}": [ - "prettier --plugin-search-dir=. --check --quiet", + "prettier --plugin-search-dir=. --write", "eslint --ignore-path .gitignore " ] }, From cdeb4b424c691b3de5700cf5a99da33a091ba730 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:08:21 +0000 Subject: [PATCH 12/72] wrong file to ignore --- .prettierignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 9661ca5e8..1d1de9df4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,4 +5,8 @@ build/** node_modules/** coverage/** __snapshots__/** -snapshots.js \ No newline at end of file +snapshots.js + +tsconfig.json +/src/lib/utils/mermaid.ts +/.github/workflows/deploy.yml \ No newline at end of file From 40db2ebd1ec0ea944da46e02c9d09afd22edebba Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:11:32 +0000 Subject: [PATCH 13/72] fix of path, related to previous commit --- .prettierignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 1d1de9df4..b69f9470a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,5 +8,5 @@ __snapshots__/** snapshots.js tsconfig.json -/src/lib/utils/mermaid.ts +src/lib/util/mermaid.ts /.github/workflows/deploy.yml \ No newline at end of file From 2e1b504c4717d9a14ab964ff7d4ba65a044a5dd1 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:30:34 +0000 Subject: [PATCH 14/72] cambios para typescript --- src/lib/util/mermaid.ts | 45 ++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index fd2031d91..30af0ab15 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -6,20 +6,50 @@ import mermaid from 'mermaid'; mermaid.registerLayoutLoaders(elkLayouts); const init = mermaid.registerExternalDiagrams([zenuml]); - +/* function UrlsToRegisterObject(UrlOb){ - const name = UrlOb.name; - const url = UrlOb.url; + const name = UrlOb.name as string; + const url = UrlOb.url as string; return { name: name, loader: () => import(url).then((module) => module.icons), } } - +*/ +//This with chat gpt to pass the type thing, idk about typescript +interface UrlObject { + name: string; + url: string; + } + + // Tipo para el módulo importado + interface IconsModule { + icons: Record; // Esto asume que icons es un objeto JSON con claves de tipo string + } + + function UrlsToRegisterObject(UrlOb: UrlObject) { + const name = UrlOb.name; + const url = UrlOb.url; + + return { + name: name, + loader: async () => { + const module = await import(url); + // Aseguramos que el módulo tiene la propiedad 'icons' que es un objeto + return (module as IconsModule).icons; + }, + }; + } function loadInputs() { - const data = JSON.parse(document.getElementById('extension-data').innerText); + if (document.querySelector('#extension-data')){ + return JSON.parse(document.querySelector('#extension-data').textContent); + } + else { + return null; + } + //extension-data doesn't exist by itself, but should exist if the extension is installed /* data has the shape: @@ -30,17 +60,14 @@ function loadInputs() { } ] */ - return data; } function mermaidRegisterProcess(){ - let inputs = loadInputs(); - if (inputs){ + if (loadInputs()){ mermaid.registerIconPacks( loadInputs().map(UrlsToRegisterObject) ) } - return undefined; } mermaidRegisterProcess(); From 785f5691da1b4ffeada00c505b470c20db80de5a Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:38:37 +0000 Subject: [PATCH 15/72] more changes to ts, done with chatgpt --- src/lib/util/mermaid.ts | 55 +++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 30af0ab15..ce12225cb 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -24,55 +24,46 @@ interface UrlObject { // Tipo para el módulo importado interface IconsModule { - icons: Record; // Esto asume que icons es un objeto JSON con claves de tipo string + icons: Record; // Asumiendo que icons es un objeto JSON con claves de tipo string } + // Definir la función correctamente tipada function UrlsToRegisterObject(UrlOb: UrlObject) { - const name = UrlOb.name; - const url = UrlOb.url; + const { name, url } = UrlOb; return { - name: name, + name, loader: async () => { const module = await import(url); - // Aseguramos que el módulo tiene la propiedad 'icons' que es un objeto - return (module as IconsModule).icons; + return (module as IconsModule).icons; // Aseguramos que module tiene la propiedad icons }, }; } - - -function loadInputs() { - if (document.querySelector('#extension-data')){ - return JSON.parse(document.querySelector('#extension-data').textContent); - } - else { - return null; + + // Tipar la función loadInputs correctamente + function loadInputs(): UrlObject[] | null { + const dataElement = document.querySelector('#extension-data'); + if (dataElement) { + // Parseamos los datos asumiendo que siempre son correctos + const parsedData: UrlObject[] = JSON.parse(dataElement.textContent || '[]'); + return parsedData.length > 0 ? parsedData : null; } - - //extension-data doesn't exist by itself, but should exist if the extension is installed - /* - data has the shape: - [ - { - url: part of url for lazy loading of icons (example: @iconify-json/logos) - name: 'some name all minus no spaces no numbers, just lower case lyrics' - } - ] - */ -} - -function mermaidRegisterProcess(){ - if (loadInputs()){ - mermaid.registerIconPacks( - loadInputs().map(UrlsToRegisterObject) - ) + return null; + } + + // La función mermaidRegisterProcess + function mermaidRegisterProcess() { + const inputs = loadInputs(); + if (inputs) { + mermaid.registerIconPacks(inputs.map(UrlsToRegisterObject)); } } +// Llamar al proceso mermaidRegisterProcess(); + export const render = async ( config: MermaidConfig, code: string, From 073b6ebe97d67489f1ef3c0d9312546862a5f3d4 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:44:40 +0000 Subject: [PATCH 16/72] wrapper function for map --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index ce12225cb..6020ba2a9 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -55,7 +55,7 @@ interface UrlObject { function mermaidRegisterProcess() { const inputs = loadInputs(); if (inputs) { - mermaid.registerIconPacks(inputs.map(UrlsToRegisterObject)); + mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); } } From ca08aa634cad17ab92d9285b5a1e42670f95d3b8 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 15:53:25 +0000 Subject: [PATCH 17/72] change to typescript --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 6020ba2a9..04599a8b4 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -34,15 +34,15 @@ interface UrlObject { return { name, loader: async () => { - const module = await import(url); - return (module as IconsModule).icons; // Aseguramos que module tiene la propiedad icons + const module = await import(url) as IconsModule; + return module.icons; // Aseguramos que module tiene la propiedad icons }, }; } // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { - const dataElement = document.querySelector('#extension-data'); + const dataElement = document.querySelector('#extension-data') as HTMLElement | null; if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const parsedData: UrlObject[] = JSON.parse(dataElement.textContent || '[]'); From 5e0fd39d089409fb793578d08a68553ff1f791c7 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 16:02:11 +0000 Subject: [PATCH 18/72] another change --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 04599a8b4..fe216947d 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -42,7 +42,7 @@ interface UrlObject { // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { - const dataElement = document.querySelector('#extension-data') as HTMLElement | null; + const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const parsedData: UrlObject[] = JSON.parse(dataElement.textContent || '[]'); From f1108adf4ff7d1b15460f2a125e1f377e3d4378e Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 16:06:28 +0000 Subject: [PATCH 19/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index fe216947d..6dabf08de 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -45,7 +45,7 @@ interface UrlObject { const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos - const parsedData: UrlObject[] = JSON.parse(dataElement.textContent || '[]'); + const parsedData = JSON.parse(dataElement.textContent) as UrlObject[]; return parsedData.length > 0 ? parsedData : null; } return null; From 2aa597e7d7f82bc565aeab83136f55bcaa0f9d26 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 16:27:21 +0000 Subject: [PATCH 20/72] asyc fixes --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 6dabf08de..89f9d42cd 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -28,7 +28,7 @@ interface UrlObject { } // Definir la función correctamente tipada - function UrlsToRegisterObject(UrlOb: UrlObject) { + async function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; return { @@ -52,10 +52,10 @@ interface UrlObject { } // La función mermaidRegisterProcess - function mermaidRegisterProcess() { + async function mermaidRegisterProcess() { const inputs = loadInputs(); if (inputs) { - mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); + await mermaid.registerIconPacks(inputs.map(async (x) => await UrlsToRegisterObject(x))); } } From 1863cbcd4fb7211b6a2271000b44c3f3253e0b31 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 16:39:21 +0000 Subject: [PATCH 21/72] change to cdn json --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 89f9d42cd..362bf8de2 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -34,7 +34,7 @@ interface UrlObject { return { name, loader: async () => { - const module = await import(url) as IconsModule; + const module = await fetch(url).then((res) => res.json()) as IconsModule; return module.icons; // Aseguramos que module tiene la propiedad icons }, }; @@ -52,10 +52,10 @@ interface UrlObject { } // La función mermaidRegisterProcess - async function mermaidRegisterProcess() { +function mermaidRegisterProcess() { const inputs = loadInputs(); if (inputs) { - await mermaid.registerIconPacks(inputs.map(async (x) => await UrlsToRegisterObject(x))); + mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); } } From 8962ea3ad2fcd9e0856056c244023f65245598a9 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 16:44:27 +0000 Subject: [PATCH 22/72] some fix --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 362bf8de2..e64ec25d8 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -28,7 +28,7 @@ interface UrlObject { } // Definir la función correctamente tipada - async function UrlsToRegisterObject(UrlOb: UrlObject) { +function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; return { From 1cdfa4d36d4bde10a934baea76bf28d1e4f75160 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 17:08:57 +0000 Subject: [PATCH 23/72] change to expected icons in the div --- src/lib/util/mermaid.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index e64ec25d8..b367a72b6 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -16,16 +16,17 @@ function UrlsToRegisterObject(UrlOb){ } } */ -//This with chat gpt to pass the type thing, idk about typescript -interface UrlObject { - name: string; - url: string; - } // Tipo para el módulo importado interface IconsModule { icons: Record; // Asumiendo que icons es un objeto JSON con claves de tipo string } + + //This with chat gpt to pass the type thing, idk about typescript +interface UrlObject { + name: string; + url: IconsModule; +} // Definir la función correctamente tipada function UrlsToRegisterObject(UrlOb: UrlObject) { @@ -34,7 +35,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { return { name, loader: async () => { - const module = await fetch(url).then((res) => res.json()) as IconsModule; + const module = url; return module.icons; // Aseguramos que module tiene la propiedad icons }, }; From 195504850be5e9f70bd4cfc5c0669f548c589eb8 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 17:14:33 +0000 Subject: [PATCH 24/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index b367a72b6..ca1bb20b3 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -34,7 +34,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { return { name, - loader: async () => { + loader: () => { const module = url; return module.icons; // Aseguramos que module tiene la propiedad icons }, From 1f024ecb23b87b03e20f101a7d7f99adc51812a0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 17:22:00 +0000 Subject: [PATCH 25/72] repo url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02a0c7b59..6e311d6ae 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Edit, preview and share mermaid charts/diagrams. ## Live demo -You can try out a live version [here](https://mermaid.live/). +You can try out a live version [here](https://mermaid.live/). ---> [From this repo](https://noobtolinux.github.io/mermaid-live-editor/) ## Docker From f0f240132157a25bcbe4133b70ba5e13d1838a0d Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 17:23:11 +0000 Subject: [PATCH 26/72] debugging --- src/lib/util/mermaid.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index ca1bb20b3..a2a625beb 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -31,6 +31,9 @@ interface UrlObject { // Definir la función correctamente tipada function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; + console.log('------'); + console.log(url); + console.log('------'); return { name, From 804ee82a95b2fcb1a9c549623536bc7b45cccbb7 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 17:55:11 +0000 Subject: [PATCH 27/72] debugging 2 --- src/lib/util/mermaid.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index a2a625beb..9ac0a9ae4 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -58,6 +58,9 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // La función mermaidRegisterProcess function mermaidRegisterProcess() { const inputs = loadInputs(); + console.log('----- INPUTS -----') + console.log(inputs); + console.log('----- INPUTS -----') if (inputs) { mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); } From f845367c729ac2581d36925fc9fa2cb8be5e845b Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 18:25:29 +0000 Subject: [PATCH 28/72] -debuggin --- src/lib/util/mermaid.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 9ac0a9ae4..4d4cd9669 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -47,6 +47,9 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { const dataElement = document.querySelector('#extension-data'); + console.log('----- INPUTS DATA ELEMENT -----') + console.log(dataElement); + console.log('----- INPUTS DATA ELEMENT -----') if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const parsedData = JSON.parse(dataElement.textContent) as UrlObject[]; From 5c77ce34c49e5f1e4c1306a0b4de513a816a91d0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 18:32:40 +0000 Subject: [PATCH 29/72] wait attempt --- src/lib/util/mermaid.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 4d4cd9669..6fbf28c5d 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -44,8 +44,17 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { }; } + function waitSync(milliseconds) { + const start = Date.now(); + while (Date.now() - start < milliseconds) { + // Bucle vacío para bloquear el tiempo + } + } + + // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { + waitSync(500); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); console.log('----- INPUTS DATA ELEMENT -----') console.log(dataElement); From 9b8bdc73512b0ca68074ff8887c5767ac2075f76 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 18:39:36 +0000 Subject: [PATCH 30/72] debugging --- src/lib/util/mermaid.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 6fbf28c5d..12a17b9c1 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -32,7 +32,7 @@ interface UrlObject { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); - console.log(url); + console.log(url.icons); console.log('------'); return { @@ -56,9 +56,6 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { function loadInputs(): UrlObject[] | null { waitSync(500); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); - console.log('----- INPUTS DATA ELEMENT -----') - console.log(dataElement); - console.log('----- INPUTS DATA ELEMENT -----') if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const parsedData = JSON.parse(dataElement.textContent) as UrlObject[]; @@ -70,9 +67,6 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // La función mermaidRegisterProcess function mermaidRegisterProcess() { const inputs = loadInputs(); - console.log('----- INPUTS -----') - console.log(inputs); - console.log('----- INPUTS -----') if (inputs) { mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); } From 87f64d3bf948900e931566336c89d5fff16d0656 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 21:50:23 +0000 Subject: [PATCH 31/72] time --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 12a17b9c1..47025424d 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -54,7 +54,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { - waitSync(500); //Just to try to see if it loads the data + waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos From 562b3e8cdba2633e45d646f539202323e0f8654a Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 21:56:26 +0000 Subject: [PATCH 32/72] - --- src/lib/util/mermaid.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 47025424d..fafb5fea5 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -32,6 +32,7 @@ interface UrlObject { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); + console.log(url); console.log(url.icons); console.log('------'); From 1472a3b9f537c6e26af5ecff60f50a4d19b8b481 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:02:05 +0000 Subject: [PATCH 33/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index fafb5fea5..48ec98630 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -32,7 +32,7 @@ interface UrlObject { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); - console.log(url); + console.log(JSON.parse(url)); console.log(url.icons); console.log('------'); From 84bdb39f499978a7d13b1722d62bc29373f957ae Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:06:47 +0000 Subject: [PATCH 34/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 48ec98630..267e3f77e 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -39,7 +39,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { return { name, loader: () => { - const module = url; + const module = JSON.parse(url); return module.icons; // Aseguramos que module tiene la propiedad icons }, }; From bac1a12758caad97daf71a6dfc1b6dcc57a4f1e6 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:09:57 +0000 Subject: [PATCH 35/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 267e3f77e..4de8effc6 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -39,7 +39,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { return { name, loader: () => { - const module = JSON.parse(url); + const module = JSON.parse(url) as Record; return module.icons; // Aseguramos que module tiene la propiedad icons }, }; From d9f52ff1354968d0288471c7c83682e44e8a5526 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:17:04 +0000 Subject: [PATCH 36/72] - --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 4de8effc6..66cb9540a 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -33,14 +33,14 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); console.log(JSON.parse(url)); - console.log(url.icons); + console.log(JSON.parse(url.icons) as Record); console.log('------'); return { name, loader: () => { - const module = JSON.parse(url) as Record; - return module.icons; // Aseguramos que module tiene la propiedad icons + const icons = JSON.parse(url.icons) as Record; + return icons; // Aseguramos que module tiene la propiedad icons }, }; } From 3d597ab7e8c826d8b9e8ab34d48b8c774351c04c Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:42:32 +0000 Subject: [PATCH 37/72] - --- src/lib/util/mermaid.ts | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 66cb9540a..1be62433e 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -16,11 +16,34 @@ function UrlsToRegisterObject(UrlOb){ } } */ - - // Tipo para el módulo importado - interface IconsModule { - icons: Record; // Asumiendo que icons es un objeto JSON con claves de tipo string - } + +interface Dummy { + parent: string +} + +interface DummyParent { + [x:string]: Dummy +} + +interface IconType { + body: string; + width: number; + height: number; +} + +interface IconKeyVal { + [x: string]: IconType +} + +interface IconsModule { + aliases: DummyParent; + height: number; + icons: IconKeyVal[]; + lastModified: number; + prefix: string; + width: number; +} + //This with chat gpt to pass the type thing, idk about typescript interface UrlObject { @@ -32,14 +55,14 @@ interface UrlObject { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); - console.log(JSON.parse(url)); - console.log(JSON.parse(url.icons) as Record); + console.log(url); + console.log(url.icons); console.log('------'); return { name, loader: () => { - const icons = JSON.parse(url.icons) as Record; + const icons = url.icons; return icons; // Aseguramos que module tiene la propiedad icons }, }; From f949505397ec23a3cff5626e975a5bea98566f6e Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:45:35 +0000 Subject: [PATCH 38/72] - --- src/lib/util/mermaid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 1be62433e..13b3784f1 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -31,14 +31,14 @@ interface IconType { height: number; } -interface IconKeyVal { +interface IconKeyValue { [x: string]: IconType } interface IconsModule { aliases: DummyParent; height: number; - icons: IconKeyVal[]; + icons: IconKeyValue[]; lastModified: number; prefix: string; width: number; From b9dc66c4f1c0ee6d4dd34988037d27f66afceb4a Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:49:12 +0000 Subject: [PATCH 39/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 13b3784f1..3f79713e9 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -62,7 +62,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { return { name, loader: () => { - const icons = url.icons; + const icons = JSON.parse(url).icons; return icons; // Aseguramos que module tiene la propiedad icons }, }; From 7ece42115f18c4fe02777720c3731db06500f3bd Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:53:06 +0000 Subject: [PATCH 40/72] - --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 3f79713e9..4a1c06db8 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -56,14 +56,14 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); console.log(url); - console.log(url.icons); + console.log(JSON.parse(url)); console.log('------'); return { name, loader: () => { - const icons = JSON.parse(url).icons; - return icons; // Aseguramos que module tiene la propiedad icons + const icons = JSON.parse(url) as IconsModule; + return icons.icons; // Aseguramos que module tiene la propiedad icons }, }; } From 5dbd1ece00553c83e68fb67a4cb0eba7bf632b5e Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 22:58:28 +0000 Subject: [PATCH 41/72] - --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 4a1c06db8..d89233403 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -55,15 +55,15 @@ interface UrlObject { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; console.log('------'); - console.log(url); + console.log(name); console.log(JSON.parse(url)); console.log('------'); return { name, loader: () => { - const icons = JSON.parse(url) as IconsModule; - return icons.icons; // Aseguramos que module tiene la propiedad icons + //const icons = JSON.parse(url) as IconsModule; + return JSON.parse(url).icons; // Aseguramos que module tiene la propiedad icons }, }; } From bc641a457e0d2abd8823ec364aefd1c8dcc46ed5 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:15:00 +0000 Subject: [PATCH 42/72] - --- src/lib/util/mermaid.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index d89233403..2c505577d 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -38,7 +38,7 @@ interface IconKeyValue { interface IconsModule { aliases: DummyParent; height: number; - icons: IconKeyValue[]; + icons: IconKeyValue; lastModified: number; prefix: string; width: number; @@ -53,17 +53,18 @@ interface UrlObject { // Definir la función correctamente tipada function UrlsToRegisterObject(UrlOb: UrlObject) { - const { name, url } = UrlOb; + let { name, url } = UrlOb; + console.log('------'); console.log(name); - console.log(JSON.parse(url)); + console.log(url.icons); console.log('------'); return { name, loader: () => { - //const icons = JSON.parse(url) as IconsModule; - return JSON.parse(url).icons; // Aseguramos que module tiene la propiedad icons + const icons = url; + return icons.icons; // Aseguramos que module tiene la propiedad icons }, }; } From 70f335ffaeca118782125c39d07e171e5761d106 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:18:10 +0000 Subject: [PATCH 43/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 2c505577d..959babb3c 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -53,7 +53,7 @@ interface UrlObject { // Definir la función correctamente tipada function UrlsToRegisterObject(UrlOb: UrlObject) { - let { name, url } = UrlOb; + const { name, url } = UrlOb; console.log('------'); console.log(name); From 8a4310987a7bb72457dbf9704c8d742910f927e6 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:24:15 +0000 Subject: [PATCH 44/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 959babb3c..602f4ce2a 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -79,7 +79,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { - waitSync(1000); //Just to try to see if it loads the data + //waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos From 6813a817681431f674f9097f39ec568dcead71de Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:28:47 +0000 Subject: [PATCH 45/72] - --- src/lib/util/mermaid.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 602f4ce2a..55320e64c 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -69,13 +69,14 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { }; } + /* function waitSync(milliseconds) { const start = Date.now(); while (Date.now() - start < milliseconds) { // Bucle vacío para bloquear el tiempo } } - + */ // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { From f8e1a98dc7ca2f7ae6a94acd81a9896f827720dd Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:51:37 +0000 Subject: [PATCH 46/72] - --- src/lib/util/mermaid.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 55320e64c..d26b7f0d1 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -84,7 +84,12 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos - const parsedData = JSON.parse(dataElement.textContent) as UrlObject[]; + let datastring = dataElement.textContent as string; + let parsedData: UrlObject; + while (datastring === 'default string for extension check'){ + //Loop till data loads if extension is present + parsedData = JSON.parse(datastring); + } return parsedData.length > 0 ? parsedData : null; } return null; From 347b0b49e3aff16879b8ecc4ba227fd65d214b9f Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:55:19 +0000 Subject: [PATCH 47/72] - --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index d26b7f0d1..e2c3e5463 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -84,11 +84,11 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { const dataElement = document.querySelector('#extension-data'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos - let datastring = dataElement.textContent as string; - let parsedData: UrlObject; + const datastring = dataElement.textContent as string; + let parsedData; while (datastring === 'default string for extension check'){ //Loop till data loads if extension is present - parsedData = JSON.parse(datastring); + parsedData = JSON.parse(datastring) as UrlObject; } return parsedData.length > 0 ? parsedData : null; } From 4a30ec820b031fc5711d8a8d4db1b3c421f987f7 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 25 Jan 2025 23:58:40 +0000 Subject: [PATCH 48/72] - --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index e2c3e5463..d8ae46dd7 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -88,7 +88,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { let parsedData; while (datastring === 'default string for extension check'){ //Loop till data loads if extension is present - parsedData = JSON.parse(datastring) as UrlObject; + parsedData = JSON.parse(datastring) as UrlObject[]; } return parsedData.length > 0 ? parsedData : null; } From 4a292c03c10168f4a7e261db43820f18fa42c729 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 00:07:40 +0000 Subject: [PATCH 49/72] - --- src/lib/util/mermaid.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index d8ae46dd7..ee945d425 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -82,13 +82,22 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { function loadInputs(): UrlObject[] | null { //waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); + let parsedData: UrlObject[] | null = null; // Especificar el tipo inicial if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos - const datastring = dataElement.textContent as string; - let parsedData; - while (datastring === 'default string for extension check'){ - //Loop till data loads if extension is present - parsedData = JSON.parse(datastring) as UrlObject[]; + // Loop till data loads if extension is present + try { + const tempData = JSON.parse(datastring); // Intentar parsear + if (Array.isArray(tempData) && tempData.every(isUrlObject)) { + // Validar que el resultado sea un array de UrlObject + parsedData = tempData as UrlObject[]; + } else { + throw new Error("Invalid data structure"); + } + } catch (error) { + console.error("Error parsing JSON:", error); + parsedData = null; + //break; // Salir del loop si hay un error } return parsedData.length > 0 ? parsedData : null; } From 6568239600b8ce0c0de5cf8922f5bb182fe92262 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 00:11:32 +0000 Subject: [PATCH 50/72] - --- src/lib/util/mermaid.ts | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index ee945d425..1f35addfe 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -82,22 +82,13 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { function loadInputs(): UrlObject[] | null { //waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); - let parsedData: UrlObject[] | null = null; // Especificar el tipo inicial if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos - // Loop till data loads if extension is present - try { - const tempData = JSON.parse(datastring); // Intentar parsear - if (Array.isArray(tempData) && tempData.every(isUrlObject)) { - // Validar que el resultado sea un array de UrlObject - parsedData = tempData as UrlObject[]; - } else { - throw new Error("Invalid data structure"); - } - } catch (error) { - console.error("Error parsing JSON:", error); - parsedData = null; - //break; // Salir del loop si hay un error + const datastring = dataElement.textContent as string; + let parsedData: UrlObject[] | null = null; // Especificar el tipo inicial + while (datastring === 'default string for extension check'){ + //Loop till data loads if extension is present + parsedData = JSON.parse(datastring) as UrlObject[]; } return parsedData.length > 0 ? parsedData : null; } From 2a7efbf2daff469bdaf90a82e57834cb26c282d8 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 00:38:51 +0000 Subject: [PATCH 51/72] - --- src/lib/util/mermaid.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 1f35addfe..7bff1829c 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -90,7 +90,10 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { //Loop till data loads if extension is present parsedData = JSON.parse(datastring) as UrlObject[]; } - return parsedData.length > 0 ? parsedData : null; + if (parsedData){ + return parsedData.length > 0 ? parsedData : null; + } + else {return null;} } return null; } From 84b2901ecc4fcdc4e917811014608b4d5bcfeb50 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 00:52:41 +0000 Subject: [PATCH 52/72] - --- src/lib/util/mermaid.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 7bff1829c..0dc74d086 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -82,6 +82,9 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { function loadInputs(): UrlObject[] | null { //waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); + console.log('---- DATA ELEMENT ----'); + console.log(dataElement); + console.log('---- DATA ELEMENT ----'); if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const datastring = dataElement.textContent as string; From 0d864ab73740b4543091ceceae542e1acbad5044 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 00:57:44 +0000 Subject: [PATCH 53/72] - --- src/lib/util/mermaid.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 0dc74d086..11fed9f86 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -82,17 +82,15 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { function loadInputs(): UrlObject[] | null { //waitSync(1000); //Just to try to see if it loads the data const dataElement = document.querySelector('#extension-data'); - console.log('---- DATA ELEMENT ----'); - console.log(dataElement); - console.log('---- DATA ELEMENT ----'); + if (dataElement) { // Parseamos los datos asumiendo que siempre son correctos const datastring = dataElement.textContent as string; - let parsedData: UrlObject[] | null = null; // Especificar el tipo inicial + while (datastring === 'default string for extension check'){ //Loop till data loads if extension is present - parsedData = JSON.parse(datastring) as UrlObject[]; } + const parsedData = JSON.parse(datastring) as UrlObject[]; if (parsedData){ return parsedData.length > 0 ? parsedData : null; } From bc6d8ed8a99697b72335f89fdb627442971f9160 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 01:06:56 +0000 Subject: [PATCH 54/72] - --- src/lib/util/mermaid.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 11fed9f86..eb5aa6b38 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -57,6 +57,7 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log('------'); console.log(name); + console.log(url); console.log(url.icons); console.log('------'); @@ -91,6 +92,9 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { //Loop till data loads if extension is present } const parsedData = JSON.parse(datastring) as UrlObject[]; + console.log('--- PARSED DATA ---'); + console.log(parsedData); + console.log('--- PARSED DATA ---'); if (parsedData){ return parsedData.length > 0 ? parsedData : null; } From 4798abfff1274592e7ff4a770d7b93ac8891e510 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 01:21:36 +0000 Subject: [PATCH 55/72] - --- src/lib/util/mermaid.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index eb5aa6b38..3e1c4f46b 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -22,7 +22,7 @@ interface Dummy { } interface DummyParent { - [x:string]: Dummy + [x:string]: Dummy[] } interface IconType { @@ -38,7 +38,7 @@ interface IconKeyValue { interface IconsModule { aliases: DummyParent; height: number; - icons: IconKeyValue; + icons: string; lastModified: number; prefix: string; width: number; @@ -48,7 +48,7 @@ interface IconsModule { //This with chat gpt to pass the type thing, idk about typescript interface UrlObject { name: string; - url: IconsModule; + url: string; } // Definir la función correctamente tipada @@ -58,14 +58,14 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log('------'); console.log(name); console.log(url); - console.log(url.icons); console.log('------'); return { name, loader: () => { - const icons = url; - return icons.icons; // Aseguramos que module tiene la propiedad icons + const iconsM = JSON.parse(url) as IconsModule; + const icons = JSON.parse(iconsM.icons) as IconKeyValue[]; + return icons; // Aseguramos que module tiene la propiedad icons }, }; } From f6be4c5d969b57cc1ed4f1900a0e94fd8891e4e2 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 01:26:53 +0000 Subject: [PATCH 56/72] - --- src/lib/util/mermaid.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 3e1c4f46b..3f41b17b8 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -59,12 +59,18 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log(name); console.log(url); console.log('------'); - + const iconsM = JSON.parse(url) as IconsModule; + const icons = JSON.parse(iconsM.icons) as IconKeyValue[]; + + console.log('---- AAAAAAA -----'); + console.log(iconsM); + console.log(icons); + console.log('---- AAAAAAA -----'); + + return { name, loader: () => { - const iconsM = JSON.parse(url) as IconsModule; - const icons = JSON.parse(iconsM.icons) as IconKeyValue[]; return icons; // Aseguramos que module tiene la propiedad icons }, }; From 23e3d992d2ba8f1b90f2037af632391e77ccf424 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 20:26:12 +0000 Subject: [PATCH 57/72] - --- src/lib/util/mermaid.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 3f41b17b8..f92c20169 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -38,7 +38,7 @@ interface IconKeyValue { interface IconsModule { aliases: DummyParent; height: number; - icons: string; + icons: IconKeyValue[]; lastModified: number; prefix: string; width: number; @@ -48,7 +48,7 @@ interface IconsModule { //This with chat gpt to pass the type thing, idk about typescript interface UrlObject { name: string; - url: string; + url: IconsModule; } // Definir la función correctamente tipada @@ -58,9 +58,10 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log('------'); console.log(name); console.log(url); + console.log(typeof url); console.log('------'); - const iconsM = JSON.parse(url) as IconsModule; - const icons = JSON.parse(iconsM.icons) as IconKeyValue[]; + const iconsM = url as IconsModule; + const icons = iconsM.icons as IconKeyValue[]; console.log('---- AAAAAAA -----'); console.log(iconsM); From f8eb2b02e6bfb796c7e1eb78e047a9d8c2b4162f Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 20:31:28 +0000 Subject: [PATCH 58/72] - --- src/lib/util/mermaid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index f92c20169..2f7ad7962 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -60,8 +60,8 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log(url); console.log(typeof url); console.log('------'); - const iconsM = url as IconsModule; - const icons = iconsM.icons as IconKeyValue[]; + const iconsM = url// as IconsModule; + const icons = iconsM.icons// as IconKeyValue[]; console.log('---- AAAAAAA -----'); console.log(iconsM); From c16f4f790233d0c84130b3aec8817a5438f5b484 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 20:40:06 +0000 Subject: [PATCH 59/72] - --- src/lib/util/mermaid.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 2f7ad7962..041d2dce2 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -17,25 +17,25 @@ function UrlsToRegisterObject(UrlOb){ } */ -interface Dummy { +class Dummy { parent: string } -interface DummyParent { +class DummyParent { [x:string]: Dummy[] } -interface IconType { +class IconType { body: string; width: number; height: number; } -interface IconKeyValue { +class IconKeyValue { [x: string]: IconType } -interface IconsModule { +class IconsModule { aliases: DummyParent; height: number; icons: IconKeyValue[]; @@ -46,7 +46,7 @@ interface IconsModule { //This with chat gpt to pass the type thing, idk about typescript -interface UrlObject { + class UrlObject { name: string; url: IconsModule; } From 460f0b7a3dffee6f9259523fb9bc2fce0b5df923 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 20:45:24 +0000 Subject: [PATCH 60/72] - --- src/lib/util/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 041d2dce2..07d95d19a 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -38,7 +38,7 @@ class IconKeyValue { class IconsModule { aliases: DummyParent; height: number; - icons: IconKeyValue[]; + icons: IconKeyValue; lastModified: number; prefix: string; width: number; @@ -60,8 +60,8 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { console.log(url); console.log(typeof url); console.log('------'); - const iconsM = url// as IconsModule; - const icons = iconsM.icons// as IconKeyValue[]; + const iconsM = JSON.parse(url) as IconsModule; + const icons = JSON.parse(iconsM.icons) as IconKeyValue; console.log('---- AAAAAAA -----'); console.log(iconsM); From b92403151149e419222efd946a98e07156724263 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 21:16:07 +0000 Subject: [PATCH 61/72] - --- src/lib/util/mermaid.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 07d95d19a..b4a2909ee 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -55,19 +55,22 @@ class IconsModule { function UrlsToRegisterObject(UrlOb: UrlObject) { const { name, url } = UrlOb; + /* console.log('------'); console.log(name); console.log(url); console.log(typeof url); console.log('------'); - const iconsM = JSON.parse(url) as IconsModule; - const icons = JSON.parse(iconsM.icons) as IconKeyValue; + */ + //const iconsM = url;//JSON.parse(url) as IconsModule; + const icons = url.icons;//JSON.parse(iconsM.icons) as IconKeyValue; + /* console.log('---- AAAAAAA -----'); console.log(iconsM); console.log(icons); console.log('---- AAAAAAA -----'); - + */ return { name, @@ -99,9 +102,11 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { //Loop till data loads if extension is present } const parsedData = JSON.parse(datastring) as UrlObject[]; + /* console.log('--- PARSED DATA ---'); console.log(parsedData); console.log('--- PARSED DATA ---'); + */ if (parsedData){ return parsedData.length > 0 ? parsedData : null; } From dd019db83484e2fb56b36adfeb01993c4e2716fe Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 21:23:40 +0000 Subject: [PATCH 62/72] - --- src/lib/util/mermaid.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index b4a2909ee..3d55fa187 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -89,6 +89,12 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { } */ + function dummyFunction(number: number){ + return number++; + } + + function print(whatever:number){console.log(whatever)}; + // Tipar la función loadInputs correctamente function loadInputs(): UrlObject[] | null { //waitSync(1000); //Just to try to see if it loads the data @@ -98,9 +104,12 @@ function UrlsToRegisterObject(UrlOb: UrlObject) { // Parseamos los datos asumiendo que siempre son correctos const datastring = dataElement.textContent as string; + let i = 0 as number; while (datastring === 'default string for extension check'){ //Loop till data loads if extension is present + i++; //Trash attempting to avoid the compiler from deleting this code } + print(dummyFunction(i));//More trash to avoid compiler removal; const parsedData = JSON.parse(datastring) as UrlObject[]; /* console.log('--- PARSED DATA ---'); From c98fd420683371ee59998f7d9ecd6f39235d214a Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:04:41 +0000 Subject: [PATCH 63/72] - --- src/lib/util/mermaid.ts | 161 ++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 98 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 3d55fa187..5a403b49f 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -6,136 +6,100 @@ import mermaid from 'mermaid'; mermaid.registerLayoutLoaders(elkLayouts); const init = mermaid.registerExternalDiagrams([zenuml]); -/* -function UrlsToRegisterObject(UrlOb){ - const name = UrlOb.name as string; - const url = UrlOb.url as string; - return { - name: name, - loader: () => import(url).then((module) => module.icons), - } -} -*/ -class Dummy { - parent: string + + + +//----------------------------------------- + +class ExtensionData { + name: string; + url: string; } -class DummyParent { - [x:string]: Dummy[] +class alias { + parent: string; +} +class Aliases { + [x: string] : alias; } -class IconType { +class Icon { body: string; width: number; height: number; } -class IconKeyValue { - [x: string]: IconType +class IconNameData { + [x: string] : Icon; } -class IconsModule { - aliases: DummyParent; - height: number; - icons: IconKeyValue; +class Module { lastModified: number; - prefix: string; + height: number; width: number; + prefix: string; + icons: IconNameData; + aliases: Aliases; } - - //This with chat gpt to pass the type thing, idk about typescript - class UrlObject { +class MermaidRegisterObject { name: string; - url: IconsModule; + loader: Function; } - - // Definir la función correctamente tipada -function UrlsToRegisterObject(UrlOb: UrlObject) { - const { name, url } = UrlOb; - - /* - console.log('------'); - console.log(name); - console.log(url); - console.log(typeof url); - console.log('------'); - */ - //const iconsM = url;//JSON.parse(url) as IconsModule; - const icons = url.icons;//JSON.parse(iconsM.icons) as IconKeyValue; - - /* - console.log('---- AAAAAAA -----'); - console.log(iconsM); - console.log(icons); - console.log('---- AAAAAAA -----'); - */ - - return { - name, - loader: () => { - return icons; // Aseguramos que module tiene la propiedad icons - }, - }; - } - - /* - function waitSync(milliseconds) { - const start = Date.now(); - while (Date.now() - start < milliseconds) { - // Bucle vacío para bloquear el tiempo + +function UrlsToRegisterObject(extension_value: ExtensionData): MermaidRegisterObject { + const name = extension_value.name as string; + const url = extension_value.url as string; + + async function loader_function(url){ + const module = await import(url) as Module; + return module.icons; } - } - */ - function dummyFunction(number: number){ - return number++; - } + async function wrap(){await loader_function(url);} - function print(whatever:number){console.log(whatever)}; - - // Tipar la función loadInputs correctamente - function loadInputs(): UrlObject[] | null { - //waitSync(1000); //Just to try to see if it loads the data - const dataElement = document.querySelector('#extension-data'); - - if (dataElement) { - // Parseamos los datos asumiendo que siempre son correctos - const datastring = dataElement.textContent as string; - - let i = 0 as number; - while (datastring === 'default string for extension check'){ - //Loop till data loads if extension is present - i++; //Trash attempting to avoid the compiler from deleting this code - } - print(dummyFunction(i));//More trash to avoid compiler removal; - const parsedData = JSON.parse(datastring) as UrlObject[]; - /* - console.log('--- PARSED DATA ---'); - console.log(parsedData); - console.log('--- PARSED DATA ---'); - */ - if (parsedData){ - return parsedData.length > 0 ? parsedData : null; - } - else {return null;} + return { + name: name, + loader: wrap, } - return null; +} + +function checkIfExtensionIsPresent(){ + //Just to have true false value instead of null document + if (document.querySelector('#extension-data')){return true;} + else {return false;} +} + +// Tipar la función loadInputs correctamente +function loadInputs(): MermaidRegisterObject[] | null { + //waitSync(1000); //Just to try to see if it loads the data + if (!checkIfExtensionIsPresent()){return null;} + + const dataElement = document.querySelector('#extension-data'); + const extension_data = JSON.parse(dataElement.textContent) as ExtensionData[]; + + let data: MermaidRegisterObject[] = []; + for (let i = 0; i < extension_data.length; i++) { + const mermaidRegister = UrlsToRegisterObject(extension_data[i]); + data.push(mermaidRegister); } + // + + return data; +} // La función mermaidRegisterProcess -function mermaidRegisterProcess() { +async function mermaidRegisterProcess() { const inputs = loadInputs(); if (inputs) { - mermaid.registerIconPacks(inputs.map((x) => UrlsToRegisterObject(x))); + await mermaid.registerIconPacks(inputs); } } -// Llamar al proceso -mermaidRegisterProcess(); +//------- export const render = async ( config: MermaidConfig, @@ -146,6 +110,7 @@ export const render = async ( // Should be able to call this multiple times without any issues. mermaid.initialize(config); + await mermaidRegisterProcess(); return await mermaid.render(id, code); }; From 2c60ed76113bc004b4e36d59f9b8af9a12e95557 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:14:50 +0000 Subject: [PATCH 64/72] - --- src/lib/util/mermaid.ts | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 5a403b49f..0a843a4fa 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -48,16 +48,18 @@ class MermaidRegisterObject { loader: Function; } -function UrlsToRegisterObject(extension_value: ExtensionData): MermaidRegisterObject { - const name = extension_value.name as string; - const url = extension_value.url as string; +async function loader_function(url){ + const module = await import(url) as Module; + return module; +} - async function loader_function(url){ - const module = await import(url) as Module; - return module.icons; - } +async function UrlsToRegisterObject(extension_value: ExtensionData): MermaidRegisterObject { + const name = extension_value.name// as string; + const url = extension_value.url// as string; + + const module = await loader_function(url); - async function wrap(){await loader_function(url);} + function wrap(){return module.icons;} return { name: name, @@ -72,16 +74,16 @@ function checkIfExtensionIsPresent(){ } // Tipar la función loadInputs correctamente -function loadInputs(): MermaidRegisterObject[] | null { +async function loadInputs(): MermaidRegisterObject[] | null { //waitSync(1000); //Just to try to see if it loads the data if (!checkIfExtensionIsPresent()){return null;} const dataElement = document.querySelector('#extension-data'); const extension_data = JSON.parse(dataElement.textContent) as ExtensionData[]; - let data: MermaidRegisterObject[] = []; - for (let i = 0; i < extension_data.length; i++) { - const mermaidRegister = UrlsToRegisterObject(extension_data[i]); + const data: MermaidRegisterObject[] = []; + for (const item of extension_data) { + const mermaidRegister = await UrlsToRegisterObject(item); data.push(mermaidRegister); } // @@ -91,9 +93,9 @@ function loadInputs(): MermaidRegisterObject[] | null { // La función mermaidRegisterProcess async function mermaidRegisterProcess() { - const inputs = loadInputs(); + const inputs = await loadInputs(); if (inputs) { - await mermaid.registerIconPacks(inputs); + mermaid.registerIconPacks(inputs); } } From 4f928fdc4e2db4b7fd87c742d6095d8437b6c90e Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:22:54 +0000 Subject: [PATCH 65/72] - --- src/lib/util/mermaid.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 0a843a4fa..c5f2cf785 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -53,7 +53,7 @@ async function loader_function(url){ return module; } -async function UrlsToRegisterObject(extension_value: ExtensionData): MermaidRegisterObject { +async function UrlsToRegisterObject(extension_value: ExtensionData): Promise { const name = extension_value.name// as string; const url = extension_value.url// as string; @@ -69,12 +69,11 @@ async function UrlsToRegisterObject(extension_value: ExtensionData): MermaidRegi function checkIfExtensionIsPresent(){ //Just to have true false value instead of null document - if (document.querySelector('#extension-data')){return true;} - else {return false;} + return document.querySelector('#extension-data') ? true : false; } // Tipar la función loadInputs correctamente -async function loadInputs(): MermaidRegisterObject[] | null { +async function loadInputs(): Promise { //waitSync(1000); //Just to try to see if it loads the data if (!checkIfExtensionIsPresent()){return null;} From 29df79480d7b0d64dcdd379ed9e88023e373affb Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:33:08 +0000 Subject: [PATCH 66/72] - --- src/lib/util/mermaid.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index c5f2cf785..a7b5d2987 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -43,12 +43,14 @@ class Module { aliases: Aliases; } +type WrapFunction = () => IconNameData; + class MermaidRegisterObject { name: string; - loader: Function; + loader: WrapFunction; } -async function loader_function(url){ +async function loader_function(url): Promise{ const module = await import(url) as Module; return module; } @@ -59,7 +61,7 @@ async function UrlsToRegisterObject(extension_value: ExtensionData): Promise Date: Sun, 26 Jan 2025 22:43:42 +0000 Subject: [PATCH 67/72] - --- src/lib/util/mermaid.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index a7b5d2987..8af9c1ad6 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -51,8 +51,9 @@ class MermaidRegisterObject { } async function loader_function(url): Promise{ - const module = await import(url) as Module; - return module; + //const module = await import(url) as Module; + const module = await fetch('your-json-file-url'); + return module.json(); } async function UrlsToRegisterObject(extension_value: ExtensionData): Promise { From 75129b2f7c67bef8f77039d14054bc405e8f0c39 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:48:55 +0000 Subject: [PATCH 68/72] - --- src/lib/util/mermaid.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 8af9c1ad6..40494ed85 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -50,10 +50,12 @@ class MermaidRegisterObject { loader: WrapFunction; } -async function loader_function(url): Promise{ - //const module = await import(url) as Module; - const module = await fetch('your-json-file-url'); - return module.json(); +async function loader_function(url: string): Promise { + const response = await fetch(url); // Tipo: Response + const module = await response.json(); // El tipo de `json()` es `any`, pero lo asignamos a `Module` + + // Asegurándonos de que el JSON tenga la forma correcta de `Module` + return module as Module; // Aquí estamos afirmando que el JSON tiene la forma de `Module` } async function UrlsToRegisterObject(extension_value: ExtensionData): Promise { From 79dffa86432290c62081f99c01ceecd3ba974215 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 22:51:41 +0000 Subject: [PATCH 69/72] - --- src/lib/util/mermaid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 40494ed85..e86ad7368 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -52,10 +52,10 @@ class MermaidRegisterObject { async function loader_function(url: string): Promise { const response = await fetch(url); // Tipo: Response - const module = await response.json(); // El tipo de `json()` es `any`, pero lo asignamos a `Module` + const module = await response.json() as Module; // El tipo de `json()` es `any`, pero lo asignamos a `Module` // Asegurándonos de que el JSON tenga la forma correcta de `Module` - return module as Module; // Aquí estamos afirmando que el JSON tiene la forma de `Module` + return module; // Aquí estamos afirmando que el JSON tiene la forma de `Module` } async function UrlsToRegisterObject(extension_value: ExtensionData): Promise { From 07e9cd71687580eee0eebb913497b94da8b87cac Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 26 Jan 2025 23:00:10 +0000 Subject: [PATCH 70/72] - --- src/lib/util/mermaid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index e86ad7368..acf2eee95 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -43,7 +43,7 @@ class Module { aliases: Aliases; } -type WrapFunction = () => IconNameData; +type WrapFunction = () => Module; class MermaidRegisterObject { name: string; @@ -64,7 +64,7 @@ async function UrlsToRegisterObject(extension_value: ExtensionData): Promise Date: Sun, 26 Jan 2025 23:06:37 +0000 Subject: [PATCH 71/72] Fin, funciona --- src/lib/util/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index acf2eee95..e81da557a 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -70,7 +70,7 @@ async function UrlsToRegisterObject(extension_value: ExtensionData): Promise Date: Mon, 27 Jan 2025 00:09:04 +0000 Subject: [PATCH 72/72] - --- src/lib/util/mermaid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index e81da557a..f29283d57 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -59,8 +59,8 @@ async function loader_function(url: string): Promise { } async function UrlsToRegisterObject(extension_value: ExtensionData): Promise { - const name = extension_value.name// as string; - const url = extension_value.url// as string; + const name = extension_value.name + const url = extension_value.url const module = await loader_function(url);