lithium-sdk
Version:
### Lithium Developer Community Area
106 lines (92 loc) • 3.8 kB
JavaScript
;
var lazyReq = require('lazy-req')(require);
var replace = lazyReq('gulp-replace');
var convert = lazyReq('convert-source-map');
module.exports = function (gulp, gutil) {
const scripts = require('../lib/scripts.js')(gulp, gutil);
const ComponentDepedencies = require('../lib/component-dependencies');
gulp.task('scripts', ['scripts-main', 'scripts-tpls', 'scripts-deps', 'scripts-deps-metadata',
'scripts-activecast', 'scripts-activecast-tracker', 'scripts-deps-limuirs']);
gulp.task('scripts-main', function (cb) {
if (gutil.env.ng) {
return scripts.processScripts(scripts.JS_MAIN_PATTERN, scripts.PLUGIN_SCRIPTS_PATH, undefined, false, true);
} else {
cb();
}
});
gulp.task('scripts-tpls', function (cb) {
if (gutil.env.ng) {
return scripts.processTpls(scripts.TPL_PATTERN, scripts.PLUGIN_SCRIPTS_PATH, undefined, false);
} else {
cb();
}
});
gulp.task('scripts-deps', ['scripts-deps-npm'], function (cb) {
var basePath = gutil.env.newStructure ? 'angular-li/bower_components' : 'bower_components';
if (gutil.env.ng) {
return gulp.src(gutil.env.ng.moduleDependencies.concat(['!node_modules/**']), { base: basePath })
.pipe(replace()(convert().mapFileCommentRegex, ''))
.pipe(gulp.dest(scripts.SCRIPTS_DEPS_PATH));
} else {
cb();
}
});
gulp.task('scripts-deps-npm', function (cb) {
var ignorePaths = gutil.env.newStructure ? ['!angular-li/bower_components/**'] : ['!bower_components/**'];
if (gutil.env.ng) {
return gulp.src(gutil.env.ng.moduleDependencies.concat(ignorePaths), { base: 'node_modules' })
.pipe(replace()(convert().mapFileCommentRegex, ''))
.pipe(gulp.dest(scripts.SCRIPTS_DEPS_PATH));
} else {
cb();
}
});
gulp.task('scripts-deps-metadata', ['scripts-main'], function (cb) {
if (gutil.env.ng) {
return scripts.createDepsMetadata(scripts.PLUGIN_SCRIPTS_PATH, scripts.SCRIPTS_DEPS_METADATA_PATH);
} else {
cb();
}
});
gulp.task('scripts-deps-limuirs', function (cb) {
// TODO: refactor "ng" flag name to be more general and include anything done in angular-li project
if (gutil.env.ng) {
new ComponentDepedencies( scripts.COMPONENT_DEPS_SRC_PATH, scripts.COMPONENT_DEPS_DEST_PATH,
scripts.LIMUIRS_COMPONENT_PATH).createDepFile().then(cb);
} else {
cb();
}
});
gulp.task('scripts-activecast', function (cb) {
var originalTask = this.seq[this.seq.length - 1];
var useWatch = originalTask === 'default';
if (gutil.env.ng) {
var pattern = gutil.env.newStructure ? 'activecast/ActivecastMain.js' : 'src/activecast/ActivecastMain.js';
var destPath = gutil.env.newStructure ? 'dist/plugin/web/html/assets/js/activecast' : 'plugin/web/html/assets/js/activecast';
return scripts.processBundle(pattern, destPath, 'widget.js', useWatch, true);
} else {
cb();
}
});
gulp.task('scripts-activecast-tracker', function (cb) {
var originalTask = this.seq[this.seq.length - 1];
var useWatch = originalTask === 'default';
if (gutil.env.ng) {
var pattern = gutil.env.newStructure ? 'activecast/TrackerMain.js' : 'src/activecast/TrackerMain.js';
var destPath = gutil.env.newStructure ? 'dist/plugin/web/html/assets/js/activecast' : 'plugin/web/html/assets/js/activecast';
return scripts.processBundle(pattern, destPath, 'tracker.js', useWatch, true);
} else {
cb();
}
});
gulp.task('jshint', function (cb) {
if (gutil.env.ng) {
return gulp.src(scripts.JS_MAIN_PATTERN).pipe(scripts.jshint(true));
} else {
cb();
}
});
gulp.task('jscs', function () {
gulp.src(scripts.JS_MAIN_PATTERN).pipe(scripts.jscs(true));
});
};