createJsonCase function

Expression createJsonCase(
  1. ClientType type
)

Implementation

Expression createJsonCase(ClientType type) {
  final rawType = switch (getRawType(type)) {
    final t when t.endsWith('?') => t,
    final t when type.isNullable => '$t?',
    final t => t,
  };

  final result = declareFinal('data', type: refer(rawType));
  final dataNested = literalMap({'data': result});

  return switch (type) {
    ClientType(isStringContent: true) => result,
    ClientType(isBytes: true) => result,
    _ => dataNested,
  };
}