examples property

List<Entrypoint> get examples

Gets Entrypoints for examples of any workspace packages.

Does not return examples that are already in the workspace

This will be empty if the example folder doesn't have a pubspec.yaml.

Implementation

List<Entrypoint> get examples {
  if (_examples case final List<Entrypoint> examples) return examples;
  final directoriesInWorkspace = <String>{};
  for (final package in workspaceRoot.transitiveWorkspace) {
    directoriesInWorkspace.add(p.canonicalize(package.dir));
  }
  final result = <Entrypoint>[];
  for (final package in workspaceRoot.transitiveWorkspace) {
    final examplePath = package.path('example');

    if (!directoriesInWorkspace.contains(p.canonicalize(examplePath)) &&
        fileExists(p.join(examplePath, 'pubspec.yaml'))) {
      result.add(Entrypoint(examplePath, cache));
    }
  }
  return _examples = result;
}