export static method
Export chart data or pixels through a single request/result API.
Implementation
static Future<ChartExportResult> export(ChartExportRequest request) async {
final stopwatch = Stopwatch()..start();
final filename = request.resolvedFilename;
if (request.cancellationToken?.isCancelled == true) {
return _cancelledExportResult(
request,
filename,
).withDuration(stopwatch.elapsed);
}
final validationError = _validateRequestOptions(request);
if (validationError != null) {
return ChartExportResult.failure(
format: request.format,
filename: filename,
error: validationError,
duration: stopwatch.elapsed,
);
}
try {
final result = await _guardExport(
() => _performExport(request, filename),
request,
filename,
);
return result.withDuration(stopwatch.elapsed);
} catch (error) {
return ChartExportResult.failure(
format: request.format,
filename: filename,
error: error.toString(),
duration: stopwatch.elapsed,
);
}
}