freezedTemplate function

String freezedTemplate({
  1. required String filename,
  2. required String filenameCamelCase,
  3. required String nestedModelName,
  4. required String parameters,
  5. String? imports,
  6. String? comment,
})

Генерирует Freezed-модель по шаблону

filename - имя файла (snake_case)

filenameCamelCase - имя файла (camel_case)

nestedModelName - название внутренней модели (camel_case)

parameters - блок с полями модели

comment - комментарий к модели

Implementation

String freezedTemplate({
  required String filename,
  required String filenameCamelCase,
  required String nestedModelName,
  required String parameters,
  String? imports,
  String? comment,
}) {
  return '''import 'package:freezed_annotation/freezed_annotation.dart';${imports != null ? '\n$imports' : ''}

part '$filename.g.dart';
part '$filename.freezed.dart';
${comment != null ? '\n/// $comment' : ''}
@freezed
// ignore_for_file: invalid_annotation_target
class $filenameCamelCase with _\$$filenameCamelCase {
  const factory $filenameCamelCase(
$parameters
  ) = $nestedModelName;

  factory $filenameCamelCase.fromJson(Map<String, dynamic> json) => _\$${filenameCamelCase}FromJson(json);
}
''';
}