tryGetAsCode function

String? tryGetAsCode(
  1. Object? value
)

Implementation

String? tryGetAsCode(Object? value) {
  if (value is String) {
    final escaped = escapeString(value);
    return escaped;
  } else if (value is bool) {
    return '$value';
  } else if (value is num) {
    return '$value';
  } else if (value == null) {
    return '$value';
  } else if (value is Enum) {
    return '${value.runtimeType}.${value.name}';
  } else if (value is List<(int, int)>) {
    final values = <Object?>[];
    for (var item in value) {
      final start = tryGetAsCode(item.$1);
      final end = tryGetAsCode(item.$2);
      values.add(start);
      values.add(end);
    }

    return '[${values.join(', ')}]';
  } else if (value is List) {
    final values = <Object?>[];
    for (var item in value) {
      final code = tryGetAsCode(item);
      values.add(code);
    }

    return '[${values.join(', ')}]';
  } else if (value is Set) {
    final values = <Object?>[];
    for (var item in value) {
      final code = tryGetAsCode(item);
      values.add(code);
    }

    return '{${values.join(', ')}}';
  } else if (value is Map) {
    final values = <Object?>[];
    for (var key in value.keys) {
      final k = tryGetAsCode(key);
      final v = tryGetAsCode(value[key]);
      values.add('$k: $v');
    }

    return '{${values.join(', ')}}';
  } else if (value is Type) {
    final result = '$Type';
    if (result.endsWith(')')) {
      if (!result.contains(',')) {
        //
      }
    }
  }
  return null;
}