buildStories method

Future<List<Expression>> buildStories(
  1. MetaDescription? meta
)

Implementation

Future<List<Expression>> buildStories(MetaDescription? meta) async {
  final parser = StoryParser(resolver: resolver, meta: meta);
  final stories = library.topLevelVariables
      .whereType<TopLevelVariableElement>()
      .where(checkStory);

  final parsed = <String>{};
  final result = <(String, Expression)>[];
  for (final story in stories) {
    if (parsed.contains(story.name)) continue;

    final storyAccessor = await parser.parse(story);
    final name = story.name;
    if (name == null) {
      throw ArgumentError.notNull('story.name');
    }

    result.add((name, storyAccessor));
    parsed.add(name);
  }

  return result //
      .sortedBy((it) => it.$1)
      .map((it) => it.$2)
      .toList();
}