ServerParam.fromElement constructor

ServerParam.fromElement(
  1. FormalParameterElement element, {
  2. Map<String, DartType> typeSubstitutions = const {},
})

Implementation

factory ServerParam.fromElement(
  FormalParameterElement element, {
  Map<String, DartType> typeSubstitutions = const {},
}) {
  final importPath = ServerImports.fromElement(element);

  final paramAnnotations = ServerParamAnnotations.fromElement(element);

  final name = element.name;
  if (name == null) {
    throw Exception('Parameter name is null');
  }

  final paramType = typeSubstitutions.isEmpty
      ? element.type
      : substituteType(element.type, typeSubstitutions);

  return ServerParam(
    name: name,
    type: ServerType.fromType(paramType),
    isRequired: element.isRequiredNamed || element.isRequiredPositional,
    isNamed: element.isNamed,
    defaultValue: element.defaultValueCode,
    hasDefaultValue: element.hasDefaultValue,
    importPath: importPath,
    annotations: paramAnnotations,
  );
}