From e07cafb5c840b7dc76ae54b623db4027127c0cb1 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Thu, 20 May 2021 16:59:49 +0200
Subject: [PATCH] feature: improve route for extensions

---
 src/components/getRoute.js | 20 ++++++++++++--------
 src/hubl-router.pug        | 20 ++++++++++++--------
 2 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/components/getRoute.js b/src/components/getRoute.js
index 231b713d..c4270062 100644
--- a/src/components/getRoute.js
+++ b/src/components/getRoute.js
@@ -1,17 +1,21 @@
 window.hubl.getRoute = (type, returnFirst = false) => {
-  let availables = window.hubl.components.filter(c=>c.type==type||c.uniq==type);
-  availables.map(c => {
-    if(c.extensions) {
-      c.extensions.forEach(e => availables.push(e.type));
+  let availables = window.hubl.components.filter(c => c.type == type || c.uniq == type);
+  window.hubl.components.forEach(c => {
+    if (c.extensions) {
+      c.extensions.forEach(e => {
+        if (e.type == type || e.uniq == type) {
+          availables.push(e.type);
+        }
+      });
     }
   });
-  if(availables.length > 1) {
-    if(returnFirst) {
+  if (availables.length > 1) {
+    if (returnFirst) {
       return availables[0].route;
     } else {
-      return availables[availables.length-1].route;
+      return availables[availables.length - 1].route;
     }
-  } else if(availables.length < 1) {
+  } else if (availables.length < 1) {
     console.error(`No component found for route ${type}`);
   } else {
     return availables[0].route;
diff --git a/src/hubl-router.pug b/src/hubl-router.pug
index 18bf1d42..8e1bf957 100644
--- a/src/hubl-router.pug
+++ b/src/hubl-router.pug
@@ -11,19 +11,23 @@
 -
   let routes = new Set();
   const getRoute = (type, returnFirst = false) => {
-    let availables = components.filter(c=>c.type==type||c.uniq==type);
-    availables.map(c => {
-      if(c.extensions) {
-        c.extensions.forEach(e => availables.push(e.type));
+    let availables = components.filter(c => c.type == type || c.uniq == type);
+    components.forEach(c => {
+      if (c.extensions) {
+        c.extensions.forEach(e => {
+          if (e.type == type || e.uniq == type) {
+            availables.push(e.type);
+          }
+        });
       }
     });
-    if(availables.length > 1) {
-      if(returnFirst) {
+    if (availables.length > 1) {
+      if (returnFirst) {
         return availables[0].route;
       } else {
-        return availables[availables.length-1].route;
+        return availables[availables.length - 1].route;
       }
-    } else if(availables.length < 1) {
+    } else if (availables.length < 1) {
       console.error(`No component found for route ${type}`);
     } else {
       return availables[0].route;
-- 
GitLab