diff --git a/packages/dynamite/dynamite/lib/src/openapi_builder.dart b/packages/dynamite/dynamite/lib/src/openapi_builder.dart index 702ca640..984a742a 100644 --- a/packages/dynamite/dynamite/lib/src/openapi_builder.dart +++ b/packages/dynamite/dynamite/lib/src/openapi_builder.dart @@ -29,30 +29,30 @@ class OpenAPIBuilder implements Builder { throw Exception('Only OpenAPI ${supportedVersions.join(', ')} are supported'); } - var tags = [ - null, - if (spec.paths != null) ...{ - for (final pathItem in spec.paths!.values) ...{ - for (final operation in pathItem.operations.values) ...{ - ...?operation.tags, - }, - }, - }, - ]; - for (final tag in tags.toList()) { - final tagPart = tag?.split('/').first; - if (!tags.contains(tagPart)) { - tags.add(tagPart); + final tags = [null]; + + if (spec.paths != null) { + for (final pathItem in spec.paths!.values) { + for (final operation in pathItem.operations.values) { + if (operation.tags != null) { + for (final tag in operation.tags!) { + final tagPart = tag.split('/').first; + if (!tags.contains(tagPart)) { + tags.add(tagPart); + } + } + } + } } } - tags = tags - ..sort( - (final a, final b) => a == null - ? -1 - : b == null - ? 1 - : a.compareTo(b), - ); + + tags.sort( + (final a, final b) => a == null + ? -1 + : b == null + ? 1 + : a.compareTo(b), + ); final hasAnySecurity = spec.components?.securitySchemes?.isNotEmpty ?? false;