Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/generators/dart-dio.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|pubRepository|Repository in generated pubspec| |null|
|pubVersion|Version in generated pubspec| |1.0.0|
|serializationLibrary|Specify serialization library|<dl><dt>**built_value**</dt><dd>[DEFAULT] built_value</dd><dt>**json_serializable**</dt><dd>[BETA] json_serializable</dd></dl>|built_value|
|skipCopyWith|Skip CopyWith when using Json Serializable for serialization| |false|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|sourceFolder|source folder for generated code| |src|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ public class DartDioClientCodegen extends AbstractDartCodegen {

private static final String DIO_IMPORT = "package:dio/dio.dart";
public static final String FINAL_PROPERTIES = "finalProperties";
public static final String SKIP_COPY_WITH = "skipCopyWith";
public static final String FINAL_PROPERTIES_DEFAULT_VALUE = "true";
public static final String SKIP_COPY_WITH_DEFAULT_VALUE = "false";

private static final String CLIENT_NAME = "clientName";

Expand Down Expand Up @@ -138,6 +140,11 @@ public DartDioClientCodegen() {
final CliOption finalProperties = CliOption.newBoolean(FINAL_PROPERTIES, "Whether properties are marked as final when using Json Serializable for serialization");
finalProperties.setDefault("true");
cliOptions.add(finalProperties);

// skip CopyWith option
final CliOption skipCopyWith = CliOption.newBoolean(SKIP_COPY_WITH, "Skip CopyWith when using Json Serializable for serialization");
skipCopyWith.setDefault("false");
cliOptions.add(skipCopyWith);
}

@Override
Expand Down Expand Up @@ -182,6 +189,13 @@ public void processOpts() {
additionalProperties.put(FINAL_PROPERTIES, Boolean.parseBoolean(additionalProperties.get(FINAL_PROPERTIES).toString()));
}

if (!additionalProperties.containsKey(SKIP_COPY_WITH)) {
additionalProperties.put(SKIP_COPY_WITH, Boolean.parseBoolean(SKIP_COPY_WITH_DEFAULT_VALUE));
LOGGER.debug("skipCopyWith not set, using default {}", SKIP_COPY_WITH_DEFAULT_VALUE);
} else {
additionalProperties.put(SKIP_COPY_WITH, Boolean.parseBoolean(additionalProperties.get(SKIP_COPY_WITH).toString()));
}

if (!additionalProperties.containsKey(CLIENT_NAME)) {
final String name = org.openapitools.codegen.utils.StringUtils.camelize(pubName);
additionalProperties.put(CLIENT_NAME, name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ dependencies:
equatable: '^2.0.7'
{{/useEquatable}}
{{#useJsonSerializable}}
{{^skipCopyWith}}
copy_with_extension: '^7.1.0'
{{/skipCopyWith}}
json_annotation: '^4.9.0'
{{/useJsonSerializable}}
{{#useDateLibTimeMachine}}
Expand All @@ -39,7 +41,9 @@ dev_dependencies:
{{/useBuiltValue}}
{{#useJsonSerializable}}
build_runner: any
{{^skipCopyWith}}
copy_with_extension_gen: ^7.1.0
{{/skipCopyWith}}
json_serializable: '^6.9.3'
{{/useJsonSerializable}}
test: '^1.16.0'
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{{^skipCopyWith}}
import 'package:copy_with_extension/copy_with_extension.dart';
{{/skipCopyWith}}
import 'package:json_annotation/json_annotation.dart';
{{#useEquatable}}
import 'package:equatable/src/equatable_utils.dart';
Expand All @@ -18,7 +20,9 @@ part '{{classFilename}}.g.dart';
{{#isDeprecated}}
@Deprecated('{{{classname}}} has been deprecated')
{{/isDeprecated}}
{{^skipCopyWith}}
@CopyWith()
{{/skipCopyWith}}
@JsonSerializable(
checked: true,
createToJson: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public Map<String, String> createOptions() {
.put(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "true")
.put(CodegenConstants.DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT, "true")
.put(CodegenConstants.ENUM_UNKNOWN_DEFAULT_CASE, ENUM_UNKNOWN_DEFAULT_CASE_VALUE)
.put(DartDioClientCodegen.SKIP_COPY_WITH, DartDioClientCodegen.SKIP_COPY_WITH_DEFAULT_VALUE)
.build();
}

Expand Down
Loading