From 42238ce677fcf616a422bdc9dbc5f44b783cf2d6 Mon Sep 17 00:00:00 2001 From: huchenlei Date: Sat, 15 Jun 2024 11:19:26 -0400 Subject: [PATCH] shim --- {src => public}/extensions/core/clipspace.js | 0 {src => public}/extensions/core/colorPalette.js | 0 {src => public}/extensions/core/contextMenuFilter.js | 0 {src => public}/extensions/core/dynamicPrompts.js | 0 {src => public}/extensions/core/editAttention.js | 0 {src => public}/extensions/core/groupNode.js | 0 {src => public}/extensions/core/groupNodeManage.css | 0 {src => public}/extensions/core/groupNodeManage.js | 0 {src => public}/extensions/core/groupOptions.js | 0 {src => public}/extensions/core/invertMenuScrolling.js | 0 {src => public}/extensions/core/keybinds.js | 0 {src => public}/extensions/core/linkRenderMode.js | 0 {src => public}/extensions/core/maskeditor.js | 0 {src => public}/extensions/core/nodeTemplates.js | 0 {src => public}/extensions/core/noteNode.js | 0 {src => public}/extensions/core/rerouteNode.js | 0 {src => public}/extensions/core/saveImageExtraOutput.js | 0 {src => public}/extensions/core/simpleTouchSupport.js | 0 {src => public}/extensions/core/slotDefaults.js | 0 {src => public}/extensions/core/snapToGrid.js | 0 {src => public}/extensions/core/undoRedo.js | 0 {src => public}/extensions/core/uploadImage.js | 0 {src => public}/extensions/core/webcamCapture.js | 0 {src => public}/extensions/core/widgetInputs.js | 0 {src => public}/lib/litegraph.core.js | 0 {src => public}/lib/litegraph.css | 0 {src => public}/lib/litegraph.extensions.js | 0 {src => public}/scripts/ui/draggableList.js | 2 +- src/scripts/app.ts | 9 ++++++++- vite.config.mts | 7 +++++-- 30 files changed, 14 insertions(+), 4 deletions(-) rename {src => public}/extensions/core/clipspace.js (100%) rename {src => public}/extensions/core/colorPalette.js (100%) rename {src => public}/extensions/core/contextMenuFilter.js (100%) rename {src => public}/extensions/core/dynamicPrompts.js (100%) rename {src => public}/extensions/core/editAttention.js (100%) rename {src => public}/extensions/core/groupNode.js (100%) rename {src => public}/extensions/core/groupNodeManage.css (100%) rename {src => public}/extensions/core/groupNodeManage.js (100%) rename {src => public}/extensions/core/groupOptions.js (100%) rename {src => public}/extensions/core/invertMenuScrolling.js (100%) rename {src => public}/extensions/core/keybinds.js (100%) rename {src => public}/extensions/core/linkRenderMode.js (100%) rename {src => public}/extensions/core/maskeditor.js (100%) rename {src => public}/extensions/core/nodeTemplates.js (100%) rename {src => public}/extensions/core/noteNode.js (100%) rename {src => public}/extensions/core/rerouteNode.js (100%) rename {src => public}/extensions/core/saveImageExtraOutput.js (100%) rename {src => public}/extensions/core/simpleTouchSupport.js (100%) rename {src => public}/extensions/core/slotDefaults.js (100%) rename {src => public}/extensions/core/snapToGrid.js (100%) rename {src => public}/extensions/core/undoRedo.js (100%) rename {src => public}/extensions/core/uploadImage.js (100%) rename {src => public}/extensions/core/webcamCapture.js (100%) rename {src => public}/extensions/core/widgetInputs.js (100%) rename {src => public}/lib/litegraph.core.js (100%) rename {src => public}/lib/litegraph.css (100%) rename {src => public}/lib/litegraph.extensions.js (100%) rename {src => public}/scripts/ui/draggableList.js (99%) diff --git a/src/extensions/core/clipspace.js b/public/extensions/core/clipspace.js similarity index 100% rename from src/extensions/core/clipspace.js rename to public/extensions/core/clipspace.js diff --git a/src/extensions/core/colorPalette.js b/public/extensions/core/colorPalette.js similarity index 100% rename from src/extensions/core/colorPalette.js rename to public/extensions/core/colorPalette.js diff --git a/src/extensions/core/contextMenuFilter.js b/public/extensions/core/contextMenuFilter.js similarity index 100% rename from src/extensions/core/contextMenuFilter.js rename to public/extensions/core/contextMenuFilter.js diff --git a/src/extensions/core/dynamicPrompts.js b/public/extensions/core/dynamicPrompts.js similarity index 100% rename from src/extensions/core/dynamicPrompts.js rename to public/extensions/core/dynamicPrompts.js diff --git a/src/extensions/core/editAttention.js b/public/extensions/core/editAttention.js similarity index 100% rename from src/extensions/core/editAttention.js rename to public/extensions/core/editAttention.js diff --git a/src/extensions/core/groupNode.js b/public/extensions/core/groupNode.js similarity index 100% rename from src/extensions/core/groupNode.js rename to public/extensions/core/groupNode.js diff --git a/src/extensions/core/groupNodeManage.css b/public/extensions/core/groupNodeManage.css similarity index 100% rename from src/extensions/core/groupNodeManage.css rename to public/extensions/core/groupNodeManage.css diff --git a/src/extensions/core/groupNodeManage.js b/public/extensions/core/groupNodeManage.js similarity index 100% rename from src/extensions/core/groupNodeManage.js rename to public/extensions/core/groupNodeManage.js diff --git a/src/extensions/core/groupOptions.js b/public/extensions/core/groupOptions.js similarity index 100% rename from src/extensions/core/groupOptions.js rename to public/extensions/core/groupOptions.js diff --git a/src/extensions/core/invertMenuScrolling.js b/public/extensions/core/invertMenuScrolling.js similarity index 100% rename from src/extensions/core/invertMenuScrolling.js rename to public/extensions/core/invertMenuScrolling.js diff --git a/src/extensions/core/keybinds.js b/public/extensions/core/keybinds.js similarity index 100% rename from src/extensions/core/keybinds.js rename to public/extensions/core/keybinds.js diff --git a/src/extensions/core/linkRenderMode.js b/public/extensions/core/linkRenderMode.js similarity index 100% rename from src/extensions/core/linkRenderMode.js rename to public/extensions/core/linkRenderMode.js diff --git a/src/extensions/core/maskeditor.js b/public/extensions/core/maskeditor.js similarity index 100% rename from src/extensions/core/maskeditor.js rename to public/extensions/core/maskeditor.js diff --git a/src/extensions/core/nodeTemplates.js b/public/extensions/core/nodeTemplates.js similarity index 100% rename from src/extensions/core/nodeTemplates.js rename to public/extensions/core/nodeTemplates.js diff --git a/src/extensions/core/noteNode.js b/public/extensions/core/noteNode.js similarity index 100% rename from src/extensions/core/noteNode.js rename to public/extensions/core/noteNode.js diff --git a/src/extensions/core/rerouteNode.js b/public/extensions/core/rerouteNode.js similarity index 100% rename from src/extensions/core/rerouteNode.js rename to public/extensions/core/rerouteNode.js diff --git a/src/extensions/core/saveImageExtraOutput.js b/public/extensions/core/saveImageExtraOutput.js similarity index 100% rename from src/extensions/core/saveImageExtraOutput.js rename to public/extensions/core/saveImageExtraOutput.js diff --git a/src/extensions/core/simpleTouchSupport.js b/public/extensions/core/simpleTouchSupport.js similarity index 100% rename from src/extensions/core/simpleTouchSupport.js rename to public/extensions/core/simpleTouchSupport.js diff --git a/src/extensions/core/slotDefaults.js b/public/extensions/core/slotDefaults.js similarity index 100% rename from src/extensions/core/slotDefaults.js rename to public/extensions/core/slotDefaults.js diff --git a/src/extensions/core/snapToGrid.js b/public/extensions/core/snapToGrid.js similarity index 100% rename from src/extensions/core/snapToGrid.js rename to public/extensions/core/snapToGrid.js diff --git a/src/extensions/core/undoRedo.js b/public/extensions/core/undoRedo.js similarity index 100% rename from src/extensions/core/undoRedo.js rename to public/extensions/core/undoRedo.js diff --git a/src/extensions/core/uploadImage.js b/public/extensions/core/uploadImage.js similarity index 100% rename from src/extensions/core/uploadImage.js rename to public/extensions/core/uploadImage.js diff --git a/src/extensions/core/webcamCapture.js b/public/extensions/core/webcamCapture.js similarity index 100% rename from src/extensions/core/webcamCapture.js rename to public/extensions/core/webcamCapture.js diff --git a/src/extensions/core/widgetInputs.js b/public/extensions/core/widgetInputs.js similarity index 100% rename from src/extensions/core/widgetInputs.js rename to public/extensions/core/widgetInputs.js diff --git a/src/lib/litegraph.core.js b/public/lib/litegraph.core.js similarity index 100% rename from src/lib/litegraph.core.js rename to public/lib/litegraph.core.js diff --git a/src/lib/litegraph.css b/public/lib/litegraph.css similarity index 100% rename from src/lib/litegraph.css rename to public/lib/litegraph.css diff --git a/src/lib/litegraph.extensions.js b/public/lib/litegraph.extensions.js similarity index 100% rename from src/lib/litegraph.extensions.js rename to public/lib/litegraph.extensions.js diff --git a/src/scripts/ui/draggableList.js b/public/scripts/ui/draggableList.js similarity index 99% rename from src/scripts/ui/draggableList.js rename to public/scripts/ui/draggableList.js index 39e71030..d5359488 100644 --- a/src/scripts/ui/draggableList.js +++ b/public/scripts/ui/draggableList.js @@ -25,7 +25,7 @@ SOFTWARE. */ -import { $el } from "../ui"; +import { $el } from "../ui.js"; $el("style", { parent: document.head, diff --git a/src/scripts/app.ts b/src/scripts/app.ts index a3d00f54..e11f621d 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -6,8 +6,9 @@ import { defaultGraph } from "./defaultGraph.js"; import { getPngMetadata, getWebpMetadata, importA1111, getLatentMetadata } from "./pnginfo"; import { addDomClippingSetting } from "./domWidget"; import { createImageHost, calculateImageGrid } from "./ui/imagePreview" +import { applyTextReplacements, addStylesheet } from "./utils"; import type { ComfyExtension } from "/types/comfy"; -import type { IWidget, LGraph, LGraphCanvas, LGraphNode } from "/types/litegraph"; +import type { LGraph, LGraphCanvas, LGraphNode } from "/types/litegraph"; export const ANIM_PREVIEW_WIDGET = "$$comfy_animation_preview" @@ -51,6 +52,12 @@ export class ComfyApp { static open_maskeditor = null; static clipspace_return_node = null; + // Force vite to import utils.ts as part of index. + static utils = { + applyTextReplacements, + addStylesheet, + }; + ui: ComfyUI; logging: ComfyLogging; extensions: ComfyExtension[]; diff --git a/vite.config.mts b/vite.config.mts index 421d2a9c..cc83067f 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -43,13 +43,16 @@ function transformExports(code: string, id: string): ShimResult { let newCode = code; // Regex to match different types of exports - const regex = /export\s+(const|let|var|function|class)\s+([a-zA-Z$_][a-zA-Z\d$_]*)(\s|\()/g; + const regex = /export\s+(const|let|var|function|class|async function)\s+([a-zA-Z$_][a-zA-Z\d$_]*)(\s|\()/g; let match; while ((match = regex.exec(code)) !== null) { const name = match[2]; // All exports should be bind to the window object as new API endpoint. - newCode += `\nwindow.comfyAPI.${moduleName} = window.comfyAPI.${moduleName} || {};`; + if (exports.length == 0) { + newCode += `\nwindow.comfyAPI = window.comfyAPI || {};`; + newCode += `\nwindow.comfyAPI.${moduleName} = window.comfyAPI.${moduleName} || {};`; + } newCode += `\nwindow.comfyAPI.${moduleName}.${name} = ${name};`; exports.push(`export const ${name} = window.comfyAPI.${moduleName}.${name};\n`); }