about summary refs log tree commit diff
path: root/config/webpack/shared.js
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-02-11 23:06:37 +0100
committerClaire <claire.github-309c@sitedethib.com>2022-02-11 23:49:00 +0100
commit9f763b5b79a8e6c61407943615038bafa499bd22 (patch)
tree1f71e51904edbe78ed24334ebbf38ed5a1341b83 /config/webpack/shared.js
parent59b7ba451b4ded817c98abfa8c88738de0484917 (diff)
Refactor compile-time glitch-soc theme handling
Diffstat (limited to 'config/webpack/shared.js')
-rw-r--r--config/webpack/shared.js51
1 files changed, 23 insertions, 28 deletions
diff --git a/config/webpack/shared.js b/config/webpack/shared.js
index ce08ac206..de347fa88 100644
--- a/config/webpack/shared.js
+++ b/config/webpack/shared.js
@@ -10,38 +10,33 @@ const rules = require('./rules');
 const localePacks = require('./generateLocalePacks');
 
 function reducePacks (data, into = {}) {
-  if (!data.pack) {
-    return into;
-  }
-  Object.keys(data.pack).reduce((map, entry) => {
+  if (!data.pack) return into;
+
+  for (const entry in data.pack) {
     const pack = data.pack[entry];
-    if (!pack) {
-      return map;
-    }
+    if (!pack) continue;
+
     const packFile = typeof pack === 'string' ? pack : pack.filename;
+
     if (packFile) {
-      map[data.name ? `flavours/${data.name}/${entry}` : `core/${entry}`] = resolve(data.pack_directory, packFile);
+      into[data.name ? `flavours/${data.name}/${entry}` : `core/${entry}`] = resolve(data.pack_directory, packFile);
+    }
+  }
+
+  if (!data.name) return into;
+
+  for (const skinName in data.skin) {
+    const skin = data.skin[skinName];
+    if (!skin) continue;
+
+    for (const entry in skin) {
+      const packFile = skin[entry];
+      if (!packFile) continue;
+
+      into[`skins/${data.name}/${skinName}/${entry}`] = resolve(packFile);
     }
-    return map;
-  }, into);
-  if (data.name) {
-    Object.keys(data.skin).reduce((map, entry) => {
-      const skin = data.skin[entry];
-      const skinName = entry;
-      if (!skin) {
-        return map;
-      }
-      Object.keys(skin).reduce((map, entry) => {
-        const packFile = skin[entry];
-        if (!packFile) {
-          return map;
-        }
-        map[`skins/${data.name}/${skinName}/${entry}`] = resolve(packFile);
-        return map;
-      }, into);
-      return map;
-    }, into);
   }
+
   return into;
 }
 
@@ -49,7 +44,7 @@ const entries = Object.assign(
   { locales: resolve('app', 'javascript', 'locales') },
   localePacks,
   reducePacks(core),
-  Object.keys(flavours).reduce((map, entry) => reducePacks(flavours[entry], map), {})
+  Object.values(flavours).reduce((map, data) => reducePacks(data, map), {})
 );