development-core
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -37,3 +37,3 @@ // DynamicTask | ||
let taskseq = _.map(generateTask([ | ||
{ name: 'clean', src: 'src', dist: 'lib', task: (config) => del(config.getDist()) }, | ||
{ | ||
@@ -46,3 +46,3 @@ name: 'tscompile', src: 'src/**/*.ts', dist: 'lib', | ||
if (config.oper === Operation.release || config.oper === Operation.deploy) { | ||
return tsmap.js.pipe(babel({presets: ['es2015']})) | ||
return tsmap.js.pipe(babel({ presets: ['es2015'] })) | ||
.pipe(uglify()).pipe(sourcemaps.write('./sourcemaps')) | ||
@@ -57,3 +57,3 @@ .pipe(gulp.dest(config.getDist(dt))); | ||
{ | ||
name: 'test', src: 'test/**/*spec.ts', | ||
name: 'test', src: 'test/**/*spec.ts', order:1, | ||
oper: Operation.test | Operation.release | Operation.deploy, | ||
@@ -67,8 +67,10 @@ pipe(src) { | ||
}, | ||
{ src: 'src/**/*.ts', name: 'watch', watch: ['tscompile'] } | ||
{ src: 'src/**/*.ts', name: 'watch', watch: ['tscompile'] }, | ||
{ name: 'clean', order: 0, src: 'src', dist: 'lib', task: (config) => del(config.getDist()) } | ||
], oper, env), tk => { | ||
return tk(gulp, config); | ||
}); | ||
return runSequence(gulp, toSequence(taskseq, oper)); | ||
let seqs = toSequence(taskseq, oper); | ||
console.log(seqs) | ||
return runSequence(gulp, seqs); | ||
} |
@@ -1,2 +0,2 @@ | ||
"use strict";function task(e){Object.seal(e),Object.seal(e.prototype)}function bindingConfig(e){return e.fileFilter=e.fileFilter||files,e.runSequence=e.runSequence||runSequence,e.addTask=e.addTask||addTask,e.generateTask=e.generateTask||function(n){return generateTask(n,e.oper,e.env)},e.subTaskName=e.subTaskName||function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.option.name?e.option.name+"-"+(n||t):n},e.getDist=e.getDist||function(n){if(n){var t=getCurrentDist(n,e.oper);if(t)return t}return getCurrentDist(e.option,e.oper)},e}function currentOperation(e){var n=void 0;return n=e.deploy?Operation.deploy:e.release?Operation.release:e.e2e?Operation.e2e:e.test?Operation.test:Operation.build}function toSequence(e,n){var t=[],r=e.length;return e=_.orderBy(e,function(e){return e?_.isString(e)?r:_.isArray(e)?r:e.order:r}),_.each(e,function(e){e&&(_.isString(e)?t.push(e):_.isArray(e)?t.push(_.flatten(toSequence(e,n))):e.name&&e.oper&&(e.oper&n)>0&&t.push(e.name))}),t}function runSequence(e,n){var t=Promise.resolve();return n&&n.length>0&&_.each(n,function(n){t=t.then(function(){var t=null,r=null;return new Promise(function(i,a){var o={};_.each(_.isArray(n)?n:[n],function(e){o[e]=!1}),t=function(e){a(e)},r=function(e){o[e.task]=!0,_.some(_.values(o),function(e){return!e})||i()},e.on("task_stop",r).on("task_err",t),e.start(n)}).then(function(){e.removeListener&&(e.removeListener("task_stop",r),e.removeListener("task_err",t))},function(n){e.removeListener&&(e.removeListener("task_stop",r),e.removeListener("task_err",t)),console.error(n)})})}),t}function files(e,n){var t=[];return n=n||function(e){return!0},_.each(fs_1.readdirSync(e),function(r){var i=e+"/"+r,a=fs_1.lstatSync(i);a.isDirectory()?t=t.concat(files(i,n)):n(i)&&t.push(i)}),t}function generateTask(e,n,t){var r=[];return _.each(_.isArray(e)?e:[e],function(e){if(!(e.oper&&(e.oper&n)<=0))if(e.watch){if(!t.watch)return;console.log("register watch dynamic task:",chalk.cyan(e.name)),r.push(createWatchTask(e))}else _.isFunction(e.task)?(console.log("register custom dynamic task:",chalk.cyan(e.name)),r.push(createTask(e))):(console.log("register pipes dynamic task:",chalk.cyan(e.name)),r.push(createPipesTask(e)))}),r}function getCurrentDist(e,n){var t=void 0;switch(n){case Operation.build:t=e.build||e.dist;break;case Operation.test:t=e.test||e.build||e.dist;break;case Operation.e2e:t=e.e2e||e.build||e.dist;break;case Operation.release:t=e.release||e.dist;break;case Operation.deploy:t=e.deploy||e.dist;break;default:t=""}return t}function addTask(e,n){if(!n)return e;if(_.isString(n)||_.isArray(n))e.push(n);else if(n.name){if(_.isNumber(n.order)&&n.order>=0&&n.order<e.length)return e.splice(n.order,0,n.name),e;e.push(n.name)}return e}function createTask(e){return function(n,t){var r=t.subTaskName(e.name);return n.task(r,function(){return e.task(t,e,n)}),r}}function createWatchTask(e){return function(n,t){var r=_.isFunction(e.watch)?e.watch(t):e.watch;return _.isFunction(_.last(r))||r.push(function(n){e.watchChanged&&e.watchChanged(n,t)}),r=_.map(r,function(e){return _.isString(e)?t.subTaskName(e):e}),n.task(e.name,function(){console.log("watch, src:",chalk.cyan.call(chalk,t.option.src)),n.watch(t.option.src,r)}),e.name}}function createPipesTask(e){return function(n,t){var r=t.subTaskName(e.name);return n.task(r,function(){var r=Promise.resolve(n.src(e.src||t.option.src));if(e.pipes){var i=_.isFunction(e.pipes)?e.pipes(t,e):e.pipes;_.each(i,function(i){r=r.then(function(r){return Promise.resolve(_.isFunction(i)?i(t,e,n):i).then(function(e){return r.pipe(e)})})})}else e.pipe&&(r=r.then(function(n){return e.pipe(n,t,e)}));return r.then(function(r){if(e.output){var i=_.isFunction(e.output)?e.output(t,e):e.output;return Promise.all(_.map(i,function(i){return new Promise(function(a,o){Promise.resolve(_.isFunction(i)?i(r,t,e,n):i).then(function(e){r.pipe(e).once("end",a).once("error",o)})})}))}return new Promise(function(i,a){r.pipe(n.dest(t.getDist(e))).once("end",i).once("error",a)})}),r.catch(function(e){console.log(chalk.red(e))})}),r}}var _=require("lodash"),chalk=require("chalk"),fs_1=require("fs");!function(e){e[e.build=1]="build",e[e.test=2]="test",e[e.e2e=4]="e2e",e[e.release=8]="release",e[e.deploy=16]="deploy"}(exports.Operation||(exports.Operation={}));var Operation=exports.Operation;exports.task=task,exports.bindingConfig=bindingConfig,exports.currentOperation=currentOperation,exports.toSequence=toSequence,exports.runSequence=runSequence,exports.files=files,exports.generateTask=generateTask; | ||
"use strict";function task(e){Object.seal(e),Object.seal(e.prototype)}function bindingConfig(e){return e.fileFilter=e.fileFilter||files,e.runSequence=e.runSequence||runSequence,e.addTask=e.addTask||addTask,e.generateTask=e.generateTask||function(r){return generateTask(r,e.oper,e.env)},e.subTaskName=e.subTaskName||function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.option.name?e.option.name+"-"+(r||n):r},e.getDist=e.getDist||function(r){if(r){var n=getCurrentDist(r,e.oper);if(n)return n}return getCurrentDist(e.option,e.oper)},e}function currentOperation(e){var r=void 0;return r=e.deploy?Operation.deploy:e.release?Operation.release:e.e2e?Operation.e2e:e.test?Operation.test:Operation.build}function toSequence(e,r){var n=[];e=_.filter(e,function(e){return e});var t=e.length;return e=_.orderBy(e,function(e){return e?_.isString(e)?t:_.isArray(e)?t:e.order:t}),_.each(e,function(e){e&&(_.isString(e)?n.push(e):_.isArray(e)?n.push(_.flatten(toSequence(e,r))):e.name&&(e.oper?(e.oper&r)>0&&n.push(e.name):n.push(e.name)))}),n}function runSequence(e,r){var n=Promise.resolve();return r&&r.length>0&&_.each(r,function(r){n=n.then(function(){var n=null,t=null;return new Promise(function(i,o){var a={};_.each(_.isArray(r)?r:[r],function(e){a[e]=!1}),n=function(e){o(e)},t=function(e){a[e.task]=!0,_.some(_.values(a),function(e){return!e})||i()},e.on("task_stop",t).on("task_err",n),e.start(r)}).then(function(){e.removeListener&&(e.removeListener("task_stop",t),e.removeListener("task_err",n))},function(r){e.removeListener&&(e.removeListener("task_stop",t),e.removeListener("task_err",n)),console.error(r)})})}),n}function files(e,r){var n=[];return r=r||function(e){return!0},_.each(fs_1.readdirSync(e),function(t){var i=e+"/"+t,o=fs_1.lstatSync(i);o.isDirectory()?n=n.concat(files(i,r)):r(i)&&n.push(i)}),n}function generateTask(e,r,n){var t=[];return _.each(_.isArray(e)?e:[e],function(e){if(!(e.oper&&(e.oper&r)<=0))if(e.watch){if(!n.watch)return;console.log("register watch dynamic task:",chalk.cyan(e.name)),t.push(createWatchTask(e))}else _.isFunction(e.task)?(console.log("register custom dynamic task:",chalk.cyan(e.name)),t.push(createTask(e))):(console.log("register pipes dynamic task:",chalk.cyan(e.name)),t.push(createPipesTask(e)))}),t}function getCurrentDist(e,r){var n=void 0;switch(r){case Operation.build:n=e.build||e.dist;break;case Operation.test:n=e.test||e.build||e.dist;break;case Operation.e2e:n=e.e2e||e.build||e.dist;break;case Operation.release:n=e.release||e.dist;break;case Operation.deploy:n=e.deploy||e.dist;break;default:n=""}return n}function addTask(e,r){if(!r)return e;if(_.isString(r)||_.isArray(r))e.push(r);else if(r.name){if(_.isNumber(r.order)&&r.order>=0&&r.order<e.length)return e.splice(r.order,0,r.name),e;e.push(r.name)}return e}function createTask(e){return function(r,n){var t=n.subTaskName(e.name);return r.task(t,function(){return e.task(n,e,r)}),_.isNumber(e.order)?{name:t,order:e.order}:t}}function createWatchTask(e){return function(r,n){var t=_.isFunction(e.watch)?e.watch(n):e.watch;_.isFunction(_.last(t))||t.push(function(r){e.watchChanged&&e.watchChanged(r,n)}),t=_.map(t,function(e){return _.isString(e)?n.subTaskName(e):e});var i=n.subTaskName(e.name);return r.task(i,function(){console.log("watch, src:",chalk.cyan.call(chalk,n.option.src)),r.watch(n.option.src,t)}),_.isNumber(e.order)?{name:i,order:e.order}:i}}function createPipesTask(e){return function(r,n){var t=n.subTaskName(e.name);return r.task(t,function(){var t=Promise.resolve(r.src(e.src||n.option.src));if(e.pipes){var i=_.isFunction(e.pipes)?e.pipes(n,e):e.pipes;_.each(i,function(i){t=t.then(function(t){return Promise.resolve(_.isFunction(i)?i(n,e,r):i).then(function(e){return t.pipe(e)})})})}else e.pipe&&(t=t.then(function(r){return e.pipe(r,n,e)}));return t.then(function(t){if(e.output){var i=_.isFunction(e.output)?e.output(n,e):e.output;return Promise.all(_.map(i,function(i){return new Promise(function(o,a){Promise.resolve(_.isFunction(i)?i(t,n,e,r):i).then(function(e){t.pipe(e).once("end",o).once("error",a)})})}))}return new Promise(function(i,o){t.pipe(r.dest(n.getDist(e))).once("end",i).once("error",o)})}),t.catch(function(e){console.log(chalk.red(e))})}),_.isNumber(e.order)?{name:t,order:e.order}:t}}var _=require("lodash"),chalk=require("chalk"),fs_1=require("fs");!function(e){e[e.build=1]="build",e[e.test=2]="test",e[e.e2e=4]="e2e",e[e.release=8]="release",e[e.deploy=16]="deploy"}(exports.Operation||(exports.Operation={}));var Operation=exports.Operation;exports.task=task,exports.bindingConfig=bindingConfig,exports.currentOperation=currentOperation,exports.toSequence=toSequence,exports.runSequence=runSequence,exports.files=files,exports.generateTask=generateTask; | ||
//# sourceMappingURL=sourcemaps/TaskConfig.js.map |
{ | ||
"name": "development-core", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"description": "development build tools.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/TaskConfig.js", |
@@ -759,2 +759,3 @@ import * as _ from 'lodash'; | ||
let seq: Src[] = []; | ||
tasks = _.filter(tasks, it => it); | ||
let len = tasks.length; | ||
@@ -774,2 +775,3 @@ tasks = _.orderBy(tasks, t => { | ||
_.each(tasks, t => { | ||
@@ -785,3 +787,7 @@ if (!t) { | ||
if (t.name) { | ||
if (t.oper && ((t.oper & oper) > 0)) { | ||
if (t.oper) { | ||
if ((t.oper & oper) > 0) { | ||
seq.push(t.name); | ||
} | ||
} else { | ||
seq.push(t.name); | ||
@@ -965,3 +971,3 @@ } | ||
function createTask(dt: DynamicTask) { | ||
return (gulp: Gulp, cfg: TaskConfig) => { | ||
return (gulp: Gulp, cfg: TaskConfig): TaskResult => { | ||
let tk = cfg.subTaskName(dt.name); | ||
@@ -971,2 +977,8 @@ gulp.task(tk, () => { | ||
}); | ||
if (_.isNumber(dt.order)) { | ||
return <ITaskResult>{ | ||
name: tk, | ||
order: dt.order | ||
}; | ||
} | ||
return tk | ||
@@ -982,3 +994,3 @@ }; | ||
function createWatchTask(dt: DynamicTask) { | ||
return (gulp: Gulp, cfg: TaskConfig) => { | ||
return (gulp: Gulp, cfg: TaskConfig): TaskResult => { | ||
let watchs = _.isFunction(dt.watch) ? dt.watch(cfg) : dt.watch; | ||
@@ -996,3 +1008,4 @@ if (!_.isFunction(_.last(watchs))) { | ||
}) | ||
gulp.task(dt.name, () => { | ||
let tk = cfg.subTaskName(dt.name); | ||
gulp.task(tk, () => { | ||
console.log('watch, src:', chalk.cyan.call(chalk, cfg.option.src)); | ||
@@ -1002,7 +1015,13 @@ gulp.watch(cfg.option.src, watchs) | ||
return dt.name; | ||
if (_.isNumber(dt.order)) { | ||
return <ITaskResult>{ | ||
name: tk, | ||
order: dt.order | ||
}; | ||
} | ||
return tk; | ||
}; | ||
} | ||
function createPipesTask(dt: DynamicTask) { | ||
return (gulp: Gulp, cfg: TaskConfig) => { | ||
return (gulp: Gulp, cfg: TaskConfig): TaskResult => { | ||
@@ -1054,4 +1073,10 @@ let tk = cfg.subTaskName(dt.name); | ||
if (_.isNumber(dt.order)) { | ||
return <ITaskResult>{ | ||
name: tk, | ||
order: dt.order | ||
}; | ||
} | ||
return tk; | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
98950
1460