Carapacik / swagger_parser

Dart package that takes an OpenApi definition file and generates REST clients based on retrofit and data classes for your project.
https://pub.dev/packages/swagger_parser
MIT License
94 stars 43 forks source link

Fixes for replacement rules and case utils #89

Closed StarProxima closed 11 months ago

StarProxima commented 11 months ago

Fix groupping words for abbreviations when special characters are present

"$ref": "#/components/schemas/HrvSampleRMSSD-Input"

Before: hrv_sample_rmss_d_input_dto.dart

class HrvSampleRmssDInput

After: hrv_sample_rmssd_input.dart

class HrvSampleRmssdInput

Fix replacement type for enum classes

  enums_to_json: true
  replacement_rules:
    - pattern: "$"
      replacement: "DTO"

Before:

@JsonEnum()
enum UploadTypeDto {
  @JsonValue(0)
  value0,
  @JsonValue(1)
  value1;

  integerDTO toJson() => _$UploadTypeDtoEnumMap[this]!;    // <-- error
}

After:

@JsonEnum()
enum UploadTypeDto {
  @JsonValue(0)
  value0,
  @JsonValue(1)
  value1;

  int toJson() => _$UploadTypeDtoEnumMap[this]!;
}

Takes case in replacement

  enums_to_json: true
  replacement_rules:
    - pattern: "$"
      replacement: "DTO"

Before:

@JsonSerializable()
class HttpValidationErrorDto {
  const HttpValidationErrorDto({
    this.detail,
  });

  factory HttpValidationErrorDto.fromJson(Map<String, Object?> json) => _$HttpValidationErrorDtoFromJson(json);

  final List<ValidationErrorDTO>? detail;     // <-- error, should be List<ValidationErrorDto>?

  Map<String, Object?> toJson() => _$HttpValidationErrorDtoToJson(this);
}

After:

@JsonSerializable()
class HttpValidationErrorDto {
  const HttpValidationErrorDto({
    this.detail,
  });

  factory HttpValidationErrorDto.fromJson(Map<String, Object?> json) => _$HttpValidationErrorDtoFromJson(json);

  final List<ValidationErrorDto>? detail;

  Map<String, Object?> toJson() => _$HttpValidationErrorDtoToJson(this);
}