From 39eacf71dcc006e69e22755cfb3a33a1ded1ace0 Mon Sep 17 00:00:00 2001 From: Viet Ho Date: Wed, 8 Apr 2026 07:47:54 -0500 Subject: [PATCH 1/2] fix generate failed when model files have part directives --- .../brick_build/lib/src/builders/aggregate_builder.dart | 6 +++--- .../lib/src/builders/model_dictionary_builder.dart | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/brick_build/lib/src/builders/aggregate_builder.dart b/packages/brick_build/lib/src/builders/aggregate_builder.dart index e4103fce..0cd5603a 100644 --- a/packages/brick_build/lib/src/builders/aggregate_builder.dart +++ b/packages/brick_build/lib/src/builders/aggregate_builder.dart @@ -67,9 +67,9 @@ class AggregateBuilder implements Builder { imports.addAll(findAllImports(contents)); final newContents = contents .replaceAll(importRegex, '') - .replaceAll(RegExp("part of '.*';"), '') - .replaceAll(RegExp(r"^part\s'.*';", multiLine: true), '') - .replaceAll(RegExp(r'^export\s.*;', multiLine: true), ''); + .replaceAll(RegExp(r'^\s*part(?: of)?\s+["\x27][^"\x27]*["\x27];', multiLine: true), '') + .replaceAll(RegExp(r'^\s*part\s+["\x27][^"\x27]*["\x27];', multiLine: true), '') + .replaceAll(RegExp(r'^\s*export\s+[^\n;]+;', multiLine: true), ''); files.add(newContents); } } diff --git a/packages/brick_build/lib/src/builders/model_dictionary_builder.dart b/packages/brick_build/lib/src/builders/model_dictionary_builder.dart index 21caeff4..7054fd99 100644 --- a/packages/brick_build/lib/src/builders/model_dictionary_builder.dart +++ b/packages/brick_build/lib/src/builders/model_dictionary_builder.dart @@ -64,7 +64,11 @@ class ModelDictionaryBuilder<_ClassAnnotation> extends BaseBuilder<_ClassAnnotat { for (final annotation in annotations) '${annotation.element.name}': filesToContents.entries - .firstWhere((entry) => entry.value.contains(RegExp(r'class\s+${annotation.element.name}\s*'))) + .firstWhere( + (entry) => + entry.key.endsWith('.model.dart') && // Only use model files + entry.value.contains(RegExp('class\\s+${annotation.element.name}\\b')), + ) .key // Make relative from the `brick/` folder .replaceAll(RegExp('^lib/'), '../'), From 003b25dcef0ae7f10cc71f903e9f0d0681cdbdf4 Mon Sep 17 00:00:00 2001 From: KiddoV Date: Sat, 11 Apr 2026 09:25:19 -0500 Subject: [PATCH 2/2] apply suggestions from code review Co-authored-by: Tim Shedor --- .../brick_build/lib/src/builders/aggregate_builder.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/brick_build/lib/src/builders/aggregate_builder.dart b/packages/brick_build/lib/src/builders/aggregate_builder.dart index 0cd5603a..ecfb5459 100644 --- a/packages/brick_build/lib/src/builders/aggregate_builder.dart +++ b/packages/brick_build/lib/src/builders/aggregate_builder.dart @@ -67,9 +67,9 @@ class AggregateBuilder implements Builder { imports.addAll(findAllImports(contents)); final newContents = contents .replaceAll(importRegex, '') - .replaceAll(RegExp(r'^\s*part(?: of)?\s+["\x27][^"\x27]*["\x27];', multiLine: true), '') - .replaceAll(RegExp(r'^\s*part\s+["\x27][^"\x27]*["\x27];', multiLine: true), '') - .replaceAll(RegExp(r'^\s*export\s+[^\n;]+;', multiLine: true), ''); + .replaceAll(RegExp(r'''^part of\s+["'][^"']+["'];''', multiLine: true), '') + .replaceAll(RegExp(r'''^part\s+["'][^"']+["'];''', multiLine: true), '') + .replaceAll(RegExp(r'^export\s+[^\n;]+;', multiLine: true), ''); files.add(newContents); } }