From 4caa270fbf0a3847c3c5f6f2f32c38e7e5094497 Mon Sep 17 00:00:00 2001 From: Tim Shedor Date: Mon, 26 Aug 2024 17:55:16 -0700 Subject: [PATCH] give field rename its own file --- .../annotation_finder_with_field_rename.dart | 2 +- packages/brick_core/lib/field_rename.dart | 16 ++++++++++++++++ packages/brick_core/lib/field_serializable.dart | 17 ----------------- packages/brick_graphql/lib/brick_graphql.dart | 2 +- .../src/annotations/graphql_serializable.dart | 2 +- .../lib/graphql_model_serdes_generator.dart | 1 + packages/brick_graphql_generators/pubspec.yaml | 1 + .../test_graphql_config_field_rename.dart | 3 ++- .../test_rest_config_field_rename.dart | 3 ++- packages/brick_rest/lib/brick_rest.dart | 2 +- .../lib/src/annotations/rest_serializable.dart | 2 +- .../lib/rest_model_serdes_generator.dart | 3 ++- packages/brick_rest_generators/pubspec.yaml | 2 +- 13 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 packages/brick_core/lib/field_rename.dart diff --git a/packages/brick_build/lib/src/annotation_finder_with_field_rename.dart b/packages/brick_build/lib/src/annotation_finder_with_field_rename.dart index 73328d3c..1057cd88 100644 --- a/packages/brick_build/lib/src/annotation_finder_with_field_rename.dart +++ b/packages/brick_build/lib/src/annotation_finder_with_field_rename.dart @@ -1,6 +1,6 @@ import 'package:brick_build/src/annotation_finder.dart'; import 'package:brick_build/src/utils/string_helpers.dart'; -import 'package:brick_core/field_serializable.dart'; +import 'package:brick_core/field_rename.dart'; mixin AnnotationFinderWithFieldRename on AnnotationFinder { /// Change serialization key based on the configuration. diff --git a/packages/brick_core/lib/field_rename.dart b/packages/brick_core/lib/field_rename.dart new file mode 100644 index 00000000..3e56bb08 --- /dev/null +++ b/packages/brick_core/lib/field_rename.dart @@ -0,0 +1,16 @@ +/// Values for the automatic field renaming behavior for class-level serializables. +/// +/// Heavily borrowed/inspired by [JsonSerializable](https://github.com/dart-lang/json_serializable/blob/a581e5cc9ee25bf4ad61e8f825a311289ade905c/json_serializable/lib/src/json_key_utils.dart#L164-L179) +enum FieldRename { + /// Leave fields unchanged + none, + + /// Encodes field name from `snakeCase` to `snake_case`. + snake, + + /// Encodes field name from `kebabCase` to `kebab-case`. + kebab, + + /// Capitalizes first letter of field name + pascal, +} diff --git a/packages/brick_core/lib/field_serializable.dart b/packages/brick_core/lib/field_serializable.dart index 8c8582a1..857c67ce 100644 --- a/packages/brick_core/lib/field_serializable.dart +++ b/packages/brick_core/lib/field_serializable.dart @@ -1,22 +1,5 @@ // ignore_for_file: constant_identifier_names -/// Values for the automatic field renaming behavior for [FieldSerializable]. -/// -/// Heavily borrowed/inspired by [JsonSerializable](https://github.com/dart-lang/json_serializable/blob/a581e5cc9ee25bf4ad61e8f825a311289ade905c/json_serializable/lib/src/json_key_utils.dart#L164-L179) -enum FieldRename { - /// Leave fields unchanged - none, - - /// Encodes field name from `snakeCase` to `snake_case`. - snake, - - /// Encodes field name from `kebabCase` to `kebab-case`. - kebab, - - /// Capitalizes first letter of field name - pascal, -} - /// Interface for other field-level annotations. /// For example, `class Rest extends FieldSerializable {}` abstract class FieldSerializable { diff --git a/packages/brick_graphql/lib/brick_graphql.dart b/packages/brick_graphql/lib/brick_graphql.dart index c6ec5bd7..01bc9446 100644 --- a/packages/brick_graphql/lib/brick_graphql.dart +++ b/packages/brick_graphql/lib/brick_graphql.dart @@ -1,4 +1,4 @@ -export 'package:brick_core/field_serializable.dart' show FieldRename; +export 'package:brick_core/field_rename.dart'; export 'package:brick_graphql/src/annotations/graphql.dart'; export 'package:brick_graphql/src/annotations/graphql_serializable.dart'; export 'package:brick_graphql/src/graphql_adapter.dart'; diff --git a/packages/brick_graphql/lib/src/annotations/graphql_serializable.dart b/packages/brick_graphql/lib/src/annotations/graphql_serializable.dart index e97ea8d7..547ac4ab 100644 --- a/packages/brick_graphql/lib/src/annotations/graphql_serializable.dart +++ b/packages/brick_graphql/lib/src/annotations/graphql_serializable.dart @@ -1,5 +1,5 @@ import 'package:brick_core/core.dart'; -import 'package:brick_core/field_serializable.dart'; +import 'package:brick_core/field_rename.dart'; import 'package:brick_graphql/src/graphql_model.dart'; import 'package:brick_graphql/src/transformers/graphql_query_operation_transformer.dart'; diff --git a/packages/brick_graphql_generators/lib/graphql_model_serdes_generator.dart b/packages/brick_graphql_generators/lib/graphql_model_serdes_generator.dart index 99d7dca1..26ee5fab 100644 --- a/packages/brick_graphql_generators/lib/graphql_model_serdes_generator.dart +++ b/packages/brick_graphql_generators/lib/graphql_model_serdes_generator.dart @@ -1,5 +1,6 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:brick_build/generators.dart' show ProviderSerializableGenerator, SerdesGenerator; +import 'package:brick_core/field_rename.dart'; import 'package:brick_graphql/brick_graphql.dart'; import 'package:brick_graphql_generators/src/graphql_deserialize.dart'; import 'package:brick_graphql_generators/src/graphql_fields.dart'; diff --git a/packages/brick_graphql_generators/pubspec.yaml b/packages/brick_graphql_generators/pubspec.yaml index 15c5a479..1e868428 100644 --- a/packages/brick_graphql_generators/pubspec.yaml +++ b/packages/brick_graphql_generators/pubspec.yaml @@ -12,6 +12,7 @@ environment: dependencies: analyzer: ">=6.0.0 <7.0.0" brick_build: ">=3.2.0 <4.0.0" + brick_core: ">=1.2.1 <2.0.0" brick_graphql: ">=3.0.0 <4.0.0" brick_json_generators: ">=3.0.0 <4.0.0" build: ">=2.0.0 <3.0.0" diff --git a/packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_graphql_config_field_rename.dart b/packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_graphql_config_field_rename.dart index d3e9ae12..c62c1615 100644 --- a/packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_graphql_config_field_rename.dart +++ b/packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_graphql_config_field_rename.dart @@ -1,4 +1,5 @@ -import 'package:brick_graphql/brick_graphql.dart' show FieldRename, GraphqlSerializable; +import 'package:brick_core/field_rename.dart'; +import 'package:brick_graphql/brick_graphql.dart' show GraphqlSerializable; import 'package:brick_offline_first/brick_offline_first.dart'; import 'package:brick_offline_first_with_graphql/brick_offline_first_with_graphql.dart'; diff --git a/packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_rest_config_field_rename.dart b/packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_rest_config_field_rename.dart index bf83f0ff..22c2ee43 100644 --- a/packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_rest_config_field_rename.dart +++ b/packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_rest_config_field_rename.dart @@ -1,6 +1,7 @@ +import 'package:brick_core/field_rename.dart'; import 'package:brick_offline_first/brick_offline_first.dart'; import 'package:brick_offline_first_with_rest/brick_offline_first_with_rest.dart'; -import 'package:brick_rest/brick_rest.dart' show FieldRename, RestSerializable; +import 'package:brick_rest/brick_rest.dart' show RestSerializable; final output = r''' Future _$RestConfigNoRenameFromRest( diff --git a/packages/brick_rest/lib/brick_rest.dart b/packages/brick_rest/lib/brick_rest.dart index 0f4655fb..5668c7b6 100644 --- a/packages/brick_rest/lib/brick_rest.dart +++ b/packages/brick_rest/lib/brick_rest.dart @@ -1,4 +1,4 @@ -export 'package:brick_core/field_serializable.dart' show FieldRename; +export 'package:brick_core/field_rename.dart'; export 'package:brick_rest/rest_exception.dart'; export 'package:brick_rest/src/annotations/rest.dart'; export 'package:brick_rest/src/annotations/rest_serializable.dart'; diff --git a/packages/brick_rest/lib/src/annotations/rest_serializable.dart b/packages/brick_rest/lib/src/annotations/rest_serializable.dart index cf85825e..3bd6658c 100644 --- a/packages/brick_rest/lib/src/annotations/rest_serializable.dart +++ b/packages/brick_rest/lib/src/annotations/rest_serializable.dart @@ -1,4 +1,4 @@ -import 'package:brick_core/field_serializable.dart'; +import 'package:brick_core/field_rename.dart'; import 'package:brick_core/query.dart'; import 'package:brick_rest/src/rest_model.dart'; import 'package:brick_rest/src/rest_request_transformer.dart'; diff --git a/packages/brick_rest_generators/lib/rest_model_serdes_generator.dart b/packages/brick_rest_generators/lib/rest_model_serdes_generator.dart index f2357b20..421a4804 100644 --- a/packages/brick_rest_generators/lib/rest_model_serdes_generator.dart +++ b/packages/brick_rest_generators/lib/rest_model_serdes_generator.dart @@ -1,6 +1,7 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:brick_build/generators.dart'; -import 'package:brick_rest/brick_rest.dart' show RestSerializable, FieldRename; +import 'package:brick_core/field_rename.dart'; +import 'package:brick_rest/brick_rest.dart' show RestSerializable; import 'package:brick_rest_generators/src/rest_deserialize.dart'; import 'package:brick_rest_generators/src/rest_fields.dart'; import 'package:brick_rest_generators/src/rest_serializable_extended.dart'; diff --git a/packages/brick_rest_generators/pubspec.yaml b/packages/brick_rest_generators/pubspec.yaml index 7dc75994..43de0df8 100644 --- a/packages/brick_rest_generators/pubspec.yaml +++ b/packages/brick_rest_generators/pubspec.yaml @@ -12,7 +12,7 @@ environment: dependencies: analyzer: ">=6.0.0 <7.0.0" brick_build: ">=3.2.0 <4.0.0" - brick_core: ^1.1.1 + brick_core: ">=1.2.1 <2.0.0" brick_json_generators: ">=3.0.0 <4.0.0" brick_rest: ">=3.0.4 <4.0.0" build: ">=2.0.0 <3.0.0"