Browse Source

add serializer

Signed-off-by: Nikolas Rimikis <rimikis.nikolas@gmail.com>
pull/238/head
Nikolas Rimikis 2 years ago
parent
commit
65ebcc8a12
No known key found for this signature in database
GPG Key ID: 85ED1DE9786A4FF2
  1. 23
      packages/dynamite/lib/src/openapi_builder.dart
  2. 2
      packages/nextcloud/lib/nextcloud.dart
  3. 1038
      packages/nextcloud/lib/src/nextcloud.openapi.dart
  4. 1
      packages/nextcloud/lib/src/nextcloud.openapi.g.dart

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

@ -65,6 +65,8 @@ class OpenAPIBuilder implements Builder {
'',
"import 'package:built_collection/built_collection.dart';",
"import 'package:built_value/built_value.dart';",
"import 'package:built_value/serializer.dart';",
"import 'package:built_value/standard_json_plugin.dart';",
"import 'package:cookie_jar/cookie_jar.dart';",
'',
"export 'package:cookie_jar/cookie_jar.dart';",
@ -1016,24 +1018,17 @@ class OpenAPIBuilder implements Builder {
if (state.registeredJsonObjects.isNotEmpty) {
output.addAll([
'// coverage:ignore-start',
'final _deserializers = <Type, dynamic Function(dynamic)>{',
'@SerializersFor(const [',
for (final name in state.registeredJsonObjects) ...[
'$name: (final data) => ${TypeResultObject(name).deserialize('data')},',
'List<$name>: (final data) => ${TypeResultList('List<$name>', TypeResultObject(name)).deserialize('data')},',
'$name,',
],
'};',
'])',
r'final Serializers serializers = (_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();',
'',
'final _serializers = <Type, dynamic Function(dynamic)>{',
for (final name in state.registeredJsonObjects) ...[
'$name: (final data) => ${TypeResultObject(name).serialize('data')},',
'List<$name>: (final data) => ${TypeResultList('List<$name>', TypeResultObject(name)).serialize('data')},',
],
'};',
'',
'T deserialize$prefix<T>(final dynamic data) => _deserializers[T]!(data) as T;',
'// coverage:ignore-start',
'T deserialize$prefix<T>(final Object data) => serializers.deserialize(data, specifiedType: FullType(T))! as T;',
'',
'dynamic serialize$prefix<T>(final T data) => _serializers[T]!(data);',
'Object? serialize$prefix<T>(final T data) => serializers.serialize(data, specifiedType: FullType(T));',
'// coverage:ignore-end',
]);
}

2
packages/nextcloud/lib/nextcloud.dart

@ -13,7 +13,7 @@ import 'package:xml/xml.dart' as xml;
export 'package:crypton/crypton.dart' show RSAKeypair, RSAPrivateKey, RSAPublicKey;
export 'src/nextcloud.openapi.dart' hide NextcloudClient;
export 'src/nextcloud.openapi.dart' hide NextcloudClient, serializers;
part 'src/app_type.dart';
part 'src/client.dart';

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

File diff suppressed because it is too large Load Diff

1
packages/nextcloud/lib/src/nextcloud.openapi.g.dart

@ -106,6 +106,7 @@ final BuiltSet<NextcloudUserStatusType> _$nextcloudUserStatusTypeValues =
_$nextcloudUserStatusTypeInvisible,
]);
Serializers _$serializers = (Serializers().toBuilder()).build();
Serializer<NextcloudNotesSettings_NoteMode> _$nextcloudNotesSettingsNoteModeSerializer =
_$NextcloudNotesSettings_NoteModeSerializer();
Serializer<NextcloudUserStatusClearAt_Type> _$nextcloudUserStatusClearAtTypeSerializer =

Loading…
Cancel
Save