| Index: web_components/lib/build/import_crawler.dart
|
| diff --git a/web_components/lib/build/import_crawler.dart b/web_components/lib/build/import_crawler.dart
|
| deleted file mode 100644
|
| index 0053a18d40b5ce2d61a4cb8115d48d1faeb55ca0..0000000000000000000000000000000000000000
|
| --- a/web_components/lib/build/import_crawler.dart
|
| +++ /dev/null
|
| @@ -1,90 +0,0 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -library web_components.build.import_crawler;
|
| -
|
| -import 'dart:async';
|
| -import 'dart:collection' show LinkedHashMap;
|
| -import 'package:code_transformers/assets.dart';
|
| -import 'package:code_transformers/messages/build_logger.dart';
|
| -import 'package:barback/barback.dart';
|
| -import 'package:html/dom.dart' show Document, Element;
|
| -import 'common.dart';
|
| -import 'messages.dart';
|
| -
|
| -/// Information about an html import found in a document.
|
| -class ImportData {
|
| - /// The [AssetId] where the html import appeared.
|
| - final AssetId fromId;
|
| -
|
| - /// The [Document] where the html import appeared.
|
| - final Document document;
|
| -
|
| - /// The html import element itself.
|
| - final Element element;
|
| -
|
| - ImportData(this.document, this.element, {this.fromId});
|
| -}
|
| -
|
| -/// A crawler for html imports.
|
| -class ImportCrawler {
|
| - // Can be either an AggregateTransform or Transform.
|
| - final _transform;
|
| - final BuildLogger _logger;
|
| - final AssetId _primaryInputId;
|
| -
|
| - // Optional parsed document for the primary id if available.
|
| - final Document _primaryDocument;
|
| -
|
| - ImportCrawler(this._transform, this._primaryInputId, this._logger,
|
| - {Document primaryDocument})
|
| - : _primaryDocument = primaryDocument;
|
| -
|
| - /// Returns a post-ordered map of [AssetId]'s to [ImportData]. The [AssetId]'s
|
| - /// represent an asset which was discovered via an html import, and the
|
| - /// [ImportData] represents the [Document] where it was discovered and the
|
| - /// html import [Element] itself.
|
| - Future<LinkedHashMap<AssetId, ImportData>> crawlImports() {
|
| - var documents = new LinkedHashMap<AssetId, ImportData>();
|
| - var seen = new Set<AssetId>();
|
| -
|
| - Future doCrawl(AssetId assetId,
|
| - {Element import, Document document, AssetId from}) {
|
| - if (seen.contains(assetId)) return null;
|
| - seen.add(assetId);
|
| -
|
| - Future crawlImports(Document document) {
|
| - var imports = document
|
| - .querySelectorAll('link[rel="import"]')
|
| - .where((import) => import.attributes['type'] != 'css');
|
| - var done = Future.forEach(imports,
|
| - (i) => doCrawl(_importId(assetId, i), import: i, from: assetId));
|
| -
|
| - // Add this document after its dependencies.
|
| - return done.then((_) {
|
| - documents[assetId] = new ImportData(document, import, fromId: from);
|
| - });
|
| - }
|
| -
|
| - if (document != null) {
|
| - return crawlImports(document);
|
| - } else {
|
| - return _transform.readInputAsString(assetId).then((html) {
|
| - return crawlImports(parseHtml(html, assetId.path));
|
| - }).catchError((error) {
|
| - var span;
|
| - if (import != null) span = import.sourceSpan;
|
| - _logger.error(inlineImportFail.create({'error': error}), span: span);
|
| - });
|
| - }
|
| - }
|
| -
|
| - return doCrawl(_primaryInputId, document: _primaryDocument)
|
| - .then((_) => documents);
|
| - }
|
| -
|
| - AssetId _importId(AssetId source, Element import) {
|
| - var url = import.attributes['href'];
|
| - return uriToAssetId(source, url, _transform.logger, import.sourceSpan);
|
| - }
|
| -}
|
|
|