fix: extract WidgetCallbackOptions interface and add curly braces (#8791)

## Summary

improve for https://github.com/Comfy-Org/ComfyUI_frontend/pull/8774

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8791-fix-extract-WidgetCallbackOptions-interface-and-add-curly-braces-3046d73d365081c49e37c0a2596f1958)
by [Unito](https://www.unito.io)
This commit is contained in:
Terry Jia
2026-02-10 20:47:37 -05:00
committed by GitHub
parent f7b835e6a5
commit 10e9bc2f8d
3 changed files with 11 additions and 5 deletions

View File

@@ -1394,8 +1394,9 @@ export class ComfyApp {
// Allow widgets to run callbacks before a prompt has been queued
// e.g. random seed before every gen
forEachNode(this.rootGraph, (node) => {
for (const widget of node.widgets ?? [])
for (const widget of node.widgets ?? []) {
widget.beforeQueued?.({ isPartialExecution })
}
})
const p = await this.graphToPrompt(this.rootGraph)

View File

@@ -45,10 +45,14 @@ declare module '@/lib/litegraph/src/types/widgets' {
hidden?: boolean
}
interface WidgetCallbackOptions {
isPartialExecution?: boolean
}
interface IBaseWidget {
onRemove?(): void
beforeQueued?(options?: { isPartialExecution?: boolean }): unknown
afterQueued?(options?: { isPartialExecution?: boolean }): unknown
beforeQueued?(options?: WidgetCallbackOptions): unknown
afterQueued?(options?: WidgetCallbackOptions): unknown
serializeValue?(node: LGraphNode, index: number): Promise<unknown> | unknown
/**

View File

@@ -14,7 +14,8 @@ import type {
} from '@/lib/litegraph/src/types/serialisation'
import type {
IBaseWidget,
IComboWidget
IComboWidget,
WidgetCallbackOptions
} from '@/lib/litegraph/src/types/widgets'
import type { InputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2'
@@ -84,7 +85,7 @@ export const getItemsColorOption = (items: unknown[]): ColorOption | null => {
export function executeWidgetsCallback(
nodes: LGraphNode[],
callbackName: 'onRemove' | 'beforeQueued' | 'afterQueued',
options?: { isPartialExecution?: boolean }
options?: WidgetCallbackOptions
) {
for (const node of nodes) {
for (const widget of node.widgets ?? []) {