Skip to content

Commit 43f4374

Browse files
committed
feature(build): Include ts2dart transpile step in the Angular build.
This only transpiles one package to start with: di/ It ensures that package transpiles without errors, so no one can introduce non-TypeScript syntax. Next step is to widen the task inputs to cover additional packages. See design doc for the migration: https://docs.google.com/document/d/14RJLhu6uuv7NchFkAb6PKzOOO0L7l3Z507eKWzkEUhQ/edit A convenience task 'ts2dart' is added for developing ts2dart, and it runs all of the angular code through the transpiler to collect errors.
1 parent 81e6d13 commit 43f4374

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

gulpfile.js

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var minimist = require('minimist');
2525
var es5build = require('./tools/build/es5build');
2626
var runServerDartTests = require('./tools/build/run_server_dart_tests');
2727
var transformCJSTests = require('./tools/build/transformCJSTests');
28+
var ts2dart = require('gulp-ts2dart');
2829
var util = require('./tools/build/util');
2930

3031
// Note: when DART_SDK is not found, all gulp tasks ending with `.dart` will be skipped.
@@ -117,7 +118,9 @@ var CONFIG = {
117118
transpile: {
118119
src: {
119120
js: ['modules/**/*.js', 'modules/**/*.es6'],
120-
dart: ['modules/**/*.js']
121+
dart: ['modules/**/*.js'],
122+
// Migrating to TypeScript, one package at a time. See http://goo.gl/RzzVxn
123+
ts2dart: ['modules/angular2/src/di/*.js', 'modules/angular2/test/di/*.js', 'modules/angular2/src/test_lib/*.js']
121124
},
122125
options: {
123126
js: {
@@ -347,6 +350,27 @@ gulp.task('build/transpile.dart', transpile(gulp, gulpPlugins, {
347350
srcFolderInsertion: CONFIG.srcFolderInsertion.dart
348351
}));
349352

353+
gulp.task('build/transpile.dart.ts2dart', function() {
354+
return gulp.src(CONFIG.transpile.src.ts2dart)
355+
.pipe(ts2dart.transpile())
356+
.pipe(gulp.dest('dist/dart.ts2dart'))
357+
});
358+
gulp.task('build/format.dart.ts2dart', rundartpackage(gulp, gulpPlugins, {
359+
pub: DART_SDK.PUB,
360+
packageName: CONFIG.formatDart.packageName,
361+
args: ['dart_style:format', '-w', 'dist/dart.ts2dart']
362+
}));
363+
364+
// Temporary tasks for development on ts2dart. Will likely fail.
365+
gulp.task('build/transpile.dart.ts2dart.all', function() {
366+
return gulp.src(CONFIG.transpile.src.dart)
367+
.pipe(ts2dart.transpile())
368+
.pipe(gulp.dest('dist/dart.ts2dart'));
369+
});
370+
gulp.task('ts2dart', function(done) {
371+
runSequence('build/transpile.dart.ts2dart.all', 'build/format.dart.ts2dart', done);
372+
});
373+
350374
// ------------
351375
// html
352376

@@ -690,9 +714,9 @@ gulp.task('tests/transform.dart', function() {
690714
// Builds all Dart packages, but does not compile them
691715
gulp.task('build/packages.dart', function(done) {
692716
runSequence(
693-
['build/transpile.dart', 'build/html.dart', 'build/copy.dart', 'build/multicopy.dart'],
717+
['build/transpile.dart.ts2dart', 'build/transpile.dart', 'build/html.dart', 'build/copy.dart', 'build/multicopy.dart'],
694718
'tests/transform.dart',
695-
'build/format.dart',
719+
['build/format.dart.ts2dart', 'build/format.dart'],
696720
'build/pubspec.dart',
697721
done
698722
);

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"gulp-sourcemaps": "1.3.*",
5555
"gulp-template": "^3.0.0",
5656
"gulp-traceur": "0.16.*",
57+
"gulp-ts2dart": "^1.0.0",
5758
"gulp-webserver": "^0.8.7",
5859
"js-yaml": "^3.2.7",
5960
"karma": "^0.12.23",

0 commit comments

Comments
 (0)