OLD | NEW |
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 /** Transfomer that extracts inlined script code into separate assets. */ | 5 /** Transfomer that extracts inlined script code into separate assets. */ |
6 library polymer.src.build.code_extractor; | 6 library polymer.src.build.code_extractor; |
7 | 7 |
8 import 'dart:async'; | 8 import 'dart:async'; |
9 | 9 |
10 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 // Remove empty tags | 45 // Remove empty tags |
46 if (tag.nodes.length == 0) { | 46 if (tag.nodes.length == 0) { |
47 tag.remove(); | 47 tag.remove(); |
48 continue; | 48 continue; |
49 } | 49 } |
50 | 50 |
51 var filename = path.url.basename(id.path); | 51 var filename = path.url.basename(id.path); |
52 // TODO(sigmund): ensure this filename is unique (dartbug.com/12618). | 52 // TODO(sigmund): ensure this filename is unique (dartbug.com/12618). |
53 tag.attributes['src'] = '$filename.$count.dart'; | 53 tag.attributes['src'] = '$filename.$count.dart'; |
54 var textContent = tag.nodes.first; | 54 var textContent = tag.nodes.first; |
55 var code = textContent.value; | 55 var code = textContent.text; |
56 var newId = id.addExtension('.$count.dart'); | 56 var newId = id.addExtension('.$count.dart'); |
57 if (!_hasLibraryDirective(code)) { | 57 if (!_hasLibraryDirective(code)) { |
58 var libname = path.withoutExtension(newId.path) | 58 var libname = path.withoutExtension(newId.path) |
59 .replaceAll(new RegExp('[-./]'), '_'); | 59 .replaceAll(new RegExp('[-./]'), '_'); |
60 code = "library $libname;\n$code"; | 60 code = "library $libname;\n$code"; |
61 } | 61 } |
62 transform.addOutput(new Asset.fromString(newId, code)); | 62 transform.addOutput(new Asset.fromString(newId, code)); |
63 textContent.remove(); | 63 textContent.remove(); |
64 count++; | 64 count++; |
65 } | 65 } |
(...skipping 10 matching lines...) Expand all Loading... |
76 var scanner = new Scanner(null, reader, errorListener); | 76 var scanner = new Scanner(null, reader, errorListener); |
77 var token = scanner.tokenize(); | 77 var token = scanner.tokenize(); |
78 var unit = new Parser(null, errorListener).parseCompilationUnit(token); | 78 var unit = new Parser(null, errorListener).parseCompilationUnit(token); |
79 return unit.directives.any((d) => d is LibraryDirective); | 79 return unit.directives.any((d) => d is LibraryDirective); |
80 } | 80 } |
81 | 81 |
82 class _ErrorCollector extends AnalysisErrorListener { | 82 class _ErrorCollector extends AnalysisErrorListener { |
83 final errors = <AnalysisError>[]; | 83 final errors = <AnalysisError>[]; |
84 onError(error) => errors.add(error); | 84 onError(error) => errors.add(error); |
85 } | 85 } |
OLD | NEW |