mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-04 13:12:10 +00:00
Add name field to BaseInputSpec (#226)
This commit is contained in:
@@ -4,6 +4,7 @@ import { defineStore } from 'pinia'
|
|||||||
import { Type, Transform, plainToClass } from 'class-transformer'
|
import { Type, Transform, plainToClass } from 'class-transformer'
|
||||||
|
|
||||||
export class BaseInputSpec<T = any> {
|
export class BaseInputSpec<T = any> {
|
||||||
|
name: string
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
default?: T
|
default?: T
|
||||||
@@ -89,12 +90,15 @@ export class ComfyInputsSpec {
|
|||||||
if (!record) return record
|
if (!record) return record
|
||||||
const result: Record<string, BaseInputSpec> = {}
|
const result: Record<string, BaseInputSpec> = {}
|
||||||
for (const [key, value] of Object.entries(record)) {
|
for (const [key, value] of Object.entries(record)) {
|
||||||
result[key] = ComfyInputsSpec.transformSingleInputSpec(value)
|
result[key] = ComfyInputsSpec.transformSingleInputSpec(key, value)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
private static transformSingleInputSpec(value: any): BaseInputSpec {
|
private static transformSingleInputSpec(
|
||||||
|
name: string,
|
||||||
|
value: any
|
||||||
|
): BaseInputSpec {
|
||||||
if (!BaseInputSpec.isInputSpec(value)) return value
|
if (!BaseInputSpec.isInputSpec(value)) return value
|
||||||
|
|
||||||
const [typeRaw, spec] = value
|
const [typeRaw, spec] = value
|
||||||
@@ -102,21 +106,22 @@ export class ComfyInputsSpec {
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'INT':
|
case 'INT':
|
||||||
return plainToClass(IntInputSpec, { type, ...spec })
|
return plainToClass(IntInputSpec, { name, type, ...spec })
|
||||||
case 'FLOAT':
|
case 'FLOAT':
|
||||||
return plainToClass(FloatInputSpec, { type, ...spec })
|
return plainToClass(FloatInputSpec, { name, type, ...spec })
|
||||||
case 'BOOLEAN':
|
case 'BOOLEAN':
|
||||||
return plainToClass(BooleanInputSpec, { type, ...spec })
|
return plainToClass(BooleanInputSpec, { name, type, ...spec })
|
||||||
case 'STRING':
|
case 'STRING':
|
||||||
return plainToClass(StringInputSpec, { type, ...spec })
|
return plainToClass(StringInputSpec, { name, type, ...spec })
|
||||||
case 'COMBO':
|
case 'COMBO':
|
||||||
return plainToClass(ComboInputSpec, {
|
return plainToClass(ComboInputSpec, {
|
||||||
|
name,
|
||||||
type,
|
type,
|
||||||
...spec,
|
...spec,
|
||||||
comboOptions: typeRaw
|
comboOptions: typeRaw
|
||||||
})
|
})
|
||||||
default:
|
default:
|
||||||
return plainToClass(CustomInputSpec, { type, ...spec })
|
return plainToClass(CustomInputSpec, { name, type, ...spec })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,8 +56,10 @@ describe('ComfyInputsSpec', () => {
|
|||||||
expect(intInput.min).toBe(0)
|
expect(intInput.min).toBe(0)
|
||||||
expect(intInput.max).toBe(100)
|
expect(intInput.max).toBe(100)
|
||||||
expect(intInput.default).toBe(50)
|
expect(intInput.default).toBe(50)
|
||||||
|
expect(intInput.name).toBe('intInput')
|
||||||
expect(stringInput.default).toBe('Hello')
|
expect(stringInput.default).toBe('Hello')
|
||||||
expect(stringInput.multiline).toBe(true)
|
expect(stringInput.multiline).toBe(true)
|
||||||
|
expect(stringInput.name).toBe('stringInput')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should correctly transform optional input specs', () => {
|
it('should correctly transform optional input specs', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user