Skip to content

Commit

Permalink
Merge branch 'master' of github.com:aurelia/ui-virtualization
Browse files Browse the repository at this point in the history
  • Loading branch information
martingust committed Mar 16, 2016
2 parents c4fff68 + 99b91ad commit dbaccb4
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 35 deletions.
71 changes: 52 additions & 19 deletions build/babel-options.js
@@ -1,20 +1,53 @@
module.exports = {
filename: '',
filenameRelative: '',
modules: '',
sourceMap: true,
sourceMapName: '',
sourceRoot: '',
moduleRoot: '',
moduleIds: false,
experimental: false,
comments: false,
compact: false,
code:true,
stage:2,
loose: "all",
optional: [
"es7.decorators",
"es7.classProperties"
]
var path = require('path');
var paths = require('./paths');

exports.base = function() {
return {
filename: '',
filenameRelative: '',
sourceMap: true,
sourceRoot: '',
moduleRoot: path.resolve('src').replace(/\\/g, '/'),
moduleIds: false,
comments: false,
compact: false,
code:true,
presets: [ 'es2015-loose', 'stage-1'],
plugins: [
'syntax-flow',
'transform-decorators-legacy',
['babel-dts-generator', {
packageName: paths.packageName,
typings: '',
suppressModulePath: true,
suppressComments: false,
memberOutputFilter: /^_.*/
}],
'transform-flow-strip-types'
]
};
}

exports.commonjs = function() {
var options = exports.base();
options.plugins.push('transform-es2015-modules-commonjs');
return options;
};

exports.amd = function() {
var options = exports.base();
options.plugins.push('transform-es2015-modules-amd');
return options;
};

exports.system = function() {
var options = exports.base();
options.plugins.push('transform-es2015-modules-systemjs');
return options;
};

exports.es2015 = function() {
var options = exports.base();
options.presets = ['stage-1']
return options;
};
68 changes: 61 additions & 7 deletions build/tasks/build.js
Expand Up @@ -4,42 +4,96 @@ var to5 = require('gulp-babel');
var paths = require('../paths');
var compilerOptions = require('../babel-options');
var assign = Object.assign || require('object.assign');
var through2 = require('through2');
var concat = require('gulp-concat');
var insert = require('gulp-insert');
var rename = require('gulp-rename');
var tools = require('aurelia-tools');
var gulpIgnore = require('gulp-ignore');

var jsName = paths.packageName + '.js';

function removeDTSPlugin(options) {
var found = options.plugins.find(function(x){
return x instanceof Array;
});

var index = options.plugins.indexOf(found);
options.plugins.splice(index, 1);
return options;
}

gulp.task('build-index', function(){
var importsToAdd = [];

gulp.task('build-es6', function () {
return gulp.src(paths.source)
.pipe(gulp.dest(paths.output + 'es6'));
.pipe(tools.sortFiles())
.pipe(gulpIgnore.exclude('index.js'))
.pipe(through2.obj(function(file, enc, callback) {
file.contents = new Buffer(tools.extractImports(file.contents.toString("utf8"), importsToAdd));
this.push(file);
return callback();
}))
.pipe(concat(jsName))
.pipe(insert.transform(function(contents) {
return tools.createImportBlock(importsToAdd) + contents;
}))
.pipe(gulp.dest(paths.output));
});

gulp.task('build-es2015-temp', function () {
return gulp.src(paths.output + jsName)
.pipe(to5(assign({}, compilerOptions.commonjs())))
.pipe(gulp.dest(paths.output + 'temp'));
});

gulp.task('build-es2015', function () {
return gulp.src(paths.source)
.pipe(to5(assign({}, removeDTSPlugin(compilerOptions.es2015()))))
.pipe(gulp.dest(paths.output + 'es2015'));
});

gulp.task('build-commonjs', function () {
return gulp.src(paths.source)
.pipe(to5(assign({}, compilerOptions, {modules:'common'})))
.pipe(to5(assign({}, removeDTSPlugin(compilerOptions.commonjs()))))
.pipe(gulp.dest(paths.output + 'commonjs'));
});

gulp.task('build-amd', function () {
return gulp.src(paths.source)
.pipe(to5(assign({}, compilerOptions, {modules:'amd'})))
.pipe(to5(assign({}, removeDTSPlugin(compilerOptions.amd()))))
.pipe(gulp.dest(paths.output + 'amd'));
});

gulp.task('build-system', function () {
return gulp.src(paths.source)
.pipe(to5(assign({}, compilerOptions, {modules:'system'})))
.pipe(to5(assign({}, removeDTSPlugin(compilerOptions.system()))))
.pipe(gulp.dest(paths.output + 'system'));
});

gulp.task('build-html', function () {
return gulp.src(paths.html)
.pipe(gulp.dest(paths.output + 'es6'))
.pipe(gulp.dest(paths.output + 'es2015'))
.pipe(gulp.dest(paths.output + 'commonjs'))
.pipe(gulp.dest(paths.output + 'amd'))
.pipe(gulp.dest(paths.output + 'system'));
});

gulp.task('build-dts', function(){
return gulp.src(paths.output + paths.packageName + '.d.ts')
.pipe(rename(paths.packageName + '.d.ts'))
.pipe(gulp.dest(paths.output + 'es2015'))
.pipe(gulp.dest(paths.output + 'commonjs'))
.pipe(gulp.dest(paths.output + 'amd'))
.pipe(gulp.dest(paths.output + 'system'));
});

gulp.task('build', function(callback) {
return runSequence(
'clean',
['build-es6', 'build-commonjs', 'build-amd', 'build-system', 'build-html'],
'build-index',
['build-es2015-temp', 'build-es2015', 'build-commonjs', 'build-amd', 'build-system', 'build-html'],
'build-dts',
callback
);
});
10 changes: 5 additions & 5 deletions karma.conf.js
Expand Up @@ -37,11 +37,11 @@ module.exports = function(config) {
'babelPreprocessor': {
options: {
sourceMap: 'inline',
modules: 'system',
moduleIds: false,
loose: "all",
optional: [
"es7.decorators"
presets: [ 'es2015-loose', 'stage-1'],
plugins: [
'syntax-flow',
'transform-decorators-legacy',
'transform-flow-strip-types'
]
}
},
Expand Down
21 changes: 17 additions & 4 deletions package.json
Expand Up @@ -65,20 +65,33 @@
"aurelia-templating-resources": "^1.0.0-beta.1.1.1"
},
"devDependencies": {
"aurelia-tools": "^0.1.16",
"babel-dts-generator": "^0.2.17",
"aurelia-tools": "^0.1.20",
"babel-dts-generator": "^0.4.7",
"babel-plugin-syntax-flow": "^6.5.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-es2015-modules-amd": "^6.6.5",
"babel-plugin-transform-es2015-modules-commonjs": "^6.7.0",
"babel-plugin-transform-es2015-modules-systemjs": "^6.6.5",
"babel-plugin-transform-flow-strip-types": "^6.7.0",
"babel-preset-es2015": "^6.6.0",
"babel-preset-es2015-loose": "^7.0.0",
"babel-preset-stage-1": "^6.5.0",
"browser-sync": "^2.9.11",
"conventional-changelog": "0.0.11",
"del": "^1.1.0",
"gulp": "^3.8.10",
"gulp-babel": "^5.1.0",
"gulp-babel": "^6.1.2",
"gulp-bump": "^0.1.11",
"gulp-concat": "^2.6.0",
"gulp-ignore": "^2.0.1",
"gulp-insert": "^0.5.0",
"gulp-jshint": "^1.9.0",
"gulp-rename": "^1.2.2",
"gulp-yuidoc": "^0.1.2",
"jasmine-core": "^2.1.3",
"jshint-stylish": "^1.0.0",
"karma": "^0.13.15",
"karma-babel-preprocessor": "^5.2.1",
"karma-babel-preprocessor": "^6.0.1",
"karma-chrome-launcher": "^0.1.7",
"karma-coverage": "^0.3.1",
"karma-jasmine": "^0.3.5",
Expand Down

0 comments on commit dbaccb4

Please sign in to comment.