createPromotedArgValue function
Expression
createPromotedArgValue({
- required ServerType paramType,
- required Expression? fromJson,
Implementation
Expression createPromotedArgValue({
required ServerType paramType,
required Expression? fromJson,
}) {
final sourceType = bindingSourceType(paramType);
return fromJson ??
switch (sourceType) {
ServerType(:final iterableType?) => switch (iterableType) {
IterableType.list => _typedCast(
refer('data'),
sourceType.typeArguments.firstOrNull,
),
IterableType.set => _typedCast(
refer('data').property('toSet').call([]),
sourceType.typeArguments.firstOrNull,
),
IterableType.iterable => refer('data'),
},
_ => refer('data'),
};
}