Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: sdk/lib/_internal/pub/lib/src/barback/transformer_config.dart

Issue 363543003: Don't load dependencies' useless transformers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library pub.barback.transformer_config; 5 library pub.barback.transformer_config;
6 6
7 import 'package:path/path.dart' as p;
7 import 'package:source_maps/source_maps.dart'; 8 import 'package:source_maps/source_maps.dart';
8 import 'package:yaml/yaml.dart'; 9 import 'package:yaml/yaml.dart';
9 10
10 import 'transformer_id.dart'; 11 import 'transformer_id.dart';
11 12
12 /// The configuration for a transformer. 13 /// The configuration for a transformer.
13 /// 14 ///
14 /// This corresponds to the transformers listed in a pubspec, which have both an 15 /// This corresponds to the transformers listed in a pubspec, which have both an
15 /// [id] indicating the location of the transformer and configuration specific 16 /// [id] indicating the location of the transformer and configuration specific
16 /// to that use of the transformer. 17 /// to that use of the transformer.
(...skipping 29 matching lines...) Expand all
46 /// 47 ///
47 /// This is processed after [includes]. If a transformer has both includes 48 /// This is processed after [includes]. If a transformer has both includes
48 /// and excludes, then the set of included assets is determined and assets 49 /// and excludes, then the set of included assets is determined and assets
49 /// are excluded from that resulting set. 50 /// are excluded from that resulting set.
50 final Set<String> excludes; 51 final Set<String> excludes;
51 52
52 /// Returns whether this config excludes certain asset ids from being 53 /// Returns whether this config excludes certain asset ids from being
53 /// processed. 54 /// processed.
54 bool get hasExclusions => includes != null || excludes != null; 55 bool get hasExclusions => includes != null || excludes != null;
55 56
57 /// Returns whether this transformer might transform a file that's visible to
58 /// the package's dependers.
59 bool get canTransformPublicFiles {
60 if (includes == null) return true;
61 return includes.any((path) =>
62 p.url.isWithin('lib', path) || p.url.isWithin('bin', path));
63 }
64
56 /// Parses [identifier] as a [TransformerId] with [configuration]. 65 /// Parses [identifier] as a [TransformerId] with [configuration].
57 /// 66 ///
58 /// [identifierSpan] is the source span for [identifier]. 67 /// [identifierSpan] is the source span for [identifier].
59 factory TransformerConfig.parse(String identifier, Span identifierSpan, 68 factory TransformerConfig.parse(String identifier, Span identifierSpan,
60 YamlMap configuration) => 69 YamlMap configuration) =>
61 new TransformerConfig(new TransformerId.parse(identifier, identifierSpan), 70 new TransformerConfig(new TransformerId.parse(identifier, identifierSpan),
62 configuration); 71 configuration);
63 72
64 factory TransformerConfig(TransformerId id, YamlMap configurationNode) { 73 factory TransformerConfig(TransformerId id, YamlMap configurationNode) {
65 parseField(key) { 74 parseField(key) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 // TODO(rnystrom): Support globs in addition to paths. See #17093. 136 // TODO(rnystrom): Support globs in addition to paths. See #17093.
128 if (excludes != null) { 137 if (excludes != null) {
129 // If there are any excludes, it must not match any of them. 138 // If there are any excludes, it must not match any of them.
130 if (excludes.contains(pathWithinPackage)) return false; 139 if (excludes.contains(pathWithinPackage)) return false;
131 } 140 }
132 141
133 // If there are any includes, it must match one of them. 142 // If there are any includes, it must match one of them.
134 return includes == null || includes.contains(pathWithinPackage); 143 return includes == null || includes.contains(pathWithinPackage);
135 } 144 }
136 } 145 }
OLDNEW
« no previous file with comments | « no previous file | sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698