getLoadedIncludePaths method

List<String> getLoadedIncludePaths()

Get names of loaded includes

Implementation

List<String> getLoadedIncludePaths() {
  final result = <String>{};

  void walk(RelationalModel model, String prefix) {
    for (final rel in model.loadedIncludes.keys) {
      final path = prefix.isEmpty
          ? rel
          : '$prefix.$rel';

      result.add(path);

      final value = model.getRelation(rel);

      if (value is RelationalModel) {
        walk(value, path);
      }

      if (value is List) {
        for (final item in value) {
          if (item is RelationalModel) {
            walk(item, path);
          }
        }
      }
    }
  }

  walk(this, '');

  return result.toList();
}