Skip to content

Commit bae9613

Browse files
authored
fix(thumbnail): localize handle defs (#104)
1 parent 74749d5 commit bae9613

1 file changed

Lines changed: 35 additions & 17 deletions

File tree

src/utils/thumbnail.ts

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ export class Thumbnail implements ThumbnailProvider {
267267
title: taskData.title,
268268
description: taskData.description,
269269
icon: taskData.icon,
270-
inputHandleDefs: taskData.data.inputs_def,
271-
outputHandleDefs: taskData.data.outputs_def,
270+
inputHandleDefs: taskData.pkgData.localizeHandleDefs(taskData.data.inputs_def),
271+
outputHandleDefs: taskData.pkgData.localizeHandleDefs(taskData.data.outputs_def),
272272
executorName: taskData.data.executor?.name,
273273
});
274274
}
@@ -282,8 +282,8 @@ export class Thumbnail implements ThumbnailProvider {
282282
title: subflowData.title,
283283
description: subflowData.description,
284284
icon: subflowData.icon,
285-
inputHandleDefs: subflowData.data.inputs_def,
286-
outputHandleDefs: subflowData.data.outputs_def,
285+
inputHandleDefs: subflowData.pkgData.localizeHandleDefs(subflowData.data.inputs_def),
286+
outputHandleDefs: subflowData.pkgData.localizeHandleDefs(subflowData.data.outputs_def),
287287
nodes: subflowData.data.nodes,
288288
handleOutputsFrom: subflowData.data.outputs_from,
289289
uiData: subflowData.uiData,
@@ -357,7 +357,7 @@ export class Thumbnail implements ThumbnailProvider {
357357

358358
if (raw.values) {
359359
node.type = NODE_TYPE.ValueNode;
360-
node.valueHandleDefs = raw.values;
360+
node.valueHandleDefs = this.wsPkgData.localizeHandleDefs(raw.values);
361361
}
362362
else if (typeof raw.task === "string") {
363363
node.type = NODE_TYPE.TaskNode;
@@ -366,9 +366,9 @@ export class Thumbnail implements ThumbnailProvider {
366366
if (taskData) {
367367
node.icon ??= taskData.icon;
368368
node.executorName = taskData.data.executor?.name;
369-
node.inputHandleDefs = taskData.data.inputs_def;
369+
node.inputHandleDefs = taskData.pkgData.localizeHandleDefs(taskData.data.inputs_def);
370370
node.additionalInputs = taskData.data.additional_inputs;
371-
node.outputHandleDefs = taskData.data.outputs_def;
371+
node.outputHandleDefs = taskData.pkgData.localizeHandleDefs(taskData.data.outputs_def);
372372
node.additionalOutputs = taskData.data.additional_outputs;
373373
node.slotNodeDefs = await this._getSlotNodeDefs(taskData, "slot_nodes");
374374
}
@@ -379,17 +379,17 @@ export class Thumbnail implements ThumbnailProvider {
379379
json_schema: this._schemaFromValue(a.value),
380380
}));
381381
}
382-
node.additionalInputDefs = raw.inputs_def;
383-
node.additionalOutputDefs = raw.outputs_def;
382+
node.additionalInputDefs = this.wsPkgData.localizeHandleDefs(raw.inputs_def);
383+
node.additionalOutputDefs = this.wsPkgData.localizeHandleDefs(raw.outputs_def);
384384
node.handleInputsFrom = raw.inputs_from;
385385
node.slots = raw.slots;
386386
}
387387
else if (raw.task) {
388388
node.type = NODE_TYPE.TaskNode;
389389
node.icon = executorIcon(raw.task.executor);
390390
node.executorName = raw.task.executor.name;
391-
node.inputHandleDefs = raw.task.inputs_def;
392-
node.outputHandleDefs = raw.task.outputs_def;
391+
node.inputHandleDefs = this.wsPkgData.localizeHandleDefs(raw.task.inputs_def);
392+
node.outputHandleDefs = this.wsPkgData.localizeHandleDefs(raw.task.outputs_def);
393393
node.handleInputsFrom = raw.inputs_from;
394394
}
395395
else if (typeof raw.subflow === "string") {
@@ -398,8 +398,8 @@ export class Thumbnail implements ThumbnailProvider {
398398
const subflowData = await this.wsPkgData.resolveSharedBlock("subflow", raw.subflow);
399399
if (subflowData) {
400400
node.icon ??= subflowData.icon;
401-
node.inputHandleDefs = subflowData.data.inputs_def;
402-
node.outputHandleDefs = subflowData.data.outputs_def;
401+
node.inputHandleDefs = subflowData.pkgData.localizeHandleDefs(subflowData.data.inputs_def);
402+
node.outputHandleDefs = subflowData.pkgData.localizeHandleDefs(subflowData.data.outputs_def);
403403
node.slotNodeDefs = await this._getSlotNodeDefs(subflowData, "nodes");
404404
}
405405
else {
@@ -414,9 +414,9 @@ export class Thumbnail implements ThumbnailProvider {
414414
}
415415
else if (typeof raw.conditions === "object" && raw.conditions) {
416416
node.type = NODE_TYPE.ConditionNode;
417-
node.inputHandleDefs = raw.inputs_def;
418-
node.conditionHandleDefs = raw.conditions.cases;
419-
node.defaultConditionHandleDef = raw.conditions.default;
417+
node.inputHandleDefs = this.wsPkgData.localizeHandleDefs(raw.inputs_def);
418+
node.conditionHandleDefs = this.wsPkgData.localizeHandleDefs(raw.conditions.cases);
419+
node.defaultConditionHandleDef = this.wsPkgData.localizeHandleDef(raw.conditions.default);
420420
node.handleInputsFrom = raw.inputs_from;
421421
}
422422
else {
@@ -437,7 +437,7 @@ export class Thumbnail implements ThumbnailProvider {
437437
title: this.wsPkgData.localize(node.title),
438438
icon: blockData.pkgData.resolveResourceURI(node.icon, blockData.blockDir),
439439
description: this.wsPkgData.localize(node.description),
440-
inputHandleDefs: node.slot.inputs_def,
440+
inputHandleDefs: this.wsPkgData.localizeHandleDefs(node.slot.inputs_def),
441441
});
442442
}
443443
}
@@ -554,6 +554,24 @@ class PkgData {
554554
return str;
555555
}
556556

557+
public localizeHandleDef(def: any): any {
558+
if (isPlainObject(def) && typeof def.description === "string") {
559+
return { ...def, description: this.localize(def.description) };
560+
}
561+
return def;
562+
}
563+
564+
public localizeHandleDefs(defs: any): any {
565+
if (Array.isArray(defs)) {
566+
const newDefs: { description?: string }[] = [];
567+
for (const def of defs) {
568+
newDefs.push(this.localizeHandleDef(def));
569+
}
570+
return newDefs;
571+
}
572+
return defs;
573+
}
574+
557575
public resolveResourceURI(uri: string | undefined, manifestDir: string): string | undefined {
558576
if (!uri) {
559577
return;

0 commit comments

Comments
 (0)