From 6db8409e6e7d9be39fe4df8a2f190d13fc90d530 Mon Sep 17 00:00:00 2001 From: "Kritagya Bhattarai (CalfMoon)" Date: Sat, 28 Mar 2026 11:46:04 +0545 Subject: [PATCH] refactor: write cleaner code and comments --- src/main.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main.ts b/src/main.ts index 64361d0..beb6b88 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,7 +6,7 @@ import NodeFactorSettingTab from "./settings"; export default class NodeFactor extends Plugin { settings: NodeFactorSettings; - // stops loop when graph isn't open + // interval Id of continously running loop private loopId: NodeJS.Timer; async onload() { @@ -18,22 +18,26 @@ export default class NodeFactor extends Plugin { const leaf = this.app.workspace .getLeavesOfType("graph") .first(); + // exit loop if the loaded page isn't grah if (!leaf) { clearInterval(this.loopId); return; } // @ts-ignore - const nodes: ObsidianNode[] = leaf.view.renderer.nodes; + const nodes: Array = leaf.view.renderer.nodes; if (nodes.length === 0) return; this.clearSizeCache(); - this.calcLoop(nodes); + this.updateLoop(nodes); }), ); // clear cache when there is change in the vault this.app.workspace.onLayoutReady(() => { + // layout ready is required because obsidian calls + // create for every existing file when initally loading obsidian + // https://docs.obsidian.md/plugins/guides/load-time#Pitfalls this.registerEvent( this.app.vault.on("create", () => this.clearSizeCache()), ); @@ -53,16 +57,14 @@ export default class NodeFactor extends Plugin { clearInterval(this.loopId); } - private calcLoop(nodes: ObsidianNode[]) { - this.loopId = setInterval(() => { - this.updateNodes(nodes); - }, 500); + private updateLoop(nodes: Array) { + this.loopId = setInterval(() => this.updateNodes(nodes), 500); } private storedSize: Map = new Map(); - private updateNodes(nodes: ObsidianNode[]) { - nodes.forEach((node, i) => { - let weight: number; + private updateNodes(nodes: Array) { + nodes.forEach((node, _i) => { + let weight = 0; if (this.storedSize.get(node.id) != undefined) { weight = this.storedSize.get(node.id) as number; } else { @@ -94,7 +96,7 @@ export default class NodeFactor extends Plugin { private letterCount(node: ObsidianNode): number { const file = this.app.vault.getFileByPath(node.id); - if (!file || file.extension != "md") return 0; + if (file == null || file.extension != "md") return 0; return file.stat.size; } @@ -104,11 +106,11 @@ export default class NodeFactor extends Plugin { node: ObsidianNode, antiLoopSet: Set, ): number { - let size: number = 0; + let size = 0; antiLoopSet.add(node.id); const sizeMap = this.treeOptimizeMap.get(node.id); - if (sizeMap !== undefined) { + if (sizeMap != undefined) { return sizeMap as number; }