toProgram method
Implementation
Result<Map<String, dynamic>, bool> toProgram() {
final Map<String, dynamic> program = {};
final List<Map<String, dynamic>> blocks = [];
bool asFailure = false;
for (var componentId in componentList) {
var component = canvasReader.model.getComponent(componentId);
BuilderComponentData componentData = component.data;
Map<String, dynamic> parameters = {};
for (var parameter in componentData.parameters) {
parameters[parameter.name] = parameter.value;
}
var io = fetchBlockIO(component);
if (io is Success) {
var blockData = {
"block_name": component.type,
"block_id": component.id,
"parameters": parameters,
"outputs": (io as Success).value[1],
"inputs": (io as Success).value[0],
};
blocks.add(blockData);
} else {
asFailure = true;
}
}
program["blocks"] = blocks;
return asFailure ? Failure(true) : Success(program);
}