diff --git a/packages/orm/angel_orm/CHANGELOG.md b/packages/orm/angel_orm/CHANGELOG.md index f05009b3..9e37e1f7 100644 --- a/packages/orm/angel_orm/CHANGELOG.md +++ b/packages/orm/angel_orm/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 4.0.0 + +* Updated `Optional` package + ## 4.0.0-beta.4 * Added `hasSize` to `ColumnType` diff --git a/packages/orm/angel_orm/pubspec.yaml b/packages/orm/angel_orm/pubspec.yaml index b025ca1f..47fbacde 100644 --- a/packages/orm/angel_orm/pubspec.yaml +++ b/packages/orm/angel_orm/pubspec.yaml @@ -1,5 +1,5 @@ name: angel3_orm -version: 4.0.0-beta.4 +version: 4.0.0 description: Runtime support for Angel3 ORM. Includes base classes for queries. homepage: https://angel3-framework.web.app/ repository: https://github.com/dukefirehawk/angel/tree/angel3/packages/orm/angel_orm @@ -10,7 +10,7 @@ dependencies: intl: ^0.17.0 meta: ^1.3.0 string_scanner: ^1.1.0 - optional: ^6.0.0-nullsafety.2 + optional: ^6.0.0 dev_dependencies: angel3_model: ^3.0.0 angel3_serialize: ^4.0.0 diff --git a/packages/orm/angel_orm_generator/lib/src/orm_build_context.dart b/packages/orm/angel_orm_generator/lib/src/orm_build_context.dart index 2c2c76cd..f251c387 100644 --- a/packages/orm/angel_orm_generator/lib/src/orm_build_context.dart +++ b/packages/orm/angel_orm_generator/lib/src/orm_build_context.dart @@ -12,11 +12,14 @@ import 'package:angel3_serialize_generator/context.dart'; import 'package:build/build.dart'; import 'package:collection/collection.dart' show IterableExtension; import 'package:inflection3/inflection3.dart'; +import 'package:logging/logging.dart'; import 'package:recase/recase.dart'; import 'package:source_gen/source_gen.dart'; import 'readers.dart'; +var _log = Logger('orm_build_context'); + bool isHasRelation(Relationship r) => r.type == RelationshipType.hasOne || r.type == RelationshipType.hasMany; @@ -74,19 +77,26 @@ Future buildOrmContext( const TypeChecker.fromRuntime(GeneratedSerializable) .firstAnnotationOf(clazz)) != null) { - clazz = clazz.supertype!.element; + if (clazz.supertype != null) { + clazz = clazz.supertype!.element; + } } - var id = clazz.location!.components.join('-'); + var id = clazz.location?.components.join('-') ?? ''; if (cache.containsKey(id)) { return cache[id]; } - var buildCtx = await (buildContext( + var buildCtx = await buildContext( clazz, annotation, buildStep, resolver, autoSnakeCaseNames!, - heedExclude: heedExclude) as FutureOr); + heedExclude: heedExclude); var ormAnnotation = reviveORMAnnotation(annotation); // print( // 'tableName (${annotation.objectValue.type.name}) => ${ormAnnotation.tableName} from ${clazz.name} (${annotation.revive().namedArguments})'); + if (buildCtx == null) { + _log.severe('BuildContext is null'); + + return null; + } var ctx = OrmBuildContext( buildCtx, ormAnnotation, diff --git a/packages/orm/angel_orm_generator/pubspec.yaml b/packages/orm/angel_orm_generator/pubspec.yaml index b8be50c6..6d83b5e0 100644 --- a/packages/orm/angel_orm_generator/pubspec.yaml +++ b/packages/orm/angel_orm_generator/pubspec.yaml @@ -21,6 +21,7 @@ dependencies: recase: ^4.0.0 source_gen: ^1.0.0 collection: ^1.15.0 + logging: ^1.0.0 dev_dependencies: angel3_framework: ^4.0.0 angel3_migration: ^4.0.0-beta.1