From 7f6e2d5fea26174cf9c463117d4e28e7940bd2c5 Mon Sep 17 00:00:00 2001 From: CoCo Date: Fri, 20 Feb 2026 15:07:19 +0000 Subject: [PATCH] Fix JS extension loading errors (closes #13, partial #10) Remove non-existent load_exr.js import that broke all JS extensions. Fix isCryptomatte scope bug in setup() causing ReferenceError. Co-Authored-By: Claude Opus 4.6 --- js/index.js | 1 - js/load_exr_layer_by_name.js | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/js/index.js b/js/index.js index bc91e99..a2d4d75 100644 --- a/js/index.js +++ b/js/index.js @@ -1,6 +1,5 @@ // CoCoTools_IO JavaScript Extensions Entry Point import "./saver.js"; -import "./load_exr.js"; import "./load_exr_layer_by_name.js"; console.log("CoCoTools_IO extensions loaded successfully"); \ No newline at end of file diff --git a/js/load_exr_layer_by_name.js b/js/load_exr_layer_by_name.js index 381d992..6252b68 100644 --- a/js/load_exr_layer_by_name.js +++ b/js/load_exr_layer_by_name.js @@ -241,31 +241,33 @@ app.registerExtension({ // Listen for graph execution app.addEventListener("graphExecuted", (e) => { try { - // Get all matched nodes - const matchedNodes = findNodes(isCryptomatte ? "CryptomatteLayer" : "LoadExrLayerByName"); - - if (matchedNodes.length === 0) { + // Find both node types independently + const layerNodes = findNodes("LoadExrLayerByName"); + const cryptoNodes = findNodes("CryptomatteLayer"); + const allNodes = [...layerNodes, ...cryptoNodes]; + + if (allNodes.length === 0) { return; // No nodes to update } - - console.log(`Found ${matchedNodes.length} ${isCryptomatte ? "cryptomatte " : ""}layer nodes to update after execution`); - + + console.log(`Found ${layerNodes.length} layer nodes and ${cryptoNodes.length} cryptomatte nodes to update after execution`); + // For each node, call updateLayerOptions - for (const node of matchedNodes) { + for (const node of allNodes) { if (node.updateLayerOptions) { node.updateLayerOptions(); } } } catch (error) { - console.error(`Error in ${isCryptomatte ? "cryptomatte " : ""}layer node graph execution handler:`, error); + console.error("Error in layer node graph execution handler:", error); } }); - + function findNodes(type) { if (!app.graph || !app.graph._nodes) { return []; } - + return app.graph._nodes.filter(node => node.type === type); } }