handleScales method

List<double> handleScales(
  1. String format,
  2. String scales
)

Implementation

List<double> handleScales(String format, String scales) {
  // 'scale' is a comma-separated string
  final scalesList = scales.split(',').map((e) {
    final parsedValue = double.tryParse(e.toString().trim());
    if (parsedValue == null) {
      throw ArgumentError('Invalid scale value "$e". Must be a number.');
    }
    if (parsedValue < 0.01 || parsedValue > 4.0) {
      throw ArgumentError('Scale value must be between 0.01 and 4.0.');
    } else {
      return parsedValue;
    }
  }).toList();

  // If format is SVG, enforce scale = 1.0
  if (format == 'svg') {
    if (scalesList.length != 1 ||
        (scalesList.length == 1 && scalesList.first != 1.0)) {
      logger.log(
          '\n❗ Warning: The "scale" argument is ignored for SVG format. Using scale = 1.0.');
    }
    return [1.0]; // Override with 1.0
  } else {
    return scalesList;
  }
}