mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-27 03:19:56 +00:00
## Summary - Enable `verbatimModuleSyntax` compiler option in TypeScript configuration - Update all type imports to use explicit `import type` syntax - This change will Improve tree-shaking and bundler compatibility ## Motivation The `verbatimModuleSyntax` option ensures that type-only imports are explicitly marked with the `type` keyword. This: - Makes import/export intentions clearer - Improves tree-shaking by helping bundlers identify what can be safely removed - Ensures better compatibility with modern bundlers - Follows TypeScript best practices for module syntax ## Changes - Added `"verbatimModuleSyntax": true` to `tsconfig.json` - Updated another 48+ files to use explicit `import type` syntax for type-only imports - No functional changes, only import/export syntax improvements ## Test Plan - [x] TypeScript compilation passes - [x] Build completes successfully - [x] Tests pass - [ ] No runtime behavior changes 🤖 Generated with [Claude Code](https://claude.ai/code) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5533-feat-enable-verbatimModuleSyntax-in-TypeScript-config-26d6d73d36508190b424ef9b379b5130) by [Unito](https://www.unito.io)
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import {
|
|
type ComfyNodeDef,
|
|
type InputSpec,
|
|
isComboInputSpecV1
|
|
} from '@/schemas/nodeDefSchema'
|
|
|
|
import { app } from '../../scripts/app'
|
|
|
|
// Adds an upload button to the nodes
|
|
|
|
const isMediaUploadComboInput = (inputSpec: InputSpec) => {
|
|
const [inputName, inputOptions] = inputSpec
|
|
if (!inputOptions) return false
|
|
|
|
const isUploadInput =
|
|
inputOptions['image_upload'] === true ||
|
|
inputOptions['video_upload'] === true ||
|
|
inputOptions['animated_image_upload'] === true
|
|
|
|
return (
|
|
isUploadInput && (isComboInputSpecV1(inputSpec) || inputName === 'COMBO')
|
|
)
|
|
}
|
|
|
|
const createUploadInput = (
|
|
imageInputName: string,
|
|
imageInputOptions: InputSpec
|
|
): InputSpec => [
|
|
'IMAGEUPLOAD',
|
|
{
|
|
...imageInputOptions[1],
|
|
imageInputName
|
|
}
|
|
]
|
|
|
|
app.registerExtension({
|
|
name: 'Comfy.UploadImage',
|
|
beforeRegisterNodeDef(_nodeType, nodeData: ComfyNodeDef) {
|
|
const { input } = nodeData ?? {}
|
|
const { required } = input ?? {}
|
|
if (!required) return
|
|
|
|
const found = Object.entries(required).find(([_, input]) =>
|
|
isMediaUploadComboInput(input)
|
|
)
|
|
|
|
// If media combo input found, attach upload input
|
|
if (found) {
|
|
const [inputName, inputSpec] = found
|
|
required.upload = createUploadInput(inputName, inputSpec)
|
|
}
|
|
}
|
|
})
|