diff --git a/Brocfile-dart.js b/Brocfile-dart.js index 3bc9d4d33a..f2f220b5aa 100644 --- a/Brocfile-dart.js +++ b/Brocfile-dart.js @@ -6,9 +6,9 @@ var path = require('path'); // Transpile everything in 'modules'... var modulesTree = new Funnel('modules', { - include: ['**/*.js', '**/*.ts', '**/*.dart'], // .dart file available means don't translate. + include: ['**/*.js', '**/*.ts', '**/*.dart'], // .dart file available means don't translate. exclude: ['rtts_assert/**/*'], // ... except for the rtts_asserts (don't apply to Dart). - destDir: '/', // Remove the 'modules' prefix. + destDir: '/', // Remove the 'modules' prefix. }); // Transpile to dart. diff --git a/gulpfile.js b/gulpfile.js index e0463d0e19..8801d1908b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -504,9 +504,22 @@ gulp.task('build/format.dart', rundartpackage(gulp, gulpPlugins, { args: CONFIG.formatDart.args })); +function doCheckFormat() { + return gulp.src(['Brocfile*.js', 'modules/**/*.ts', 'tools/**/*.ts', '!**/typings/**/*.d.ts']) + .pipe(format.checkFormat('file')); +} + gulp.task('check-format', function() { - return gulp.src(['Brocfile*.js', 'modules/**/*.ts', '!**/typings/**/*.d.ts']) - .pipe(format.checkFormat('file')); + return doCheckFormat().on('warning', function(e) { + console.log("NOTE: this will be promoted to an ERROR in the continuous build"); + }); +}); + +gulp.task('enforce-format', function() { + return doCheckFormat().on('warning', function(e) { + console.log("ERROR: Some files need formatting"); + process.exit(1); + }); }); // ------------ @@ -752,6 +765,7 @@ gulp.task('build.js.dev', function(done) { runSequence( 'broccoli.js.dev', 'build/checkCircularDependencies', + 'check-format', done ); }); diff --git a/scripts/ci/build_js.sh b/scripts/ci/build_js.sh index 5198cc870d..63c14b1a2e 100755 --- a/scripts/ci/build_js.sh +++ b/scripts/ci/build_js.sh @@ -8,4 +8,4 @@ SCRIPT_DIR=$(dirname $0) source $SCRIPT_DIR/env_dart.sh cd $SCRIPT_DIR/../.. -./node_modules/.bin/gulp build.js docs +./node_modules/.bin/gulp enforce-format build.js docs diff --git a/tools/broccoli/broccoli-ts2dart.ts b/tools/broccoli/broccoli-ts2dart.ts index 70fed135d2..28e098deaa 100644 --- a/tools/broccoli/broccoli-ts2dart.ts +++ b/tools/broccoli/broccoli-ts2dart.ts @@ -9,7 +9,7 @@ import path = require('path'); import ts2dart = require('ts2dart'); type Set = { - [s:string]: boolean + [s: string]: boolean }; class TypeScriptToDartTranspiler extends Writer { diff --git a/tools/broccoli/broccoli-writer.d.ts b/tools/broccoli/broccoli-writer.d.ts index 1505e4745d..ee52f3437f 100644 --- a/tools/broccoli/broccoli-writer.d.ts +++ b/tools/broccoli/broccoli-writer.d.ts @@ -1,8 +1,6 @@ /// -declare class Writer { - write(readTree: (tree) => Promise, destDir: string): Promise; -} +declare class Writer { write(readTree: (tree) => Promise, destDir: string): Promise; } export = Writer; diff --git a/tools/broccoli/traceur/index.ts b/tools/broccoli/traceur/index.ts index 5992fb21ed..1b2764054c 100644 --- a/tools/broccoli/traceur/index.ts +++ b/tools/broccoli/traceur/index.ts @@ -37,7 +37,7 @@ class TraceurFilter extends Writer { // TODO: we should fix the sourceMappingURL written by Traceur instead of overriding // (but we might switch to typescript first) var mapFilepath = filepath.replace(/\.\w+$/, '') + this.destSourceMapExtension; - result.js = result.js + `\n//# sourceMappingURL=./${path.basename(mapFilepath)}`; + result.js = result.js + '\n //# sourceMappingURL=./' + path.basename(mapFilepath); var destFilepath = filepath.replace(/\.\w+$/, this.destExtension); var destFile = path.join(destDir, destFilepath); diff --git a/tools/broccoli/ts2dart.d.ts b/tools/broccoli/ts2dart.d.ts index 5b93f4cc60..3dfc6c2778 100644 --- a/tools/broccoli/ts2dart.d.ts +++ b/tools/broccoli/ts2dart.d.ts @@ -8,7 +8,7 @@ export interface TranspilerOptions { basePath?: string; } -export class Transpiler{ +export class Transpiler { constructor(options: TranspilerOptions); transpile(fileNames: string[], outdir?: string); } diff --git a/tools/broccoli/typescript/index.ts b/tools/broccoli/typescript/index.ts index bb01e178ee..fb2579f09f 100644 --- a/tools/broccoli/typescript/index.ts +++ b/tools/broccoli/typescript/index.ts @@ -22,34 +22,34 @@ class TSCompiler extends Writer { } options.target = (ts).ScriptTarget[options.target]; return readTree(this.inputTree) - .then(srcDir => { - var files = walkSync(srcDir) - .filter(filepath => path.extname(filepath).toLowerCase() === '.ts') - .map(filepath => path.resolve(srcDir, filepath)); + .then(srcDir => { + var files = walkSync(srcDir) + .filter(filepath => path.extname(filepath).toLowerCase() === '.ts') + .map(filepath => path.resolve(srcDir, filepath)); - if (files.length > 0) { - var program = ts.createProgram(files, options); - var emitResult = program.emit(); + if (files.length > 0) { + var program = ts.createProgram(files, options); + var emitResult = program.emit(); - var allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics); + var allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics); - var errMsg = ''; - allDiagnostics.forEach(diagnostic => { - var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); - if (!diagnostic.file) { - errMsg += `\n${message}`; - return; + var errMsg = ''; + allDiagnostics.forEach(diagnostic => { + var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); + if (!diagnostic.file) { + errMsg += `\n${message}`; + return; + } + var {line, character} = + diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); + errMsg += `\n${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`; + }); + + if (emitResult.emitSkipped) { + throw new Error(errMsg); } - var {line, character} = - diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); - errMsg += `\n${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`; - }); - - if (emitResult.emitSkipped) { - throw new Error(errMsg); } - } - }); + }); } } module.exports = TSCompiler;