Browse Source

Merge pull request #370 from Leptopoda/fix/#367

Fix/#367 dynamite:duplicate builderFactories
pull/376/head
Nikolas Rimikis 1 year ago committed by GitHub
parent
commit
6b60409912
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      packages/dynamite/dynamite/lib/dynamite.dart
  2. 6
      packages/dynamite/dynamite/lib/src/openapi_builder.dart
  3. 3
      packages/dynamite/dynamite/lib/src/type_result/base.dart
  4. 14
      packages/dynamite/dynamite/lib/src/type_result/enum.dart
  5. 14
      packages/dynamite/dynamite/lib/src/type_result/list.dart
  6. 14
      packages/dynamite/dynamite/lib/src/type_result/map.dart
  7. 3
      packages/dynamite/dynamite/lib/src/type_result/object.dart
  8. 17
      packages/dynamite/dynamite/lib/src/type_result/type_result.dart
  9. 1
      packages/dynamite/dynamite/pubspec.yaml
  10. 2
      packages/dynamite/dynamite/test/type_result_test.dart
  11. 11
      packages/nextcloud/lib/src/nextcloud.openapi.dart

8
packages/dynamite/dynamite/lib/dynamite.dart

@ -9,13 +9,7 @@ import 'package:dynamite/src/models/open_api.dart';
import 'package:dynamite/src/models/parameter.dart' as spec_parameter; import 'package:dynamite/src/models/parameter.dart' as spec_parameter;
import 'package:dynamite/src/models/path_item.dart'; import 'package:dynamite/src/models/path_item.dart';
import 'package:dynamite/src/models/schema.dart'; import 'package:dynamite/src/models/schema.dart';
import 'package:intersperse/intersperse.dart'; import 'package:dynamite/src/type_result/type_result.dart';
import 'package:path/path.dart' as p; import 'package:path/path.dart' as p;
part 'src/openapi_builder.dart'; part 'src/openapi_builder.dart';
part 'src/type_result/base.dart';
part 'src/type_result/enum.dart';
part 'src/type_result/list.dart';
part 'src/type_result/map.dart';
part 'src/type_result/object.dart';
part 'src/type_result/type_result.dart';

6
packages/dynamite/dynamite/lib/src/openapi_builder.dart

@ -1228,10 +1228,10 @@ class State {
State(this.prefix); State(this.prefix);
final String prefix; final String prefix;
final resolvedTypes = <String>[]; final resolvedTypes = <String>{};
final registeredJsonObjects = <String>[]; final registeredJsonObjects = <String>{};
final output = <Spec>[]; final output = <Spec>[];
final resolvedTypeCombinations = <TypeResult>[]; final resolvedTypeCombinations = <TypeResult>{};
} }
TypeResult resolveObject( TypeResult resolveObject(

3
packages/dynamite/dynamite/lib/src/type_result/base.dart

@ -1,5 +1,6 @@
part of '../../dynamite.dart'; part of 'type_result.dart';
@immutable
class TypeResultBase extends TypeResult { class TypeResultBase extends TypeResult {
TypeResultBase( TypeResultBase(
super.name, { super.name, {

14
packages/dynamite/dynamite/lib/src/type_result/enum.dart

@ -1,5 +1,6 @@
part of '../../dynamite.dart'; part of 'type_result.dart';
@immutable
class TypeResultEnum extends TypeResult { class TypeResultEnum extends TypeResult {
TypeResultEnum( TypeResultEnum(
super.name, super.name,
@ -27,4 +28,15 @@ class TypeResultEnum extends TypeResult {
@override @override
String decode(final String object) => subType.decode(object); String decode(final String object) => subType.decode(object);
@override
bool operator ==(final Object other) =>
other is TypeResultEnum &&
other.className == className &&
other.generics == generics &&
other.nullable == nullable &&
other.subType == subType;
@override
int get hashCode => className.hashCode + generics.hashCode + nullable.hashCode + subType.hashCode;
} }

14
packages/dynamite/dynamite/lib/src/type_result/list.dart

@ -1,5 +1,6 @@
part of '../../dynamite.dart'; part of 'type_result.dart';
@immutable
class TypeResultList extends TypeResult { class TypeResultList extends TypeResult {
TypeResultList( TypeResultList(
super.name, super.name,
@ -27,4 +28,15 @@ class TypeResultList extends TypeResult {
@override @override
TypeResultList get dartType => TypeResultList('List', subType, nullable: nullable); TypeResultList get dartType => TypeResultList('List', subType, nullable: nullable);
@override
bool operator ==(final Object other) =>
other is TypeResultList &&
other.className == className &&
other.generics == generics &&
other.nullable == nullable &&
other.subType == subType;
@override
int get hashCode => className.hashCode + generics.hashCode + nullable.hashCode + subType.hashCode;
} }

14
packages/dynamite/dynamite/lib/src/type_result/map.dart

@ -1,5 +1,6 @@
part of '../../dynamite.dart'; part of 'type_result.dart';
@immutable
class TypeResultMap extends TypeResult { class TypeResultMap extends TypeResult {
TypeResultMap( TypeResultMap(
super.name, super.name,
@ -14,4 +15,15 @@ class TypeResultMap extends TypeResult {
@override @override
TypeResultMap get dartType => TypeResultMap('Map', subType, nullable: nullable); TypeResultMap get dartType => TypeResultMap('Map', subType, nullable: nullable);
@override
bool operator ==(final Object other) =>
other is TypeResultMap &&
other.className == className &&
other.generics == generics &&
other.nullable == nullable &&
other.subType == subType;
@override
int get hashCode => className.hashCode + generics.hashCode + nullable.hashCode + subType.hashCode;
} }

3
packages/dynamite/dynamite/lib/src/type_result/object.dart

@ -1,7 +1,8 @@
part of '../../dynamite.dart'; part of 'type_result.dart';
const _contentString = 'ContentString'; const _contentString = 'ContentString';
@immutable
class TypeResultObject extends TypeResult { class TypeResultObject extends TypeResult {
TypeResultObject( TypeResultObject(
super.className, { super.className, {

17
packages/dynamite/dynamite/lib/src/type_result/type_result.dart

@ -1,5 +1,13 @@
part of '../../dynamite.dart'; import 'package:intersperse/intersperse.dart';
import 'package:meta/meta.dart';
part 'base.dart';
part 'enum.dart';
part 'list.dart';
part 'map.dart';
part 'object.dart';
@immutable
abstract class TypeResult { abstract class TypeResult {
TypeResult( TypeResult(
this.className, { this.className, {
@ -84,4 +92,11 @@ abstract class TypeResult {
/// Native dart type equivalent /// Native dart type equivalent
// ignore: avoid_returning_this // ignore: avoid_returning_this
TypeResult get dartType => this; TypeResult get dartType => this;
@override
bool operator ==(final Object other) =>
other is TypeResult && other.className == className && other.generics == generics && other.nullable == nullable;
@override
int get hashCode => className.hashCode + generics.hashCode + nullable.hashCode;
} }

1
packages/dynamite/dynamite/pubspec.yaml

@ -11,6 +11,7 @@ dependencies:
dart_style: ^2.3.1 dart_style: ^2.3.1
intersperse: ^2.0.0 intersperse: ^2.0.0
json_annotation: ^4.8.1 json_annotation: ^4.8.1
meta: ^1.9.1
path: ^1.8.3 path: ^1.8.3
dev_dependencies: dev_dependencies:

2
packages/dynamite/dynamite/test/type_result_test.dart

@ -1,4 +1,4 @@
import 'package:dynamite/dynamite.dart'; import 'package:dynamite/src/type_result/type_result.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
void main() { void main() {

11
packages/nextcloud/lib/src/nextcloud.openapi.dart

@ -5182,20 +5182,14 @@ final Serializers serializers = (_$serializers.toBuilder()
..addBuilderFactory(const FullType(NextcloudCoreAutocompleteResult), NextcloudCoreAutocompleteResult.new) ..addBuilderFactory(const FullType(NextcloudCoreAutocompleteResult), NextcloudCoreAutocompleteResult.new)
..addBuilderFactory(const FullType(NextcloudNewsSupportedAPIVersions), NextcloudNewsSupportedAPIVersions.new) ..addBuilderFactory(const FullType(NextcloudNewsSupportedAPIVersions), NextcloudNewsSupportedAPIVersions.new)
..addBuilderFactory(const FullType(NextcloudNewsListFolders), NextcloudNewsListFolders.new) ..addBuilderFactory(const FullType(NextcloudNewsListFolders), NextcloudNewsListFolders.new)
..addBuilderFactory(const FullType(NextcloudNewsListFolders), NextcloudNewsListFolders.new)
..addBuilderFactory(const FullType(NextcloudNewsListFeeds), NextcloudNewsListFeeds.new)
..addBuilderFactory(const FullType(NextcloudNewsListFeeds), NextcloudNewsListFeeds.new) ..addBuilderFactory(const FullType(NextcloudNewsListFeeds), NextcloudNewsListFeeds.new)
..addBuilderFactory(const FullType(NextcloudNewsListArticles), NextcloudNewsListArticles.new) ..addBuilderFactory(const FullType(NextcloudNewsListArticles), NextcloudNewsListArticles.new)
..addBuilderFactory(const FullType(NextcloudNewsListArticles), NextcloudNewsListArticles.new)
..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new) ..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new)
..addBuilderFactory( ..addBuilderFactory(
const FullType(BuiltList, [FullType(NextcloudNotesNote)]), const FullType(BuiltList, [FullType(NextcloudNotesNote)]),
ListBuilder<NextcloudNotesNote>.new, ListBuilder<NextcloudNotesNote>.new,
) )
..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new) ..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new)
..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new)
..addBuilderFactory(const FullType(NextcloudNotesNote), NextcloudNotesNote.new)
..addBuilderFactory(const FullType(NextcloudNotesSettings), NextcloudNotesSettings.new)
..addBuilderFactory(const FullType(NextcloudNotesSettings), NextcloudNotesSettings.new) ..addBuilderFactory(const FullType(NextcloudNotesSettings), NextcloudNotesSettings.new)
..addBuilderFactory( ..addBuilderFactory(
const FullType(NextcloudNotificationsListNotifications), const FullType(NextcloudNotificationsListNotifications),
@ -5210,8 +5204,6 @@ final Serializers serializers = (_$serializers.toBuilder()
const FullType(NextcloudNotificationsPushServerRegistration), const FullType(NextcloudNotificationsPushServerRegistration),
NextcloudNotificationsPushServerRegistration.new, NextcloudNotificationsPushServerRegistration.new,
) )
..addBuilderFactory(const FullType(NextcloudEmptyOCS), NextcloudEmptyOCS.new)
..addBuilderFactory(const FullType(NextcloudProvisioningApiUser), NextcloudProvisioningApiUser.new)
..addBuilderFactory(const FullType(NextcloudProvisioningApiUser), NextcloudProvisioningApiUser.new) ..addBuilderFactory(const FullType(NextcloudProvisioningApiUser), NextcloudProvisioningApiUser.new)
..addBuilderFactory( ..addBuilderFactory(
const FullType(NextcloudUnifiedPushProviderCheckResponse200ApplicationJson), const FullType(NextcloudUnifiedPushProviderCheckResponse200ApplicationJson),
@ -5263,9 +5255,6 @@ final Serializers serializers = (_$serializers.toBuilder()
) )
..addBuilderFactory(const FullType(NextcloudUserStatusGetPublicStatus), NextcloudUserStatusGetPublicStatus.new) ..addBuilderFactory(const FullType(NextcloudUserStatusGetPublicStatus), NextcloudUserStatusGetPublicStatus.new)
..addBuilderFactory(const FullType(NextcloudUserStatusGetStatus), NextcloudUserStatusGetStatus.new) ..addBuilderFactory(const FullType(NextcloudUserStatusGetStatus), NextcloudUserStatusGetStatus.new)
..addBuilderFactory(const FullType(NextcloudUserStatusGetStatus), NextcloudUserStatusGetStatus.new)
..addBuilderFactory(const FullType(NextcloudUserStatusGetStatus), NextcloudUserStatusGetStatus.new)
..addBuilderFactory(const FullType(NextcloudUserStatusGetStatus), NextcloudUserStatusGetStatus.new)
..addBuilderFactory( ..addBuilderFactory(
const FullType(NextcloudUserStatusPredefinedStatuses), const FullType(NextcloudUserStatusPredefinedStatuses),
NextcloudUserStatusPredefinedStatuses.new, NextcloudUserStatusPredefinedStatuses.new,

Loading…
Cancel
Save