Index: web_components/lib/build/web_components.dart |
diff --git a/web_components/lib/build/web_components.dart b/web_components/lib/build/web_components.dart |
deleted file mode 100644 |
index 4a71606096176597636eae6c578e1e1d4c44c480..0000000000000000000000000000000000000000 |
--- a/web_components/lib/build/web_components.dart |
+++ /dev/null |
@@ -1,97 +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.build.web_components; |
- |
-import 'dart:async'; |
-import 'package:barback/barback.dart'; |
-import 'package:code_transformers/assets.dart'; |
-import 'package:code_transformers/messages/build_logger.dart'; |
-import 'package:code_transformers/resolver.dart'; |
-import 'package:code_transformers/src/dart_sdk.dart' as dart_sdk; |
-import 'package:html/dom.dart' as dom; |
-import 'package:initialize/transformer.dart' show generateBootstrapFile; |
-import 'package:initialize/build/initializer_plugin.dart'; |
-import 'package:path/path.dart' as path; |
-import 'package:web_components/transformer.dart'; |
-import 'common.dart'; |
- |
-/// Public method that can be used inside any [Transformer] which already has a |
-/// [Resolver] and [Transform] to generate a bootstrap file for the |
-/// web_components package. |
-Asset generateWebComponentsBootstrap(Resolver resolver, Transform transform, |
- dom.Document document, AssetId scriptId, AssetId newScriptId, |
- {List<InitializerPlugin> extraPlugins: const []}) { |
- var htmlImportRecorder = new HtmlImportAnnotationRecorder(); |
- var plugins = [htmlImportRecorder]..addAll(extraPlugins); |
- |
- // Bootstrap the application using the `initialize` package and our |
- // plugins. |
- var initializeBootstrap = generateBootstrapFile( |
- resolver, transform, scriptId, newScriptId, |
- errorIfNotFound: false, plugins: plugins); |
- |
- // Add all seen imports to the document, before the first dart script tag if |
- // it exists. |
- var dartScript = |
- document.head.querySelector('script[type="application/dart"]'); |
- for (var importPath in htmlImportRecorder.importPaths) { |
- var import = new dom.Element.tag('link') |
- ..attributes = {'rel': 'import', 'href': importPath,}; |
- document.head.insertBefore(import, dartScript); |
- } |
- |
- return initializeBootstrap; |
-} |
- |
-/// A [Transformer] which runs the `initialize` transformer with |
-/// some special plugins and also inlines the html imports. |
-class WebComponentsTransformer extends Transformer { |
- final Resolvers _resolvers; |
- TransformOptions options; |
- |
- WebComponentsTransformer(this.options) |
- : _resolvers = new Resolvers.fromMock(dart_sdk.mockSdkSources); |
- |
- bool isPrimary(AssetId id) { |
- if (options.entryPoints != null) { |
- return options.entryPoints.contains(id.path); |
- } |
- if (id.path == 'web/index.bootstrap.dart') return true; |
- // If no entry point is supplied, then any html file under web/ or test/ is |
- // an entry point. |
- return (id.path.startsWith('web/') || id.path.startsWith('test/')) && |
- id.path.endsWith('.html'); |
- } |
- |
- Future apply(Transform transform) { |
- var logger = new BuildLogger(transform); |
- var primaryInput = transform.primaryInput; |
- return primaryInput.readAsString().then((html) { |
- // Find the dart script in the page. |
- var doc = parseHtml(html, primaryInput.id.path); |
- var mainScriptTag = doc.querySelector('script[type="$dartType"]'); |
- var scriptId = uriToAssetId(primaryInput.id, |
- mainScriptTag.attributes['src'], logger, mainScriptTag.sourceSpan); |
- |
- return _resolvers.get(transform, [scriptId]).then((resolver) { |
- var newScriptId = new AssetId(scriptId.package, |
- '${path.url.withoutExtension(scriptId.path)}.initialize.dart'); |
- |
- var bootstrap = generateWebComponentsBootstrap( |
- resolver, transform, doc, scriptId, newScriptId); |
- |
- // Swap out the main script tag for the bootstrap version. |
- mainScriptTag.attributes['src'] = path.url.relative(bootstrap.id.path, |
- from: path.url.dirname(primaryInput.id.path)); |
- |
- // Output the new document and bootstrap file. |
- transform |
- .addOutput(new Asset.fromString(primaryInput.id, doc.outerHtml)); |
- transform.addOutput(bootstrap); |
- }); |
- }); |
- } |
-} |