chore(build): compile the .ts broccoli tools.
This avoids having to check in the compiled .js files.
This commit is contained in:
parent
6ce085a21a
commit
2ed7622239
|
@ -1,8 +1,8 @@
|
|||
var Funnel = require('broccoli-funnel');
|
||||
var mergeTrees = require('broccoli-merge-trees');
|
||||
var stew = require('broccoli-stew');
|
||||
var TraceurCompiler = require('./tools/broccoli/traceur');
|
||||
var TypescriptCompiler = require('./tools/broccoli/typescript');
|
||||
var TraceurCompiler = require('./dist/broccoli/traceur');
|
||||
var TypescriptCompiler = require('./dist/broccoli/typescript');
|
||||
var renderLodashTemplate = require('broccoli-lodash');
|
||||
|
||||
var modulesTree = new Funnel(
|
||||
|
|
|
@ -2,7 +2,7 @@ var Funnel = require('broccoli-funnel');
|
|||
var flatten = require('broccoli-flatten');
|
||||
var mergeTrees = require('broccoli-merge-trees');
|
||||
var stew = require('broccoli-stew');
|
||||
var TraceurCompiler = require('./tools/broccoli/traceur');
|
||||
var TraceurCompiler = require('./dist/broccoli/traceur');
|
||||
var replace = require('broccoli-replace');
|
||||
var htmlReplace = require('./tools/broccoli/html-replace');
|
||||
var path = require('path');
|
||||
|
|
|
@ -2,7 +2,7 @@ var Funnel = require('broccoli-funnel');
|
|||
var flatten = require('broccoli-flatten');
|
||||
var mergeTrees = require('broccoli-merge-trees');
|
||||
var stew = require('broccoli-stew');
|
||||
var TraceurCompiler = require('./tools/broccoli/traceur');
|
||||
var TraceurCompiler = require('./dist/broccoli/traceur');
|
||||
var replace = require('broccoli-replace');
|
||||
var htmlReplace = require('./tools/broccoli/html-replace');
|
||||
var path = require('path');
|
||||
|
|
12
gulpfile.js
12
gulpfile.js
|
@ -737,11 +737,17 @@ gulp.task('build.dart', function(done) {
|
|||
);
|
||||
});
|
||||
|
||||
gulp.task('broccoli.js.dev', function() {
|
||||
gulp.task('build.broccoli.tools', function() {
|
||||
var tsResult = gulp.src('tools/broccoli/**/*.ts')
|
||||
.pipe(tsc({ target: 'ES5', module: 'commonjs' }));
|
||||
return tsResult.js.pipe(gulp.dest('dist/broccoli'));
|
||||
});
|
||||
|
||||
gulp.task('broccoli.js.dev', ['build.broccoli.tools'], function() {
|
||||
return broccoliBuild(require('./Brocfile-js_dev.js'), path.join('js', 'dev'));
|
||||
});
|
||||
|
||||
gulp.task('broccoli.js.prod', function() {
|
||||
gulp.task('broccoli.js.prod', ['build.broccoli.tools'], function() {
|
||||
return broccoliBuild(require('./Brocfile-js_prod.js'), path.join('js', 'prod'));
|
||||
});
|
||||
|
||||
|
@ -755,7 +761,7 @@ gulp.task('build.js.dev', function(done) {
|
|||
|
||||
gulp.task('build.js.prod', ['broccoli.js.prod']);
|
||||
|
||||
gulp.task('broccoli.js.cjs', function() {
|
||||
gulp.task('broccoli.js.cjs', ['build.broccoli.tools'], function() {
|
||||
return broccoliBuild(require('./Brocfile-js_cjs.js'), path.join('js', 'cjs'));
|
||||
});
|
||||
gulp.task('build.js.cjs', function(done) {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
"url": "https://github.com/angular/angular.git"
|
||||
},
|
||||
"scripts": {
|
||||
"preinstall": "npm install tsd && tsd update --config modules/angular2/tsd.json",
|
||||
"preinstall": "npm install tsd && tsd update --config modules/angular2/tsd.json && tsd update --config tools/tsd.json",
|
||||
"postinstall": "webdriver-manager update && bower install && gulp pubget.dart",
|
||||
"test": "gulp test.all.js && gulp test.all.dart"
|
||||
},
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
var __extends = this.__extends || function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() { this.constructor = d; }
|
||||
__.prototype = b.prototype;
|
||||
d.prototype = new __();
|
||||
};
|
||||
var fs = require('fs');
|
||||
var fse = require('fs-extra');
|
||||
var path = require('path');
|
||||
var traceur = require('../../transpiler');
|
||||
var walkSync = require('walk-sync');
|
||||
var Writer = require('broccoli-writer');
|
||||
var xtend = require('xtend');
|
||||
var TraceurFilter = (function (_super) {
|
||||
__extends(TraceurFilter, _super);
|
||||
function TraceurFilter(inputTree, destExtension, destSourceMapExtension, options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
this.inputTree = inputTree;
|
||||
this.destExtension = destExtension;
|
||||
this.destSourceMapExtension = destSourceMapExtension;
|
||||
this.options = options;
|
||||
}
|
||||
TraceurFilter.prototype.write = function (readTree, destDir) {
|
||||
var _this = this;
|
||||
return readTree(this.inputTree).then(function (srcDir) {
|
||||
walkSync(srcDir).filter(function (filepath) {
|
||||
var extension = path.extname(filepath).toLowerCase();
|
||||
return extension === '.js' || extension === '.es6' || extension === '.cjs';
|
||||
}).map(function (filepath) {
|
||||
var options = xtend({
|
||||
filename: filepath
|
||||
}, _this.options);
|
||||
var fsOpts = {
|
||||
encoding: 'utf-8'
|
||||
};
|
||||
var sourcecode = fs.readFileSync(path.join(srcDir, filepath), fsOpts);
|
||||
var result = traceur.compile(options, filepath, sourcecode);
|
||||
// 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));
|
||||
var destFilepath = filepath.replace(/\.\w+$/, _this.destExtension);
|
||||
var destFile = path.join(destDir, destFilepath);
|
||||
fse.mkdirsSync(path.dirname(destFile));
|
||||
fs.writeFileSync(destFile, result.js, fsOpts);
|
||||
var destMap = path.join(destDir, mapFilepath);
|
||||
result.sourceMap.file = destFilepath;
|
||||
fs.writeFileSync(destMap, JSON.stringify(result.sourceMap), fsOpts);
|
||||
});
|
||||
});
|
||||
};
|
||||
TraceurFilter.RUNTIME_PATH = traceur.RUNTIME_PATH;
|
||||
return TraceurFilter;
|
||||
})(Writer);
|
||||
module.exports = TraceurFilter;
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -1,16 +1,21 @@
|
|||
var fs = require('fs');
|
||||
var fse = require('fs-extra');
|
||||
var path = require('path');
|
||||
var traceur = require('../../transpiler');
|
||||
/// <reference path="../broccoli-writer.d.ts" />
|
||||
/// <reference path="../../typings/fs-extra/fs-extra.d.ts" />
|
||||
/// <reference path="../../typings/node/node.d.ts" />
|
||||
import fs = require('fs');
|
||||
import fse = require('fs-extra');
|
||||
import path = require('path');
|
||||
var traceur = require('../../../tools/transpiler');
|
||||
var walkSync = require('walk-sync');
|
||||
var Writer = require('broccoli-writer');
|
||||
import Writer = require('broccoli-writer');
|
||||
var xtend = require('xtend');
|
||||
|
||||
class TraceurFilter extends Writer {
|
||||
static RUNTIME_PATH = traceur.RUNTIME_PATH;
|
||||
|
||||
constructor(private inputTree, private destExtension: string,
|
||||
private destSourceMapExtension: string, private options = {}) {}
|
||||
private destSourceMapExtension: string, private options = {}) {
|
||||
super();
|
||||
}
|
||||
|
||||
write(readTree, destDir) {
|
||||
return readTree(this.inputTree)
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
var __extends = this.__extends || function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() { this.constructor = d; }
|
||||
__.prototype = b.prototype;
|
||||
d.prototype = new __();
|
||||
};
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var ts = require('typescript');
|
||||
var walkSync = require('walk-sync');
|
||||
var Writer = require('broccoli-writer');
|
||||
var xtend = require('xtend');
|
||||
var TSCompiler = (function (_super) {
|
||||
__extends(TSCompiler, _super);
|
||||
function TSCompiler(inputTree, options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
_super.call(this, inputTree, options);
|
||||
this.inputTree = inputTree;
|
||||
this.options = options;
|
||||
}
|
||||
TSCompiler.prototype.write = function (readTree, destDir) {
|
||||
var options = xtend({
|
||||
outDir: destDir
|
||||
}, this.options);
|
||||
if (this.options.outDir) {
|
||||
options.outDir = path.resolve(destDir, options.outDir);
|
||||
}
|
||||
if (options.out) {
|
||||
options.out = path.resolve(destDir, options.out);
|
||||
}
|
||||
options.target = ts.ScriptTarget[options.target];
|
||||
return readTree(this.inputTree).then(function (srcDir) {
|
||||
var files = walkSync(srcDir).filter(function (filepath) {
|
||||
return path.extname(filepath).toLowerCase() === '.ts';
|
||||
}).map(function (filepath) {
|
||||
return path.resolve(srcDir, filepath);
|
||||
});
|
||||
if (files.length > 0) {
|
||||
var program = ts.createProgram(files, options);
|
||||
var emitResult = program.emit();
|
||||
var allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
|
||||
var errMsg = '';
|
||||
allDiagnostics.forEach(function (diagnostic) {
|
||||
var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
||||
if (!diagnostic.file) {
|
||||
errMsg += "\n" + message;
|
||||
return;
|
||||
}
|
||||
var _a = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start), line = _a.line, character = _a.character;
|
||||
errMsg += "\n" + diagnostic.file.fileName + " (" + (line + 1) + "," + (character + 1) + "): " + message;
|
||||
});
|
||||
if (emitResult.emitSkipped) {
|
||||
throw new Error(errMsg);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
return TSCompiler;
|
||||
})(Writer);
|
||||
module.exports = TSCompiler;
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -1,12 +1,16 @@
|
|||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var ts = require('typescript');
|
||||
/// <reference path="../broccoli-writer.d.ts" />
|
||||
/// <reference path="../../typings/node/node.d.ts" />
|
||||
/// <reference path="../../../node_modules/typescript/bin/typescript.d.ts" />
|
||||
|
||||
import fs = require('fs');
|
||||
import path = require('path');
|
||||
import ts = require('typescript');
|
||||
var walkSync = require('walk-sync');
|
||||
var Writer = require('broccoli-writer');
|
||||
import Writer = require('broccoli-writer');
|
||||
var xtend = require('xtend');
|
||||
|
||||
class TSCompiler extends Writer {
|
||||
constructor(private inputTree, private options = {}) { super(inputTree, options); }
|
||||
constructor(private inputTree, private options: ts.CompilerOptions = {}) { super(); }
|
||||
|
||||
write(readTree, destDir) {
|
||||
var options: ts.CompilerOptions = xtend({outDir: destDir}, this.options);
|
||||
|
@ -16,7 +20,7 @@ class TSCompiler extends Writer {
|
|||
if (options.out) {
|
||||
options.out = path.resolve(destDir, options.out);
|
||||
}
|
||||
options.target = ts.ScriptTarget[options.target];
|
||||
options.target = (<any>ts).ScriptTarget[options.target];
|
||||
return readTree(this.inputTree)
|
||||
.then(srcDir => {
|
||||
var files = walkSync(srcDir)
|
||||
|
|
Loading…
Reference in New Issue