generateImports function

String generateImports(
  1. List<WidgetbookData> datas
)

generates the imports for all the types used in app.widgetbook.dart

the code returned likely contains unneccesary imports but this implementation is simple in comparison to a complex approach

Implementation

String generateImports(
  List<WidgetbookData> datas,
) {
  final set = <String>{};

  for (final data in datas) {
    set
      ..add(data.importStatement)
      ..addAll(data.dependencies);
  }

  set
    ..add('package:flutter/material.dart')
    ..add('package:widgetbook/widgetbook.dart')
    ..remove('package:widgetbook_annotation/widgetbook_annotation.dart');

  final imports = set.map(_generateImportStatement).toList()
    ..sort((a, b) => a.compareTo(b));

  return imports.join('\n');
}