| import { app } from "../scripts/app.js"; | |
| const ext = { | |
| // Unique name for the extension | |
| name: "Example.LoggingExtension", | |
| async init(app) { | |
| // Any initial setup to run as soon as the page loads | |
| console.log("[logging]", "extension init"); | |
| }, | |
| async setup(app) { | |
| // Any setup to run after the app is created | |
| console.log("[logging]", "extension setup"); | |
| }, | |
| async addCustomNodeDefs(defs, app) { | |
| // Add custom node definitions | |
| // These definitions will be configured and registered automatically | |
| // defs is a lookup core nodes, add yours into this | |
| console.log("[logging]", "add custom node definitions", "current nodes:", Object.keys(defs)); | |
| }, | |
| async getCustomWidgets(app) { | |
| // Return custom widget types | |
| // See ComfyWidgets for widget examples | |
| console.log("[logging]", "provide custom widgets"); | |
| }, | |
| async beforeRegisterNodeDef(nodeType, nodeData, app) { | |
| // Run custom logic before a node definition is registered with the graph | |
| console.log("[logging]", "before register node: ", nodeType, nodeData); | |
| // This fires for every node definition so only log once | |
| delete ext.beforeRegisterNodeDef; | |
| }, | |
| async registerCustomNodes(app) { | |
| // Register any custom node implementations here allowing for more flexability than a custom node def | |
| console.log("[logging]", "register custom nodes"); | |
| }, | |
| loadedGraphNode(node, app) { | |
| // Fires for each node when loading/dragging/etc a workflow json or png | |
| // If you break something in the backend and want to patch workflows in the frontend | |
| // This is the place to do this | |
| console.log("[logging]", "loaded graph node: ", node); | |
| // This fires for every node on each load so only log once | |
| delete ext.loadedGraphNode; | |
| }, | |
| nodeCreated(node, app) { | |
| // Fires every time a node is constructed | |
| // You can modify widgets/add handlers/etc here | |
| console.log("[logging]", "node created: ", node); | |
| // This fires for every node so only log once | |
| delete ext.nodeCreated; | |
| } | |
| }; | |
| app.registerExtension(ext); | |