Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions packages/freezed/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## Unreleased minor
## Unreleased patch

Added `when`/`map` back
- Added `when`/`map` back
- Stop writing `// dart format width=80` to the generated freezed files.

## 3.0.6 - 2025-04-05

Expand Down
6 changes: 6 additions & 0 deletions packages/freezed/lib/builder.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import 'package:build/build.dart';
import 'package:dart_style/dart_style.dart' show DartFormatter;
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:pub_semver/pub_semver.dart' show Version;
import 'package:source_gen/source_gen.dart';

import 'src/freezed_generator.dart';
Expand All @@ -14,6 +16,7 @@ Builder freezed(BuilderOptions options) {
),
],
'.freezed.dart',
formatOutput: _defaultFormatOutput,
header: '''
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
Expand All @@ -23,3 +26,6 @@ Builder freezed(BuilderOptions options) {
options: options,
);
}

String _defaultFormatOutput(String code, Version version) =>
DartFormatter(languageVersion: version).format(code);
2 changes: 2 additions & 0 deletions packages/freezed/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ dependencies:
source_gen: ^2.0.0
freezed_annotation: ^3.0.0
json_annotation: ^4.8.0
dart_style: ^3.0.0
pub_semver: ^2.2.0

dev_dependencies:
json_serializable: ^6.3.2
Expand Down
35 changes: 35 additions & 0 deletions packages/freezed/test/source_gen_test.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import 'dart:async';
import 'dart:io' show Directory, File;

import 'package:freezed/src/freezed_generator.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:source_gen_test/source_gen_test.dart';
import 'package:test/test.dart';

Future<void> main() async {
final reader = await initializeLibraryReaderForDirectory(
Expand All @@ -16,4 +18,37 @@ Future<void> main() async {
reader,
FreezedGenerator(Freezed.fromJson(<Object?, Object?>{}), format: false),
);

test('generated files do not contain default source_gen header', () {
// Read generated files from the integration folder.
final generatedFiles = Directory('test/integration')
.listSync(recursive: true)
.whereType<File>()
.where((e) => e.path.endsWith('.freezed.dart'))
.toList();

// Ensure we have files to test
expect(
generatedFiles,
isNotEmpty,
reason: 'Expected to find .freezed.dart files in test/integration',
);

for (final file in generatedFiles) {
final content = file.readAsStringSync();

// Verify the custom header is present
expect(content, contains('// coverage:ignore-file'));
expect(content, contains('// GENERATED CODE - DO NOT MODIFY BY HAND'));
expect(content, contains('// ignore_for_file: type=lint'));

// Verify the default source_gen header is NOT present
expect(
content,
isNot(contains('// dart format width')),
reason:
'File ${file.path} should not contain default source_gen header',
);
}
});
}