« get me outta code hell

data: HomepageLayoutRow: nice util.inspect - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-02-11 10:33:57 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-02-12 07:43:59 -0400
commit39f7e9e975990bcfa28f9ccb20ff98e4a2867ddf (patch)
treea202d3077d63308338917f67b7c9e07238b71700 /src
parentf6b1f4d7213b953c10a6d196ec04e7e18271f3e2 (diff)
data: HomepageLayoutRow: nice util.inspect
Diffstat (limited to 'src')
-rw-r--r--src/data/things/homepage-layout.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/data/things/homepage-layout.js b/src/data/things/homepage-layout.js
index b4b31f4f..97e481f8 100644
--- a/src/data/things/homepage-layout.js
+++ b/src/data/things/homepage-layout.js
@@ -1,5 +1,8 @@
 export const HOMEPAGE_LAYOUT_DATA_FILE = 'homepage.yaml';
 
+import {inspect} from 'node:util';
+
+import {colors} from '#cli';
 import {input} from '#composite';
 import Thing from '#thing';
 import {empty} from '#sugar';
@@ -185,6 +188,24 @@ export class HomepageLayoutRow extends Thing {
       'Row': {property: 'type'},
     },
   };
+
+  [inspect.custom](depth) {
+    const parts = [];
+
+    parts.push(Thing.prototype[inspect.custom].apply(this));
+
+    if (depth >= 0 && this.section) {
+      const sectionName = this.section.name;
+      const index = this.section.rows.indexOf(this);
+      const rowNum =
+        (index === -1
+          ? 'indeterminate position'
+          : `#${index + 1}`);
+      parts.push(` (${colors.yellow(rowNum)} in ${colors.green(sectionName)})`);
+    }
+
+    return parts.join('');
+  }
 }
 
 export class HomepageLayoutAlbumsRow extends HomepageLayoutRow {