| Index: web_components/lib/build/html_import_annotation_recorder.dart
|
| diff --git a/web_components/lib/build/html_import_annotation_recorder.dart b/web_components/lib/build/html_import_annotation_recorder.dart
|
| deleted file mode 100644
|
| index ba5d2abad5a99d35db6753f174c3bfba8e45399a..0000000000000000000000000000000000000000
|
| --- a/web_components/lib/build/html_import_annotation_recorder.dart
|
| +++ /dev/null
|
| @@ -1,100 +0,0 @@
|
| -// Copyright (c) 2015, 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.html_import_recorder_inliner;
|
| -
|
| -import 'package:analyzer/analyzer.dart';
|
| -import 'package:analyzer/src/generated/ast.dart';
|
| -import 'package:analyzer/src/generated/element.dart';
|
| -import 'package:barback/barback.dart';
|
| -import 'package:initialize/transformer.dart';
|
| -import 'package:path/path.dart' as path;
|
| -import '../src/normalize_path.dart';
|
| -
|
| -/// [InitializerPlugin] for @HtmlImport annotations. This records all paths
|
| -/// seen, normalizes them relative to the entry point, and records the values in
|
| -/// [importPaths].
|
| -///
|
| -/// Note: This does nothing with the paths on its own, a separate step needs to
|
| -/// add the imports to the entry point document.
|
| -class HtmlImportAnnotationRecorder implements InitializerPlugin {
|
| - /// All the normalized import paths that were seen.
|
| - final Set<String> importPaths = new Set<String>();
|
| -
|
| - TransformLogger _logger;
|
| -
|
| - HtmlImportAnnotationRecorder();
|
| -
|
| - /// Applies to anything named `HtmlImport` which annotates a library.
|
| - bool shouldApply(InitializerPluginData pluginData) {
|
| - var annotationElement = pluginData.initializer.annotationNode.element;
|
| - var logger = pluginData.logger;
|
| - DartType type;
|
| - if (annotationElement is ConstructorElement) {
|
| - type = annotationElement.returnType;
|
| - } else if (annotationElement is PropertyAccessorElement) {
|
| - type = annotationElement.variable.propagatedType;
|
| - if (type == null) {
|
| - type = pluginData.resolver.evaluateConstant(annotationElement.library,
|
| - pluginData.initializer.annotationNode.name).value.type;
|
| - }
|
| - } else {
|
| - logger.error('Unsupported annotation type. Only constructors and '
|
| - 'properties are supported as initializers.');
|
| - return false;
|
| - }
|
| - if (type.name != 'HtmlImport') return false;
|
| - if (pluginData.initializer.targetElement is! LibraryElement) {
|
| - logger.error('Invalid HtmlImport annotation on non-library element.');
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - /// Records the normalized url and returns [null] so that no [InitEntry] will
|
| - /// be created.
|
| - String apply(InitializerPluginData pluginData) {
|
| - var bootstrapId = pluginData.bootstrapId;
|
| - var logger = pluginData.logger;
|
| - var annotation = pluginData.initializer.annotationNode;
|
| - var annotationElement = pluginData.initializer.annotationElement;
|
| - var element = pluginData.initializer.targetElement as LibraryElement;
|
| - var resolver = pluginData.resolver;
|
| - var libraryDirective =
|
| - pluginData.initializer.targetNode.parent.parent as LibraryDirective;
|
| -
|
| - var originalImportPath;
|
| - if (annotationElement.element is PropertyAccessorElement) {
|
| - originalImportPath = resolver.evaluateConstant(
|
| - element.library, annotation.name).value.fields[
|
| - 'filePath'].stringValue;
|
| - } else {
|
| - assert(annotationElement.element is ConstructorElement);
|
| - originalImportPath = resolver.evaluateConstant(element.library,
|
| - annotation.arguments.arguments.first).value.stringValue;
|
| - }
|
| -
|
| - var libPath;
|
| - var segments = element.source.uri.pathSegments;
|
| - var package = segments[0];
|
| - if (bootstrapId.package == package &&
|
| - bootstrapId.path.startsWith('${segments[1]}/')) {
|
| - package = null;
|
| - libPath = path.url.relative(
|
| - path.url.joinAll(segments.getRange(1, segments.length)),
|
| - from: path.url.dirname(path.url.join(bootstrapId.path)));
|
| - } else if (segments[1] == 'lib') {
|
| - libPath = path.url.joinAll(segments.getRange(2, segments.length));
|
| - } else {
|
| - logger.error('Unable to import `${element.source.uri.path}` from '
|
| - '${bootstrapId}.');
|
| - return null;
|
| - }
|
| -
|
| - importPaths
|
| - .add(normalizeHtmlImportPath(originalImportPath, package, libPath));
|
| -
|
| - // Don't emit an InitEntry.
|
| - return null;
|
| - }
|
| -}
|
|
|