Index: web_components/lib/transformer.dart |
diff --git a/web_components/lib/transformer.dart b/web_components/lib/transformer.dart |
deleted file mode 100644 |
index fe0ca34a7c73f2a5f4de2bf7089fada5a1c37cfd..0000000000000000000000000000000000000000 |
--- a/web_components/lib/transformer.dart |
+++ /dev/null |
@@ -1,122 +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. |
- |
-/// Transformer used for pub serve and pub build |
-library web_components.transformer; |
- |
-import 'package:barback/barback.dart'; |
- |
-export 'build/html_import_annotation_recorder.dart'; |
-import 'build/import_inliner.dart'; |
-export 'build/import_inliner.dart'; |
-import 'build/script_compactor.dart'; |
-export 'build/script_compactor.dart'; |
-import 'build/test_compatibility.dart'; |
-export 'build/test_compatibility.dart'; |
-import 'build/web_components.dart'; |
-export 'build/web_components.dart'; |
- |
-/// The Web Components transformer group, which internally runs several phases |
-/// that: |
-/// * Extract inlined script tags into separate files. |
-/// * Extract script tags from entry points and all html imports and add them |
-/// as dart imports in a new *.bootstrap.dart file. |
-/// * Run the `initialize` transformer. |
-/// * Inlines @HtmlImport annotations as html imports into the entry point. |
-/// * Inline imported html files and remove all but the main dart script tag. |
-/// |
-/// At the end of these phases, this tranformer produces a single entrypoint |
-/// HTML file with a single Dart script that can later be compiled with dart2js. |
-class WebComponentsTransformerGroup implements TransformerGroup { |
- final Iterable<Iterable> phases; |
- |
- WebComponentsTransformerGroup(TransformOptions options) |
- : phases = createDeployPhases(options); |
- |
- WebComponentsTransformerGroup.asPlugin(BarbackSettings settings) |
- : this(_parseSettings(settings)); |
-} |
- |
-/// Create deploy phases for web_components. |
-List<List<Transformer>> createDeployPhases(TransformOptions options, |
- {String sdkDir}) { |
- var phases = []; |
- |
- /// Must happen first, temporarily rewrites <link rel="x-dart-test"> tags to |
- /// <script type="application/dart" _was_test></script> tags. |
- phases.add([new RewriteXDartTestToScript(options.entryPoints)]); |
- |
- // Must happen before the WebComponents transformer, grabs all dart scripts |
- // and combines them into one bootstrap file. |
- phases.add([new ScriptCompactorTransformer(options.entryPoints)]); |
- |
- // Runs the customized version of the `initialize` transformer and inlines |
- // @HtmlImport annotations. |
- phases.add([new WebComponentsTransformer(options)]); |
- |
- // Inlines all html imports and removes all dart script tags in the process. |
- phases.add([new ImportInlinerTransformer(options.entryPoints)]); |
- |
- /// Must happen last, rewrites |
- /// <script type="application/dart" _was_test></script> tags to |
- /// <link rel="x-dart-test"> tags. |
- phases.add([new RewriteScriptToXDartTest(options.entryPoints)]); |
- return phases; |
-} |
- |
-/// Options used by web_components transformers |
-class TransformOptions { |
- /// List of entrypoints paths. The paths are relative to the package root and |
- /// are represented using posix style, which matches the representation used |
- /// in asset ids in barback. If null, any html file under 'web/' or 'test/' is |
- /// considered an entry point. |
- final List<String> entryPoints; |
- |
- /// Current Barback mode. |
- final bool releaseMode; |
- |
- TransformOptions(this.entryPoints, this.releaseMode); |
- |
- /// Whether an asset with [id] is an entry point HTML file. |
- bool isHtmlEntryPoint(AssetId id) { |
- if (id.extension != '.html') return false; |
- |
- // Note: [id.path] is a relative path from the root of a package. |
- if (entryPoints == null) { |
- return id.path.startsWith('web/') || id.path.startsWith('test/'); |
- } |
- |
- return entryPoints.contains(id.path); |
- } |
-} |
- |
-// Builds TransformOptions given some BarbackSettings |
-TransformOptions _parseSettings(BarbackSettings settings) { |
- var args = settings.configuration; |
- bool releaseMode = settings.mode == BarbackMode.RELEASE; |
- var entryPoints = readFileList(args['entry_points']); |
- return new TransformOptions(entryPoints, releaseMode); |
-} |
- |
-/// Reads a file list value from the [BarbackSettings] |
-/// TODO(jakemac): This should also move to code_transformers. |
-readFileList(value) { |
- if (value == null) return null; |
- var files = []; |
- bool error; |
- if (value is List) { |
- files = value; |
- error = value.any((e) => e is! String); |
- } else if (value is String) { |
- files = [value]; |
- error = false; |
- } else { |
- error = true; |
- } |
- if (error) { |
- print('Bad value for "entry_points" in the web_components transformer. ' |
- 'Expected either one String or a list of Strings.'); |
- } |
- return files; |
-} |