Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ddf6b5f
Feat: Initial working changes.
bahag-chandrana Jul 16, 2022
ab69278
Feat: Initial working changes.
bahag-chandrana Jul 16, 2022
63c39d6
fix: small typo.
bahag-chandrana Sep 22, 2022
85f3db5
feat: initial setup for oneOf.
bahag-chandrana Sep 22, 2022
e965c65
feat: seemingly working oneOf model generation.
bahag-chandrana Sep 23, 2022
7851146
Merge remote-tracking branch 'origin/dart-dio-freezed' into dart-dio-…
bahag-chandrana Sep 23, 2022
35f0b97
feat: seemingly working oneOf model generation.
bahag-chandrana Sep 23, 2022
c19616e
Merge branch 'OpenAPITools:master' into dart-dio-freezed
bahag-chandrana Sep 23, 2022
899af82
fix: case factory case and add missing sdk dependencies.
bahag-chandrana Sep 23, 2022
15c756c
fix: merge issues + use camelCase for unions.
bahag-chandrana Sep 23, 2022
3cfbf98
fix: correct use of lambda for cases of classNames
bahag-chandrana Sep 24, 2022
478ac25
fix: correct reference to variable_type.mustache
bahag-chandrana Sep 24, 2022
d943167
fix: non simpleType but primitive response types.
bahag-chandrana Oct 17, 2022
c1bfa0d
fix: add correct files for analysis ignore
bahag-chandrana Oct 17, 2022
2723151
merge master
bahag-chandrana Nov 26, 2022
240e7ec
merge master
bahag-chandrana Jan 31, 2023
5efff63
merge master
bahag-chandrana Feb 25, 2023
ca327df
Working OneOf, AnyOf, set up including primitives, arrays, maps, poly…
bahag-chandrana Feb 25, 2023
a878b6f
fixes for collection primitives in union.
bahag-chandrana Feb 25, 2023
aa056ee
Update freezed version
bahag-chandrana Feb 25, 2023
ee57299
Update json_serialized version
bahag-chandrana Feb 25, 2023
ab4c5dc
Remove unused imports
bahag-chandrana Feb 25, 2023
6b86b4e
update enum logic
bahag-chandrana Feb 26, 2023
a30f7e8
Update sdk to support enhanced enum features.
bahag-chandrana Feb 26, 2023
e8fa5f8
fix enhanced enum definition.
bahag-chandrana Feb 26, 2023
2fda70c
fix missing form params.
bahag-chandrana Feb 26, 2023
a21885e
initial setup union_response.
bahag-chandrana Mar 12, 2023
ed0e974
merge master into dart-dio-freezed
bahag-chandrana Mar 19, 2023
8bf50ae
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
4ddba3c
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
f9dcbf5
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
d8704c9
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
eef65f3
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
f43b609
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
fdd3524
remove empty spaces in import and export
bahag-chandrana Mar 19, 2023
c156a80
remove empty spaces export
bahag-chandrana Mar 19, 2023
9260c64
doc changes
bahag-chandrana Mar 19, 2023
4ef0f34
merge master
bahag-chandrana Aug 8, 2023
db41f99
fix: enums and remove strong mode analysis option
bahag-chandrana Sep 3, 2023
1554f90
fix: enums and factory fromjson
bahag-chandrana Jan 1, 2024
cbf4262
merge: master to dart-dio-freezed branch
bahag-chandrana Aug 23, 2024
6bb3aa2
fix: parsing of oneOF and AnyOf types with no discriminator, with dis…
bahag-chandrana Aug 27, 2024
265dd6e
fix: parsing of oneOF and AnyOf types with no discriminator simply us…
bahag-chandrana Sep 6, 2024
a5c2f62
chore: remove tabs in mustache files.
bahag-chandrana Sep 7, 2024
8ba8b78
test: add samples config yaml for freezed
bahag-chandrana Sep 7, 2024
f969641
test: generate samples for freezed
bahag-chandrana Sep 7, 2024
502c9c6
fix: small spacing issue
bahag-chandrana Sep 7, 2024
5cd17d5
chore: regenerate samples for freezed.
bahag-chandrana Sep 7, 2024
86bf120
chore: configure to generate samples in a freezed folder and remove o…
bahag-chandrana Sep 7, 2024
6014915
chore: regenerate samples
bahag-chandrana Sep 7, 2024
d000309
chore: add github workflow file for samples.
bahag-chandrana Sep 7, 2024
61bc2d3
Merge branch 'master' into dart-dio-freezed
bahag-chandrana Oct 5, 2025
8367bf2
Fixes the missing discriminator mapping logic. Also handled the cases…
bahag-chandrana Oct 7, 2025
2253da2
removes old comments and adds missing mustach reference back.
bahag-chandrana Oct 8, 2025
e69686b
Set all freezed unions to be Sealed classes.
bahag-chandrana Oct 8, 2025
7f80b9c
Set all freezed unions to be Sealed classes.
bahag-chandrana Oct 8, 2025
9873202
Commit files after test running generate-samples.sh
bahag-chandrana Oct 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 39 additions & 0 deletions .github/workflows/samples-dart-freezed.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Samples Dart

on:
push:
branches:
- master
- '[5-9]+.[0-9]+.x'
pull_request:
branches:
- master
- '[5-9]+.[0-9]+.x'
paths:
- 'samples/openapi3/client/petstore/dart*/freezed'

jobs:
tests-dart:
name: Tests Dart
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 11
cache: maven
- name: Cache test dependencies
uses: actions/cache@v4
env:
cache-name: pub-cache
with:
path: $PUB_CACHE
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('samples/**/pubspec.*') }}
- uses: dart-lang/setup-dart@v1
with:
sdk: 3.0.0
- name: Run tests
uses: ./.github/actions/run-samples
with:
name: samples.dart
2 changes: 2 additions & 0 deletions .github/workflows/samples-dart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ on:
- '[5-9]+.[0-9]+.x'
paths:
- 'samples/openapi3/client/petstore/dart*/**'
- '!samples/openapi3/client/petstore/dart*/freezed'


jobs:
tests-dart:
Expand Down
12 changes: 12 additions & 0 deletions bin/configs/dart-dio-oneof-freezed.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/freezed/oneof
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneOf.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"
File: "ModelFile"
EnumClass: "ModelEnumClass"
additionalProperties:
hideGenerationTimestamp: "true"
serializationLibrary: "freezed"

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/freezed/oneof_polymorphism_and_inheritance
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"
File: "ModelFile"
EnumClass: "ModelEnumClass"
additionalProperties:
hideGenerationTimestamp: "true"
enumUnknownDefaultCase: "true"
serializationLibrary: "freezed"
12 changes: 12 additions & 0 deletions bin/configs/dart-dio-oneof-primitive-freezed.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/freezed/oneof_primitive
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneOf_primitive.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"
File: "ModelFile"
EnumClass: "ModelEnumClass"
additionalProperties:
hideGenerationTimestamp: "true"
enumUnknownDefaultCase: "true"
serializationLibrary: "freezed"
12 changes: 12 additions & 0 deletions bin/configs/dart-dio-petstore-client-lib-fake-freezed.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/freezed/petstore_client_lib_fake
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"
File: "ModelFile"
EnumClass: "ModelEnumClass"
additionalProperties:
hideGenerationTimestamp: "true"
enumUnknownDefaultCase: "true"
serializationLibrary: "freezed"
2 changes: 1 addition & 1 deletion docs/generators/dart-dio.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|pubPublishTo|Publish_to in generated pubspec| |null|
|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|
|serializationLibrary|Specify serialization library|<dl><dt>**built_value**</dt><dd>[DEFAULT] built_value</dd><dt>**json_serializable**</dt><dd>[BETA] json_serializable</dd><dt>**freezed**</dt><dd>[BETA] freezed</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|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.*;
import org.openapitools.codegen.CodegenDiscriminator.MappedModel;
import org.openapitools.codegen.api.TemplatePathLocator;
Expand All @@ -49,6 +50,8 @@
import java.util.*;
import java.util.stream.Collectors;

import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore;

public class DartDioClientCodegen extends AbstractDartCodegen {
Expand All @@ -65,6 +68,8 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
public static final String EQUALITY_CHECK_METHOD_EQUATABLE = "equatable";
public static final String SERIALIZATION_LIBRARY_BUILT_VALUE = "built_value";
public static final String SERIALIZATION_LIBRARY_JSON_SERIALIZABLE = "json_serializable";

public static final String SERIALIZATION_LIBRARY_FREEZED = "freezed";
public static final String SERIALIZATION_LIBRARY_DEFAULT = SERIALIZATION_LIBRARY_BUILT_VALUE;

private static final String DIO_IMPORT = "package:dio/dio.dart";
Expand All @@ -74,6 +79,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
public static final String SKIP_COPY_WITH_DEFAULT_VALUE = "false";

private static final String CLIENT_NAME = "clientName";
private static final String FREEZED_UNION_RESPONSE = "freezedUnionResponse";

@Getter @Setter
private String dateLibrary;
Expand Down Expand Up @@ -111,6 +117,7 @@ public DartDioClientCodegen() {

supportedLibraries.put(SERIALIZATION_LIBRARY_BUILT_VALUE, "[DEFAULT] built_value");
supportedLibraries.put(SERIALIZATION_LIBRARY_JSON_SERIALIZABLE, "[BETA] json_serializable");
supportedLibraries.put(SERIALIZATION_LIBRARY_FREEZED, "[BETA] freezed");
final CliOption serializationLibrary = CliOption.newString(CodegenConstants.SERIALIZATION_LIBRARY, "Specify serialization library");
serializationLibrary.setEnum(supportedLibraries);
serializationLibrary.setDefault(SERIALIZATION_LIBRARY_DEFAULT);
Expand Down Expand Up @@ -231,6 +238,10 @@ private void configureSerializationLibrary(String srcFolder) {
additionalProperties.put("useJsonSerializable", "true");
configureSerializationLibraryJsonSerializable(srcFolder);
break;
case SERIALIZATION_LIBRARY_FREEZED:
additionalProperties.put("useFreezed", "true");
configureSerializationLibraryFreezed(srcFolder);
break;
default:
case SERIALIZATION_LIBRARY_BUILT_VALUE:
additionalProperties.put("useBuiltValue", "true");
Expand Down Expand Up @@ -306,6 +317,94 @@ private void configureEqualityCheckMethod(String srcFolder) {
}
}

private void configureSerializationLibraryFreezed(String srcFolder) {
if (!additionalProperties.containsKey(FREEZED_UNION_RESPONSE)) {
additionalProperties.put(FREEZED_UNION_RESPONSE, false);
LOGGER.debug("freezedUnionResponse not set, using default {}", false);
}
supportingFiles.add(new SupportingFile("serialization/freezed/build.yaml.mustache", "" /* main project dir */, "build.yaml"));
supportingFiles.add(new SupportingFile("serialization/freezed/models.dart.mustache", srcFolder + File.separator + modelPackage, "models.dart"));
supportingFiles.add(new SupportingFile("serialization/freezed/primitive_union_types.mustache", srcFolder + File.separator + modelPackage, "primitive_union_types.dart"));
if(((boolean) additionalProperties.getOrDefault(FREEZED_UNION_RESPONSE, false))){
supportingFiles.add(new SupportingFile("serialization/freezed/response_models.mustache", srcFolder + File.separator + modelPackage, "response_models.dart"));
}
// most of these are defined in AbstractDartCodegen, we are overriding
// just the binary / file handling
languageSpecificPrimitives.add("Object");
imports.put("Uint8List", "dart:typed_data");
imports.put("MultipartFile", DIO_IMPORT);
// A lambda which removes the model name prefix and suffix. Used mainly for default descrimator class name
// mapping in fromJson methods for unions in freezed.
additionalProperties.put("DelModelNamePrefixSuffix", (Mustache.Lambda) (fragment, writer) -> {
String content = fragment.execute();
content = content.trim().replaceAll("\n", "");
content = content.replaceAll(this.modelNamePrefix, "");
content = content.replaceAll(this.modelNameSuffix, "");
writer.write(content);
});
// A lambda which transforms Types for naming factory constructors inFreezed unions.
additionalProperties.put("PrimitiveInUnion", (Mustache.Lambda) (fragment, writer) -> {
String content = fragment.execute();
content = content.trim().replaceAll("\n", "");
Set<String> collectionTypes = Sets.newHashSet("List","Map","Set");
Set<String> nonCollectionTypes = defaultIncludes.stream().filter(e -> !collectionTypes.contains(e)).collect(Collectors.toSet());
if(nonCollectionTypes.contains(content)){
writer.write(content + "InUnion");
return;
}
writer.write(content);
});
// A lambda to generate correct form of FromJson methods.
additionalProperties.put("PrimitiveFromJson", (Mustache.Lambda) (fragment, writer) -> {
String content = fragment.execute();
content = content.trim().replaceAll("\n", "");
// Remove Generics Declarations as this is not required for factoryNames in freezed
String tmp_1 = StringUtils.substringBefore(content, "<");
if(defaultIncludes.contains(tmp_1)) {
if (tmp_1.equals("Set") || tmp_1.equals("Map")) {
content = "<"+StringUtils.substringAfter(content, "<")+"{}";
}else if(tmp_1.equals("List")){
content = "<"+StringUtils.substringAfter(content, "<")+"[]";
}else{
content = tmp_1+"InUnion";
}
}
writer.write(content);
});
// A lambda to filter out collection types from anyOf and oneOf sets in codegenmodel.
additionalProperties.put("PrimitiveCollectionsExtension", (Mustache.Lambda) (fragment, writer) -> {
String content = fragment.execute();
content = content.trim().replaceAll("\n", "");
Set<String> collectionTypes = Sets.newHashSet("List","Map","Set");
// Remove Generics Declarations as this is not required for factoryNames in freezed
String tmp_1 = StringUtils.substringBefore(content, "<");
if(collectionTypes.contains(tmp_1)){
String variableName = camelize(fragment.execute().replace(" ", "_"), LOWERCASE_FIRST_LETTER);
variableName = this.sanitizeName(variableName);
if (this.reservedWords().contains(variableName)) {
// Escaping must be done *after* camelize, because generators may escape using characters removed by camelize function.
variableName = this.escapeReservedWord(variableName);
}
tmp_1 = String.join("\n", "extension on "+ content + "{",
"dynamic fromJson(Map<String,dynamic> json) {",
"return json[\""+variableName+"Value\"];",
"}",

"Map<String,dynamic> toJson() {",
"return <String, dynamic>{",
"\""+variableName+"Value\": this,",
"};",
"}",
"}");
writer.write(tmp_1);
}else{
writer.write("");

}
});

}

private void configureDateLibrary(String srcFolder) {
switch (dateLibrary) {
case DATE_LIBRARY_TIME_MACHINE:
Expand Down Expand Up @@ -602,7 +701,7 @@ protected CodegenDiscriminator createDiscriminator(String schemaName, Schema sch
@Override
public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs) {
objs = super.postProcessAllModels(objs);
if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {
if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library) || SERIALIZATION_LIBRARY_FREEZED.equals(library)) {
adaptToDartInheritance(objs);
syncRootTypesWithInnerVars(objs);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,9 @@ analyzer:
exclude:
- test/*.dart{{#useJsonSerializable}}
- lib/{{sourceFolder}}/model/*.g.dart{{/useJsonSerializable}}
{{#useFreezed}}
- lib/src/model/*.g.dart
- lib/src/model/*.freezed.dart
{{/useFreezed}}
errors:
deprecated_member_use_from_same_package: ignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@ import 'dart:async';
import 'package:dio/dio.dart';

{{#operations}}
{{#imports}}import '{{.}}';
{{/imports}}
{{! No need to Import all the required model files as freezed uses the part of directive for it models}}
{{^useFreezed}}
{{#imports}}
import '{{.}}';
{{/imports}}
{{/useFreezed}}

class {{classname}} {

Expand Down Expand Up @@ -38,7 +42,16 @@ class {{classname}} {
{{#isDeprecated}}
@Deprecated('This operation has been deprecated')
{{/isDeprecated}}
Future<Response<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {{nickname}}({ {{#allParams}}{{#isPathParam}}
{{#useFreezed}}
{{#freezedUnionResponse}}
Future<Response<{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}Data>> {{nickname}}({
{{/freezedUnionResponse}}
{{^freezedUnionResponse}}
Future<Response<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {{nickname}}({
{{/freezedUnionResponse}}
{{/useFreezed}}
{{^useFreezed}}
Future<Response<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {{nickname}}({ {{/useFreezed}}{{#allParams}}{{#isPathParam}}
{{#isDeprecated}}@Deprecated('{{paramName}} is deprecated') {{/isDeprecated}}required {{{dataType}}} {{paramName}},{{/isPathParam}}{{#isQueryParam}}
{{#isDeprecated}}@Deprecated('{{paramName}} is deprecated') {{/isDeprecated}}{{#required}}{{^isNullable}}{{^defaultValue}}required {{/defaultValue}}{{/isNullable}}{{/required}}{{{dataType}}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^required}}?{{/required}} {{paramName}}{{^isContainer}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/isContainer}},{{/isQueryParam}}{{#isHeaderParam}}
{{#isDeprecated}}@Deprecated('{{paramName}} is deprecated') {{/isDeprecated}}{{#required}}{{^isNullable}}{{^defaultValue}}required {{/defaultValue}}{{/isNullable}}{{/required}}{{{dataType}}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^required}}?{{/required}} {{paramName}}{{^isContainer}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/isContainer}},{{/isHeaderParam}}{{#isBodyParam}}
Expand Down Expand Up @@ -116,7 +129,15 @@ class {{classname}} {
);
{{#returnType}}

{{{.}}}? _responseData;
{{#useFreezed}}
{{#freezedUnionResponse}}
{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}Data _responseData;
{{/freezedUnionResponse}}
{{^freezedUnionResponse}}
{{{returnType}}} _responseData;
{{/freezedUnionResponse}}
{{/useFreezed}}
{{^useFreezed}}{{{.}}}? _responseData;{{/useFreezed}}

try {
{{#includeLibraryTemplate}}api/deserialize{{/includeLibraryTemplate}}
Expand All @@ -130,7 +151,17 @@ class {{classname}} {
);
}

{{#useFreezed}}
{{#freezedUnionResponse}}
return Response<{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}Data>(
{{/freezedUnionResponse}}
{{^freezedUnionResponse}}
return Response<{{{returnType}}}>(
{{/freezedUnionResponse}}
{{/useFreezed}}
{{^useFreezed}}
return Response<{{{returnType}}}>(
{{/useFreezed}}
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
Expand All @@ -139,8 +170,41 @@ class {{classname}} {
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);{{/returnType}}{{^returnType}}
return _response;{{/returnType}}
);{{/returnType}}
{{^returnType}}
{{^useFreezed}}
return _response;
{{/useFreezed}}
{{#useFreezed}}
{{#freezedUnionResponse}}
{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}Data _responseData;
try {
{{#includeLibraryTemplate}}api/deserialize{{/includeLibraryTemplate}}
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<{{#lambda.titlecase}}{{nickname}}{{/lambda.titlecase}}Data>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
{{/freezedUnionResponse}}
{{^freezedUnionResponse}}
return _response;
{{/freezedUnionResponse}}
{{/useFreezed}}
{{/returnType}}
}

{{/operation}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ export 'package:{{pubName}}/{{sourceFolder}}/auth/oauth.dart';

{{#apiInfo}}{{#apis}}export 'package:{{pubName}}/{{sourceFolder}}/{{apiPackage}}/{{classFilename}}.dart';
{{/apis}}{{/apiInfo}}
{{#models}}{{#model}}export 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/{{classFilename}}.dart';
{{/model}}{{/models}}
{{^useFreezed}}{{#models}}{{#model}}export 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/{{classFilename}}.dart';
{{/model}}{{/models}}{{/useFreezed}}
{{#useFreezed}}export 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/models.dart';{{/useFreezed}}
Loading