diff --git a/packages/tonik/README.md b/packages/tonik/README.md
index 4328338..7a7673d 100644
--- a/packages/tonik/README.md
+++ b/packages/tonik/README.md
@@ -8,7 +8,8 @@
-
+
+
[
Code("final map = json.decodeMap(context: '$className');"),
];
diff --git a/packages/tonik_generate/lib/src/pubspec_generator.dart b/packages/tonik_generate/lib/src/pubspec_generator.dart
index ef578fb..257a253 100644
--- a/packages/tonik_generate/lib/src/pubspec_generator.dart
+++ b/packages/tonik_generate/lib/src/pubspec_generator.dart
@@ -25,6 +25,7 @@ dependencies:
big_decimal: ^0.5.0
collection: ^1.17.0
dio: ^5.8.0+1
+ lints: ^6.0.0
meta: ^1.16.0
tonik_util: ^0.0.5
''';
diff --git a/packages/tonik_generate/lib/src/util/format_with_header.dart b/packages/tonik_generate/lib/src/util/format_with_header.dart
index 6a51ab5..d6f305d 100644
--- a/packages/tonik_generate/lib/src/util/format_with_header.dart
+++ b/packages/tonik_generate/lib/src/util/format_with_header.dart
@@ -1,19 +1,10 @@
import 'package:dart_style/dart_style.dart';
extension FormatWithHeader on DartFormatter {
- static const _ignores = [
- 'lines_longer_than_80_chars',
- 'unnecessary_raw_strings',
- 'unnecessary_brace_in_string_interps',
- 'no_leading_underscores_for_local_identifiers',
- 'cascade_invocations',
- 'prefer_is_empty',
- ];
-
String formatWithHeader(String code) {
return format('''
// Generated code - do not modify by hand
-${_ignores.map((i) => '// ignore_for_file: $i').join('\n')}
+
$code''');
}
}
diff --git a/packages/tonik_generate/test/src/model/class_json_generator_test.dart b/packages/tonik_generate/test/src/model/class_json_generator_test.dart
index 2b391bb..7fb5505 100644
--- a/packages/tonik_generate/test/src/model/class_json_generator_test.dart
+++ b/packages/tonik_generate/test/src/model/class_json_generator_test.dart
@@ -597,5 +597,43 @@ void main() {
contains(collapseWhitespace(expectedMethod)),
);
});
+
+ test('generates fromJson method for class without properties', () {
+ final model = ClassModel(
+ context: context,
+ name: 'EmptyClass',
+ properties: const [],
+ );
+
+ const expectedMethod = '''
+ factory EmptyClass.fromJson(Object? json) {
+ return EmptyClass();
+ }''';
+
+ final generatedClass = generator.generateClass(model);
+ expect(
+ collapseWhitespace(format(generatedClass.accept(emitter).toString())),
+ contains(collapseWhitespace(expectedMethod)),
+ );
+ });
+
+ test('generates fromSimple method for class without properties', () {
+ final model = ClassModel(
+ context: context,
+ name: 'EmptyClass',
+ properties: const [],
+ );
+
+ const expectedMethod = '''
+ factory EmptyClass.fromSimple(String? value) {
+ return EmptyClass();
+ }''';
+
+ final generatedClass = generator.generateClass(model);
+ expect(
+ collapseWhitespace(format(generatedClass.accept(emitter).toString())),
+ contains(collapseWhitespace(expectedMethod)),
+ );
+ });
});
}