Devex: Linter updates (#7309)

## Summary

Updates for the linter/formatter deps, turning on some more rules.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7309-WIP-Linter-updates-2c56d73d36508101b3ece6bcaf7e5212)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Christian Byrne <cbyrne@comfy.org>
This commit is contained in:
Alexander Brown
2025-12-10 11:08:47 -08:00
committed by GitHub
parent b52b2bbc30
commit 72b5444d5a
62 changed files with 1331 additions and 766 deletions

View File

@@ -249,9 +249,7 @@ const link_bounding = new Rectangle()
* This class is in charge of rendering one graph inside a canvas. And provides all the interaction required.
* Valid callbacks are: onNodeSelected, onNodeDeselected, onShowNodePanel, onNodeDblClicked
*/
export class LGraphCanvas
implements CustomEventDispatcher<LGraphCanvasEventMap>
{
export class LGraphCanvas implements CustomEventDispatcher<LGraphCanvasEventMap> {
static DEFAULT_BACKGROUND_IMAGE =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII='

View File

@@ -2,9 +2,9 @@
* Temporary workaround until downstream consumers migrate to Map.
* A brittle wrapper with many flaws, but should be fine for simple maps using int indexes.
*/
export class MapProxyHandler<V>
implements ProxyHandler<Map<number | string, V>>
{
export class MapProxyHandler<V> implements ProxyHandler<
Map<number | string, V>
> {
getOwnPropertyDescriptor(
target: Map<number | string, V>,
p: string | symbol

View File

@@ -81,9 +81,9 @@ export interface CustomEventDispatcher<
* ```
*/
export class CustomEventTarget<
EventMap extends Record<Keys, unknown>,
Keys extends keyof EventMap & string = keyof EventMap & string
>
EventMap extends Record<Keys, unknown>,
Keys extends keyof EventMap & string = keyof EventMap & string
>
extends EventTarget
implements ICustomEventTarget<EventMap, Keys>
{

View File

@@ -380,8 +380,10 @@ interface IContextMenuBase {
}
/** ContextMenu */
export interface IContextMenuOptions<TValue = unknown, TExtra = unknown>
extends IContextMenuBase {
export interface IContextMenuOptions<
TValue = unknown,
TExtra = unknown
> extends IContextMenuBase {
ignore_item_callbacks?: boolean
parentMenu?: ContextMenu<TValue>
event?: MouseEvent
@@ -426,13 +428,15 @@ export interface IContextMenuValue<
): void | boolean | Promise<void | boolean>
}
interface IContextMenuSubmenu<TValue = unknown>
extends IContextMenuOptions<TValue> {
interface IContextMenuSubmenu<
TValue = unknown
> extends IContextMenuOptions<TValue> {
options: ConstructorParameters<typeof ContextMenu<TValue>>[0]
}
export interface ContextMenuDivElement<TValue = unknown>
extends HTMLDivElement {
export interface ContextMenuDivElement<
TValue = unknown
> extends HTMLDivElement {
value?: string | IContextMenuValue<TValue>
onclick_callback?: never
}

View File

@@ -30,8 +30,8 @@ import type { SubgraphInput } from './SubgraphInput'
import type { SubgraphOutput } from './SubgraphOutput'
export abstract class SubgraphIONodeBase<
TSlot extends SubgraphInput | SubgraphOutput
>
TSlot extends SubgraphInput | SubgraphOutput
>
implements Positionable, Hoverable, Serialisable<ExportedSubgraphIONode>
{
static margin = 10

View File

@@ -46,9 +46,7 @@ export interface CanvasPointerEvent extends PointerEvent, CanvasMouseEvent {}
/** MouseEvent with canvasX/Y and deltaX/Y properties */
interface CanvasMouseEvent
extends MouseEvent,
Readonly<CanvasPointerExtensions>,
LegacyMouseEvent {}
extends MouseEvent, Readonly<CanvasPointerExtensions>, LegacyMouseEvent {}
export type CanvasEventDetail =
| GenericEventDetail

View File

@@ -94,27 +94,32 @@ export interface INumericWidget extends IBaseWidget<number, 'number'> {
value: number
}
export interface ISliderWidget
extends IBaseWidget<number, 'slider', IWidgetSliderOptions> {
export interface ISliderWidget extends IBaseWidget<
number,
'slider',
IWidgetSliderOptions
> {
type: 'slider'
value: number
marker?: number
}
export interface IKnobWidget
extends IBaseWidget<number, 'knob', IWidgetKnobOptions> {
export interface IKnobWidget extends IBaseWidget<
number,
'knob',
IWidgetKnobOptions
> {
type: 'knob'
value: number
options: IWidgetKnobOptions
}
/** Avoids the type issues with the legacy IComboWidget type */
export interface IStringComboWidget
extends IBaseWidget<
string,
'combo',
RequiredProps<IWidgetOptions<string[]>, 'values'>
> {
export interface IStringComboWidget extends IBaseWidget<
string,
'combo',
RequiredProps<IWidgetOptions<string[]>, 'values'>
> {
type: 'combo'
value: string
}
@@ -125,25 +130,29 @@ type ComboWidgetValues =
| ((widget?: IComboWidget, node?: LGraphNode) => string[])
/** A combo-box widget (dropdown, select, etc) */
export interface IComboWidget
extends IBaseWidget<
string | number,
'combo',
RequiredProps<IWidgetOptions<ComboWidgetValues>, 'values'>
> {
export interface IComboWidget extends IBaseWidget<
string | number,
'combo',
RequiredProps<IWidgetOptions<ComboWidgetValues>, 'values'>
> {
type: 'combo'
value: string | number
}
/** A widget with a string value */
export interface IStringWidget
extends IBaseWidget<string, 'string' | 'text', IWidgetOptions<string[]>> {
export interface IStringWidget extends IBaseWidget<
string,
'string' | 'text',
IWidgetOptions<string[]>
> {
type: 'string' | 'text'
value: string
}
export interface IButtonWidget
extends IBaseWidget<string | undefined, 'button'> {
export interface IButtonWidget extends IBaseWidget<
string | undefined,
'button'
> {
type: 'button'
value: string | undefined
clicked: boolean
@@ -181,15 +190,19 @@ interface IImageWidget extends IBaseWidget<string, 'image'> {
}
/** Tree select widget for hierarchical selection */
export interface ITreeSelectWidget
extends IBaseWidget<string | string[], 'treeselect'> {
export interface ITreeSelectWidget extends IBaseWidget<
string | string[],
'treeselect'
> {
type: 'treeselect'
value: string | string[]
}
/** Multi-select widget for selecting multiple options */
export interface IMultiSelectWidget
extends IBaseWidget<string[], 'multiselect'> {
export interface IMultiSelectWidget extends IBaseWidget<
string[],
'multiselect'
> {
type: 'multiselect'
value: string[]
}
@@ -207,19 +220,20 @@ export interface IGalleriaWidget extends IBaseWidget<string[], 'galleria'> {
}
/** Image comparison widget for comparing two images side by side */
export interface IImageCompareWidget
extends IBaseWidget<string[], 'imagecompare'> {
export interface IImageCompareWidget extends IBaseWidget<
string[],
'imagecompare'
> {
type: 'imagecompare'
value: string[]
}
/** Select button widget for selecting from a group of buttons */
export interface ISelectButtonWidget
extends IBaseWidget<
string,
'selectbutton',
RequiredProps<IWidgetOptions<string[]>, 'values'>
> {
export interface ISelectButtonWidget extends IBaseWidget<
string,
'selectbutton',
RequiredProps<IWidgetOptions<string[]>, 'values'>
> {
type: 'selectbutton'
value: string
}
@@ -230,8 +244,11 @@ export interface ITextareaWidget extends IBaseWidget<string, 'textarea'> {
value: string
}
export interface IAssetWidget
extends IBaseWidget<string, 'asset', IWidgetOptions<string[]>> {
export interface IAssetWidget extends IBaseWidget<
string,
'asset',
IWidgetOptions<string[]>
> {
type: 'asset'
value: string
}

View File

@@ -33,9 +33,9 @@ export interface WidgetEventOptions {
canvas: LGraphCanvas
}
export abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget>
implements IBaseWidget
{
export abstract class BaseWidget<
TWidget extends IBaseWidget = IBaseWidget
> implements IBaseWidget {
/** From node edge to widget edge */
static margin = 15
/** From widget edge to tip of arrow button */