diff --git a/CHANGELOG.md b/CHANGELOG.md index c72da31..1f7fb0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.9.21 + +- `EntityHandler`: + - Updated all `Map.unmodifiable` usages to explicitly specify type arguments, e.g. `Map.unmodifiable`. + - Updated methods including `fieldsWithEntityReference`, `fieldsWithEntityReferenceList`, `fieldsEntityAnnotations`, `fieldsWithType`, `getFieldsTypes`, `getFieldsEnumTypes`, `getFieldsEntityTypes`, and `constructors` to use typed unmodifiable maps. + - Improved type safety in map constructions by adding explicit generic parameters. + +- Dependency updates: + - `meta`: ^1.18.0 + ## 1.9.20 - `ConditionSQLEncoder`: diff --git a/lib/src/bones_api_base.dart b/lib/src/bones_api_base.dart index 571cbf7..8fd0fad 100644 --- a/lib/src/bones_api_base.dart +++ b/lib/src/bones_api_base.dart @@ -48,7 +48,7 @@ typedef APILogger = /// Bones API Library class. class BonesAPI { // ignore: constant_identifier_names - static const String VERSION = '1.9.20'; + static const String VERSION = '1.9.21'; static bool _boot = false; diff --git a/lib/src/bones_api_entity.dart b/lib/src/bones_api_entity.dart index c0bc562..1ad5e09 100644 --- a/lib/src/bones_api_entity.dart +++ b/lib/src/bones_api_entity.dart @@ -612,7 +612,7 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { Map? _fieldsWithEntityReference; Map fieldsWithEntityReference([O? o]) => - _fieldsWithEntityReference ??= Map.unmodifiable( + _fieldsWithEntityReference ??= Map.unmodifiable( fieldsWithTypeEntityOrReference(o).entries .where((e) => e.value.isEntityReferenceType) .toMapFromEntries(), @@ -649,7 +649,7 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { Map? _fieldsWithEntityReferenceList; Map fieldsWithEntityReferenceList([O? o]) => - _fieldsWithEntityReferenceList ??= Map.unmodifiable( + _fieldsWithEntityReferenceList ??= Map.unmodifiable( fieldsWithTypeListEntityOrReference(o).entries .where((e) => e.value.isEntityReferenceListType) .toMapFromEntries(), @@ -658,17 +658,18 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { Map>? _fieldsEntityAnnotations; Map> fieldsEntityAnnotations() => - _fieldsEntityAnnotations ??= Map.unmodifiable( - (getAllFieldsEntityAnnotations() ?? {}) - .map>( - (k, v) => MapEntry(k, List.unmodifiable(v)), - ), - ); + _fieldsEntityAnnotations ??= + Map>.unmodifiable( + (getAllFieldsEntityAnnotations() ?? {}) + .map>( + (k, v) => MapEntry(k, List.unmodifiable(v)), + ), + ); Map fieldsWithType( bool Function(String fieldName, TypeInfo fieldType) typeFilter, [ O? o, - ]) => Map.unmodifiable( + ]) => Map.unmodifiable( fieldsTypes( o, ).entries.where((e) => typeFilter(e.key, e.value)).toMapFromEntries(), @@ -1561,7 +1562,7 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { Map? _fieldsTypes; Map getFieldsTypes([O? o]) { - return _fieldsTypes ??= Map.unmodifiable( + return _fieldsTypes ??= Map.unmodifiable( Map.fromEntries( fieldsNames(o).map( (key) => MapEntry( @@ -1590,7 +1591,7 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { ) .toMapFromEntries(); - return _fieldsEnumTypes = Map.unmodifiable(mapEnumFields); + return _fieldsEnumTypes = Map.unmodifiable(mapEnumFields); } Map? _fieldsEntityTypes; @@ -1619,7 +1620,9 @@ abstract class EntityHandler with FieldsFromMap, EntityRulesResolver { .nonNulls .toMapFromEntries(); - return _fieldsEntityTypes = Map.unmodifiable(mapEntityFields); + return _fieldsEntityTypes = Map.unmodifiable( + mapEntityFields, + ); } List? getFieldEntityAnnotations(O? o, String key); @@ -3166,14 +3169,17 @@ class ClassReflectionEntityHandler extends EntityHandler { @override Map>? constructors([O? o]) { - return _constructors ??= Map.unmodifiable( + return _constructors ??= Map>.unmodifiable( reflectionWithObject(o).allConstructors().map((c) { var name = c.name; var args = c.allParameters - .map((p) => MapEntry(p.jsonName, p.type.typeInfo)) + .map( + (p) => + MapEntry(p.jsonName, p.type.typeInfo), + ) .toMapFromEntries(); - return MapEntry(name, Map.unmodifiable(args)); + return MapEntry(name, Map.unmodifiable(args)); }).toMapFromEntries(), ); } diff --git a/pubspec.yaml b/pubspec.yaml index 7d6832d..1696c79 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: bones_api description: Bones_API - A powerful API backend framework for Dart. It comes with a built-in HTTP Server, route handler, entity handler, SQL translator, and DB adapters. -version: 1.9.20 +version: 1.9.21 homepage: https://github.com/Colossus-Services/bones_api environment: @@ -32,7 +32,7 @@ dependencies: shelf_gzip: ^4.1.0 shelf_static: ^1.1.3 args: ^2.7.0 - meta: ^1.17.0 + meta: ^1.18.0 petitparser: ^6.1.0 hotreloader: ^4.3.0 logging: ^1.3.0