| Index: third_party/pkg/angular/lib/tools/source_crawler_impl.dart
|
| diff --git a/third_party/pkg/angular/lib/tools/source_crawler_impl.dart b/third_party/pkg/angular/lib/tools/source_crawler_impl.dart
|
| deleted file mode 100644
|
| index b32940c0d743d919d73a398a86b89f7d6f485660..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/tools/source_crawler_impl.dart
|
| +++ /dev/null
|
| @@ -1,98 +0,0 @@
|
| -library angular.source_crawler_impl;
|
| -
|
| -import 'dart:io';
|
| -import 'package:analyzer/analyzer.dart';
|
| -import 'package:angular/tools/source_crawler.dart';
|
| -
|
| -const String PACKAGE_PREFIX = 'package:';
|
| -
|
| -/**
|
| - * Dart source file crawler. As it crawls Dart source, it calls
|
| - * [CompilationUnitVisitor] on each file.
|
| - */
|
| -class SourceCrawlerImpl implements SourceCrawler {
|
| - final List<String> packageRoots;
|
| -
|
| - SourceCrawlerImpl(this.packageRoots);
|
| -
|
| - void crawl(String entryPoint, CompilationUnitVisitor visitor) {
|
| - List<String> visited = <String>[];
|
| - List<String> toVisit = <String>[];
|
| - if (entryPoint.startsWith(PACKAGE_PREFIX)) {
|
| - var path = resolvePackagePath(entryPoint);
|
| - if (path == null) {
|
| - throw 'Unable to resolve $entryPoint';
|
| - }
|
| - toVisit.add(path);
|
| - } else {
|
| - toVisit.add(entryPoint);
|
| - }
|
| -
|
| - while (toVisit.isNotEmpty) {
|
| - var currentFile = toVisit.removeAt(0);
|
| - visited.add(currentFile);
|
| - var file = new File(currentFile);
|
| - // Possible source file doesn't exist. For example if it is generated.
|
| - if (!file.existsSync()) continue;
|
| - var currentDir = file.parent.path;
|
| - CompilationUnit cu = parseDartFile(currentFile);
|
| - processImports(cu, currentDir, currentFile, visited, toVisit);
|
| - visitor(cu);
|
| - }
|
| - }
|
| -
|
| - void processImports(CompilationUnit cu, String currentDir,
|
| - String currentFile, List<String> visited,
|
| - List<String> toVisit) {
|
| - cu.directives.forEach((Directive directive) {
|
| - if (directive is ImportDirective || directive is PartDirective) {
|
| - UriBasedDirective import = directive;
|
| - String canonicalFile = canonicalizeImportPath(
|
| - currentDir, currentFile, import.uri.stringValue);
|
| - if (canonicalFile == null) return;
|
| - if (!visited.contains(canonicalFile) &&
|
| - !toVisit.contains(canonicalFile)) {
|
| - toVisit.add(canonicalFile);
|
| - }
|
| - }
|
| - });
|
| - }
|
| -
|
| - String canonicalizeImportPath(String currentDir,
|
| - String currentFile,
|
| - String uri) {
|
| - // ignore core libraries
|
| - if (uri.startsWith('dart:')) {
|
| - return null;
|
| - }
|
| - if (uri.startsWith(PACKAGE_PREFIX)) {
|
| - return resolvePackagePath(uri);
|
| - }
|
| - // relative import.
|
| - if (uri.startsWith('../')) {
|
| - while (uri.startsWith('../')) {
|
| - uri = uri.substring('../'.length);
|
| - currentDir = currentDir.substring(0, currentDir.lastIndexOf('/'));
|
| - }
|
| - }
|
| - return '$currentDir/$uri';
|
| - }
|
| -
|
| - String resolvePackagePath(String uri) {
|
| - for (String packageRoot in packageRoots) {
|
| - var resolvedPath = _packageUriResolver(uri, packageRoot);
|
| - if (new File(resolvedPath).existsSync()) {
|
| - return resolvedPath;
|
| - }
|
| - }
|
| - return null;
|
| - }
|
| -
|
| - String _packageUriResolver(String uri, String packageRoot) {
|
| - var packagePath = uri.substring(PACKAGE_PREFIX.length);
|
| - if (!packageRoot.endsWith('/')) {
|
| - packageRoot = packageRoot + '/';
|
| - }
|
| - return packageRoot + packagePath;
|
| - }
|
| -}
|
|
|