Skip to content

Commit 27db106

Browse files
authored
Merge pull request #953 from thewtex/duplicate-json-compatible
Duplicate json compatible
2 parents 8c488ec + 3ff0d73 commit 27db106

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

src/bindgen/typescript/function-module.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
3939
let functionContent = `import {\n`
4040
const usedInterfaceTypes = new Set()
4141
let needMountDirs = false
42-
let needJsonCompatible = false
4342
const pipelineComponents = ['inputs', 'outputs', 'parameters']
4443
pipelineComponents.forEach((pipelineComponent) => {
4544
interfaceJson[pipelineComponent].forEach((value) => {
@@ -49,10 +48,6 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
4948
needMountDirs = true
5049
return
5150
}
52-
if (interfaceType === 'JsonCompatible' && pipelineComponent === 'inputs') {
53-
needJsonCompatible = true
54-
return
55-
}
5651
if (!(pipelineComponent === 'inputs' && interfaceType === 'BinaryStream')) {
5752
usedInterfaceTypes.add(interfaceType)
5853
}
@@ -65,9 +60,6 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
6560
functionContent += ' InterfaceTypes,\n'
6661
functionContent += ' PipelineOutput,\n'
6762
functionContent += ' PipelineInput,\n'
68-
if (needJsonCompatible) {
69-
functionContent += ' JsonCompatible,\n'
70-
}
7163
if (forNode) {
7264
functionContent += ' runPipelineNode\n'
7365
} else {
@@ -331,7 +323,9 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
331323
}
332324
}
333325
functionContent += '\n'
334-
outputCount++
326+
if (!interfaceType.includes('File')) {
327+
outputCount++
328+
}
335329
} else {
336330
functionContent += ` args.push(${camel}.toString())\n\n`
337331
}
@@ -436,10 +430,11 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
436430
if (!forNode) {
437431
functionContent += ' webWorker: usedWebWorker as Worker,\n'
438432
}
439-
interfaceJson.outputs.forEach((output, index) => {
433+
outputCount = 0
434+
interfaceJson.outputs.forEach((output) => {
440435
const camel = camelCase(output.name)
441436
const interfaceType = interfaceJsonTypeToInterfaceType.get(output.type)
442-
const outputIndex = haveArray ? `${camel}Index` : index.toString()
437+
const outputIndex = haveArray ? `${camel}Index` : outputCount.toString()
443438
if (interfaceType.includes('TextStream') || interfaceType.includes('BinaryStream')) {
444439
if (haveArray) {
445440
const isArray = output.itemsExpectedMax > 1
@@ -465,6 +460,9 @@ function functionModule (srcOutputDir, forNode, interfaceJson, modulePascalCase,
465460
functionContent += ` ${camel}: outputs[${outputIndex}].data as ${interfaceType},\n`
466461
}
467462
}
463+
if (!interfaceType.includes('File')) {
464+
outputCount++
465+
}
468466
})
469467
functionContent += ' }\n'
470468
functionContent += ' return result\n'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
const typesRequireImport = ['Image', 'Mesh', 'PolyData', 'TextFile', 'BinaryFile', 'TextFile', 'BinaryFile']
1+
const typesRequireImport = ['Image', 'Mesh', 'PolyData', 'TextFile', 'BinaryFile', 'TextFile', 'BinaryFile', 'JsonCompatible']
22

33
export default typesRequireImport

0 commit comments

Comments
 (0)