diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index c99d76841..532d73139 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -119,7 +119,6 @@ export function safeWidgetMapper( ) { widget.value = widget.options.values[0] } - //@ts-expect-error duck violence if (!widget.valueRef) { const valueRef = ref(widget.value) watch(valueRef, (newValue) => { @@ -128,10 +127,8 @@ export function safeWidgetMapper( }) widget.callback = useChainCallback(widget.callback, () => { if (valueRef.value !== widget.value) - //@ts-expect-error duck violence - valueRef.value = validateWidgetValue(widget.value) + valueRef.value = validateWidgetValue(widget.value) ?? undefined }) - //@ts-expect-error duck violence widget.valueRef = () => valueRef } const spec = nodeDefStore.getInputSpecForWidget(node, widget.name) @@ -145,7 +142,6 @@ export function safeWidgetMapper( return { name: widget.name, type: widget.type, - //@ts-expect-error duck violence value: widget.valueRef, borderStyle, isDOMWidget: isDOMWidget(widget), diff --git a/src/lib/litegraph/src/types/widgets.ts b/src/lib/litegraph/src/types/widgets.ts index f383f9404..abb7953dc 100644 --- a/src/lib/litegraph/src/types/widgets.ts +++ b/src/lib/litegraph/src/types/widgets.ts @@ -1,3 +1,5 @@ +import type { Ref } from 'vue' + import type { CanvasColour, Point, RequiredProps, Size } from '../interfaces' import type { CanvasPointer, LGraphCanvas, LGraphNode } from '../litegraph' import type { CanvasPointerEvent } from './events' @@ -284,6 +286,7 @@ export interface IBaseWidget< /** Widget type (see {@link TWidgetType}) */ type: TType value?: TValue + valueRef?: () => Ref /** * Whether the widget value should be serialized on node serialization.