End duck violence

I would prefer that valueRef used the TValue generic, but that causes
many, many awful errors. This is far preferable
This commit is contained in:
Austin Mroz
2025-12-02 00:04:22 -08:00
parent 47650bebf8
commit a50eb8dd57
2 changed files with 4 additions and 5 deletions

View File

@@ -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),

View File

@@ -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<boolean | number | string | object | undefined>
/**
* Whether the widget value should be serialized on node serialization.