MCPcopy Create free account
hub / github.com/6174/comflowyspace / loadSubflowToStore

Function loadSubflowToStore

packages/common/store/subflow-state.ts:171–207  ·  view source on GitHub ↗
(subflowStore: SubflowStore, id: string)

Source from the content-addressed store, hash-verified

169 * so we need a program to parse comfyui workflow data to a flattern structure
170 */
171export async function loadSubflowToStore(subflowStore: SubflowStore, id: string): Promise<SubflowStore> {
172 if (!id) {
173 return subflowStore;
174 }
175
176 let doc = subflowStore.mapping[id]
177 if (!doc) {
178 doc = await documentDatabaseInstance.getDoc(id);
179 subflowStore.mapping[id] = doc;
180 }
181
182 // update relationships
183 const allNodes = Object.values(doc.snapshot.nodes);
184 const {graph} = subflowStore.workflowStates[id] || {
185 graph: {},
186 isRootSubflow: false
187 }
188
189 allNodes.forEach(node => {
190 subflowStore.relations[node.id] = id;
191 graph[id] = node.value;
192 });
193
194 // find nested workflows
195 const subFlowNodes = allNodes.filter(node => node.value.widget === SUBFLOW_WIDGET_TYPE_NAME);
196
197 for (const node of subFlowNodes) {
198 await loadSubflowToStore(subflowStore, node.value.flowId!,);
199 }
200
201 return {
202 ...subflowStore,
203 mapping: {
204 ...subflowStore.mapping,
205 }
206 }
207}
208
209export function parseSubflow(doc: PersistedFullWorkflow, widgets: Widgets): SubflowNodeRenderingInfo {
210 if (!doc || !doc.snapshot.controlboard?.shareAsSubflowConfig) {

Callers 1

subflow-state.tsFile · 0.85

Calls 2

filterMethod · 0.80
getDocMethod · 0.45

Tested by

no test coverage detected