defaultFieldValueResolver static method

Object? defaultFieldValueResolver(
  1. String field,
  2. Object? value,
  3. TypeReflection type,
  4. JsonDecoder jsonDecoder,
  5. EntityHandlerProvider? entityHandlerProvider,
)

Implementation

static Object? defaultFieldValueResolver(
  String field,
  Object? value,
  TypeReflection type,
  JsonDecoder jsonDecoder,
  EntityHandlerProvider? entityHandlerProvider,
) {
  if (type.isListEntity && value is Iterable) {
    return _iterableCaster(value, type, jsonDecoder, entityHandlerProvider);
  } else {
    if (value == null) {
      return null;
    } else if (type.type == value.runtimeType) {
      return value;
    } else if (type.isStringType) {
      return TypeParser.parseString(value);
    } else if (type.isIntType) {
      return TypeParser.parseInt(value);
    } else if (type.isDoubleType) {
      return TypeParser.parseDouble(value);
    } else if (type.isNumType) {
      return TypeParser.parseNum(value);
    } else if (type.isBoolType) {
      return TypeParser.parseBool(value);
    } else if (type.isEntityReferenceType && value is EntityReference) {
      if (type.arguments0?.type == value.type) {
        return value;
      }
    } else if (type.isEntityReferenceListType &&
        value is EntityReferenceList) {
      if (type.arguments0?.type == value.type) {
        return value;
      }
    }

    return jsonDecoder.fromJson(
      value,
      typeInfo: type.typeInfo,
      autoResetEntityCache: false,
    );
  }
}