development-core
Advanced tools
Comparing version 0.8.0 to 0.8.2
@@ -28,3 +28,3 @@ // DynamicTask | ||
env: env, | ||
option: { src: 'src', dist: 'lib' } | ||
option: { src: 'src', dist: 'lib', buildDist: 'build' } | ||
}); | ||
@@ -31,0 +31,0 @@ |
@@ -1,2 +0,2 @@ | ||
"use strict";function bindingConfig(e){var t=(e.oper||0)|currentOperation(e.env),r={oper:t,env:e.env,globals:e.globals||{},option:e.option,runTasks:e.runTasks,fileFilter:utils_1.files,runSequence:taskSequence_1.runSequence,addToSequence:e.addToSequence||taskSequence_1.addToSequence,generateTask:function(e,t){return generateTask_1.generateTask(e,_.extend(createDefaultMatch(r),t||{}))},findTasks:function(e,t){return decorator_1.findTasksInModule(e,_.extend(createDefaultMatch(r),t||{}))},findTasksInDir:function(e,t){return decorator_1.findTasksInDir(e,_.extend(createDefaultMatch(r),t||{}))},findTaskDefine:decorator_1.findTaskDefineInModule.bind(this),findTaskDefineInDir:decorator_1.findTaskDefineInDir.bind(this),subTaskName:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i="";i=_.isString(t)?t:t&&e.option!==t?utils_1.taskStringVal(t.name,r.oper):n;var a=utils_1.taskStringVal(e.option.name,r.oper);return a?a+"-"+i:i},getSrc:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0;return t&&t.assert&&(i=utils_1.taskSourceVal(getAssertSrc(t.assert,t.oper||r.oper),r.oper)),i||(i=utils_1.taskSourceVal(getAssertSrc(e.option,r.oper),r.oper)),n===!1?i:utils_1.absoluteSrc(e.env.root,i)},getDist:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0;return t&&t.assert&&(i=getCurrentDist(t.assert,r.oper)),i=i||getCurrentDist(r.option,r.oper),n===!1?i:utils_1.absolutePath(e.env.root,i)},toRootSrc:function(t){return utils_1.absoluteSrc(e.env.root,t)},toRootPath:function(t){return utils_1.absolutePath(e.env.root,t)}};return r}function currentOperation(e){var t=void 0;return t=e.deploy?TaskConfig_1.Operation.deploy:e.release?TaskConfig_1.Operation.release:TaskConfig_1.Operation.build,e.watch&&(t|=TaskConfig_1.Operation.watch),e.test&&(t|=TaskConfig_1.Operation.test),e.serve&&(t|=TaskConfig_1.Operation.serve),e.e2e&&(t|=TaskConfig_1.Operation.e2e),t}function getAssertSrc(e,t){var r=null;return(t&TaskConfig_1.Operation.test)>0?r=e.testSrc:(t&TaskConfig_1.Operation.e2e)>0?r=e.e2eSrc:(t&TaskConfig_1.Operation.watch)>0?r=e.watchSrc:(t&TaskConfig_1.Operation.clean)>0&&(r=e.cleanSrc||e.dist),r||e.src}function getCurrentDist(e,t){var r=void 0;return(t&TaskConfig_1.Operation.build)>0?r=e.buildDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.release)>0?r=e.releaseDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.deploy)>0?r=e.deployDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.test)>0?r=e.testDist||e.buildDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.e2e)>0&&(r=e.e2eDist||e.buildDist||utils_1.taskStringVal(e.dist,t)),r}var _=require("lodash"),TaskConfig_1=require("./TaskConfig"),generateTask_1=require("./generateTask"),taskSequence_1=require("./taskSequence"),utils_1=require("./utils"),decorator_1=require("./decorator");exports.bindingConfig=bindingConfig;var createDefaultMatch=function(e){var t={oper:e.oper};return e.match&&(t.match=function(r){return e.match(t,r)}),t};exports.currentOperation=currentOperation; | ||
"use strict";function bindingConfig(e){var t=(e.oper||0)|currentOperation(e.env),r={oper:t,env:e.env,globals:e.globals||{},option:e.option,runTasks:e.runTasks,fileFilter:utils_1.files,runSequence:taskSequence_1.runSequence,addToSequence:e.addToSequence||taskSequence_1.addToSequence,generateTask:function(e,t){return generateTask_1.generateTask(e,_.extend(createDefaultMatch(r),t||{}))},findTasks:function(e,t){return decorator_1.findTasksInModule(e,_.extend(createDefaultMatch(r),t||{}))},findTasksInDir:function(e,t){return decorator_1.findTasksInDir(e,_.extend(createDefaultMatch(r),t||{}))},findTaskDefine:decorator_1.findTaskDefineInModule.bind(this),findTaskDefineInDir:decorator_1.findTaskDefineInDir.bind(this),subTaskName:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i="",a=r.oper;if(_.isString(t))i=t;else if(t&&t!==r.option){a=t.oper||r.oper;var s=t.name;s||(s=t.assert?t.assert.name:""),i=utils_1.taskStringVal(s,a)}else i=n;var o=utils_1.taskStringVal(e.option.name,a);return o?o+"-"+i:i},getSrc:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,a=t?t.oper||r.oper:r.oper;return t&&t.assert&&(i=utils_1.taskSourceVal(getAssertSrc(t.assert,a),a)),i||(i=utils_1.taskSourceVal(getAssertSrc(e.option,a),a)),n!==!1?i:utils_1.absoluteSrc(e.env.root,i)},getDist:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,a=t?t.oper||r.oper:r.oper;return t&&t.assert&&(i=getCurrentDist(t.assert,a)),i=i||getCurrentDist(r.option,a),n!==!1?i:utils_1.absolutePath(e.env.root,i)},toRootSrc:function(t){return utils_1.absoluteSrc(e.env.root,t)},toRootPath:function(t){return utils_1.absolutePath(e.env.root,t)}};return r}function currentOperation(e){var t=void 0;return t=e.deploy?TaskConfig_1.Operation.deploy:e.release?TaskConfig_1.Operation.release:TaskConfig_1.Operation.build,e.watch&&(t|=TaskConfig_1.Operation.watch),e.test&&(t|=TaskConfig_1.Operation.test),e.serve&&(t|=TaskConfig_1.Operation.serve),e.e2e&&(t|=TaskConfig_1.Operation.e2e),t}function getAssertSrc(e,t){var r=null;return(t&TaskConfig_1.Operation.test)>0?r=e.testSrc:(t&TaskConfig_1.Operation.e2e)>0?r=e.e2eSrc:(t&TaskConfig_1.Operation.watch)>0?r=e.watchSrc:(t&TaskConfig_1.Operation.clean)>0&&(r=e.cleanSrc||e.dist),r||e.src}function getCurrentDist(e,t){var r=void 0;return(t&TaskConfig_1.Operation.deploy)>0?r=e.deployDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.release)>0?r=e.releaseDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.e2e)>0?r=e.e2eDist||e.buildDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.test)>0?r=e.testDist||e.buildDist||utils_1.taskStringVal(e.dist,t):(t&TaskConfig_1.Operation.build)>0&&(r=e.buildDist||utils_1.taskStringVal(e.dist,t)),r}var _=require("lodash"),TaskConfig_1=require("./TaskConfig"),generateTask_1=require("./generateTask"),taskSequence_1=require("./taskSequence"),utils_1=require("./utils"),decorator_1=require("./decorator");exports.bindingConfig=bindingConfig;var createDefaultMatch=function(e){var t={oper:e.oper};return e.match&&(t.match=function(r){return e.match(t,r)}),t};exports.currentOperation=currentOperation; | ||
//# sourceMappingURL=sourcemaps/bindingConfig.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";function task(n){if(_.isFunction(n))return n.__task={},n;var e=function(){var e=n;return{v:function(n){return n.__task=e||{},n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function dynamicTask(n){if(n&&_.isFunction(n))return n.__dynamictask={},n;var e=function(){var e=n;return{v:function(n){return n.__dynamictask=e||{},n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function findTasks(n,e){var t=[];if(!n)return t;if(_.isFunction(n)){if(n.__task){var i=n.__task;if(!utils_1.matchTaskInfo(i,e))return t;if(!utils_1.matchTaskGroup(i,e))return t;var r=new n(i);r.decorator=_.extend(r.decorator||{},i),t.push(r)}else if(n.__dynamictask){var s=function(){var i=n.__dynamictask;if(!utils_1.matchTaskInfo(i,e))return{v:t};if(!utils_1.matchTaskGroup(i,e))return{v:t};var r=_.map((new n).tasks(),function(n){return n.group=n.group||i.group,n});t=t.concat(generateTask_1.generateTask(r,e))}();if("object"===("undefined"==typeof s?"undefined":_typeof(s)))return s.v}}else _.isArray(n)?_.each(n,function(n){t.concat(findTasks(n,e))}):_.each(_.keys(n),function(i){i&&n[i]&&!/^[0-9]+$/.test(i)&&(console.log(chalk.grey("find task from :"),chalk.cyan(i)),t=t.concat(findTasks(n[i],e)))});return t}function taskdefine(n){if(_.isFunction(n))return n.__task_context=!0,n;var e=function(){var e=n;return{v:function(n){return n.__task_context=e||!0,n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function findTaskDefines(n){var e=[];if(!n)return e;if(_.isFunction(n)){if(n.__task_context){var t=new n;t.getContext||(t=taskDefine2Context(t)),e.push(t)}}else _.isArray(n)?_.each(n,function(n){e.concat(findTaskDefines(n))}):_.each(_.keys(n),function(t){t&&n[t]&&!/^[0-9]+$/.test(t)&&(console.log(chalk.grey("find task define from :"),chalk.cyan(t)),e=e.concat(findTaskDefines(n[t])))});return e}function findTaskDefine(n){var e=void 0;if(!n)return null;if(_.isFunction(n)){if(n.__task_context){var t=new n;e=t.getContext?t:taskDefine2Context(t)}}else _.isArray(n)?_.each(n,function(n){return!e&&(e=findTaskDefine(n),!0)}):_.each(_.keys(n),function(t){return!e&&(!(t&&n[t]&&!/^[0-9]+$/.test(t))||(console.log(chalk.grey("find task define from :"),chalk.cyan(t)),e=findTaskDefine(n[t]),!0))});return e}function findTaskDefineInModule(n){var e=void 0;try{e=findTaskDefine(_.isString(n)?require(n):n)}catch(n){return Promise.reject(n)}return e?Promise.resolve(e):Promise.reject("can not found task define.")}function findTasksInModule(n,e){var t=void 0;try{t=_.isString(n)?findTasks(require(n),e):findTasks(n,e)}catch(n){return Promise.reject(n)}return Promise.resolve(t)}function findTaskDefineInDir(n){return Promise.race(_.map(_.isArray(n)?n:[n],function(n){return new Promise(function(e,t){if(fs_1.existsSync(n)){var i=requireDir(n);if(i){var r=findTaskDefine(i);r&&e(r)}}})}))}function findTasksInDir(n,e){return Promise.all(_.map(_.isArray(n)?n:[n],function(n){console.log(chalk.grey("begin load task from dir"),chalk.cyan(n));try{var t=requireDir(n,{recurse:!0});return Promise.resolve(findTasks(t,e))}catch(n){return Promise.reject(n)}})).then(function(n){return _.flatten(n)})}function taskDefine2Context(n){var e=_.extend({},n);return e.getContext=function(e){return bindingConfig_1.bindingConfig(n.loadConfig(e.option,e.env))},e.tasks=n.loadTasks?function(e){return n.loadTasks(e)}:null,e}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};require("reflect-metadata");var _=require("lodash"),chalk=require("chalk"),generateTask_1=require("./generateTask"),bindingConfig_1=require("./bindingConfig"),utils_1=require("./utils"),fs_1=require("fs"),requireDir=require("require-dir");exports.task=task,exports.dynamicTask=dynamicTask,exports.findTasks=findTasks,exports.taskdefine=taskdefine,exports.findTaskDefines=findTaskDefines,exports.findTaskDefine=findTaskDefine,exports.findTaskDefineInModule=findTaskDefineInModule,exports.findTasksInModule=findTasksInModule,exports.findTaskDefineInDir=findTaskDefineInDir,exports.findTasksInDir=findTasksInDir,exports.taskDefine2Context=taskDefine2Context; | ||
"use strict";function task(n){if(_.isFunction(n))return n.__task={},n;var e=function(){var e=n;return{v:function(n){return n.__task=e||{},n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function dynamicTask(n){if(n&&_.isFunction(n))return n.__dynamictask={},n;var e=function(){var e=n;return{v:function(n){return n.__dynamictask=e||{},n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function findTasks(n,e){var t=[];if(!n)return t;if(_.isFunction(n)){if(n.__task){var i=n.__task;if(i=_.isBoolean(i)?{}:i,!utils_1.matchTaskInfo(i,e))return t;if(!utils_1.matchTaskGroup(i,e))return t;var r=new n(i);r.setInfo&&r.setInfo(i),t.push(r)}else if(n.__dynamictask){var s=function(){var i=n.__dynamictask;if(!utils_1.matchTaskInfo(i,e))return{v:t};if(!utils_1.matchTaskGroup(i,e))return{v:t};var r=_.map((new n).tasks(),function(n){return n=_.extend(_.clone(i),n)});t=t.concat(generateTask_1.generateTask(r,e))}();if("object"===("undefined"==typeof s?"undefined":_typeof(s)))return s.v}}else _.isArray(n)?_.each(n,function(n){t.concat(findTasks(n,e))}):_.each(_.keys(n),function(i){i&&n[i]&&!/^[0-9]+$/.test(i)&&(console.log(chalk.grey("find task from :"),chalk.cyan(i)),t=t.concat(findTasks(n[i],e)))});return t}function taskdefine(n){if(_.isFunction(n))return n.__task_context=!0,n;var e=function(){var e=n;return{v:function(n){return n.__task_context=e||!0,n}}}();return"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.v:void 0}function findTaskDefines(n){var e=[];if(!n)return e;if(_.isFunction(n)){if(n.__task_context){var t=new n;t.getContext||(t=taskDefine2Context(t)),e.push(t)}}else _.isArray(n)?_.each(n,function(n){e.concat(findTaskDefines(n))}):_.each(_.keys(n),function(t){t&&n[t]&&!/^[0-9]+$/.test(t)&&(console.log(chalk.grey("find task define from :"),chalk.cyan(t)),e=e.concat(findTaskDefines(n[t])))});return e}function findTaskDefine(n){var e=void 0;if(!n)return null;if(_.isFunction(n)){if(n.__task_context){var t=new n;e=t.getContext?t:taskDefine2Context(t)}}else _.isArray(n)?_.each(n,function(n){return!e&&(e=findTaskDefine(n),!0)}):_.each(_.keys(n),function(t){return!e&&(!(t&&n[t]&&!/^[0-9]+$/.test(t))||(console.log(chalk.grey("find task define from :"),chalk.cyan(t)),e=findTaskDefine(n[t]),!0))});return e}function findTaskDefineInModule(n){var e=void 0;try{e=findTaskDefine(_.isString(n)?require(n):n)}catch(n){return Promise.reject(n)}return e?Promise.resolve(e):Promise.reject("can not found task define.")}function findTasksInModule(n,e){var t=void 0;try{t=_.isString(n)?findTasks(require(n),e):findTasks(n,e)}catch(n){return Promise.reject(n)}return Promise.resolve(t)}function findTaskDefineInDir(n){return Promise.race(_.map(_.isArray(n)?n:[n],function(n){return new Promise(function(e,t){if(fs_1.existsSync(n)){var i=requireDir(n);if(i){var r=findTaskDefine(i);r&&e(r)}}})}))}function findTasksInDir(n,e){return Promise.all(_.map(_.isArray(n)?n:[n],function(n){console.log(chalk.grey("begin load task from dir"),chalk.cyan(n));try{var t=requireDir(n,{recurse:!0});return Promise.resolve(findTasks(t,e))}catch(n){return Promise.reject(n)}})).then(function(n){return _.flatten(n)})}function taskDefine2Context(n){var e=_.extend({},n);return e.getContext=function(e){return bindingConfig_1.bindingConfig(n.loadConfig(e.option,e.env))},e.tasks=n.loadTasks?function(e){return n.loadTasks(e)}:null,e}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};require("reflect-metadata");var _=require("lodash"),chalk=require("chalk"),generateTask_1=require("./generateTask"),bindingConfig_1=require("./bindingConfig"),utils_1=require("./utils"),fs_1=require("fs"),requireDir=require("require-dir");exports.task=task,exports.dynamicTask=dynamicTask,exports.findTasks=findTasks,exports.taskdefine=taskdefine,exports.findTaskDefines=findTaskDefines,exports.findTaskDefine=findTaskDefine,exports.findTaskDefineInModule=findTaskDefineInModule,exports.findTasksInModule=findTasksInModule,exports.findTaskDefineInDir=findTaskDefineInDir,exports.findTasksInDir=findTasksInDir,exports.taskDefine2Context=taskDefine2Context; | ||
//# sourceMappingURL=sourcemaps/decorator.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";function _possibleConstructorReturn(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function generateTask(t,e){var r=[];return _.each(_.isArray(t)?t:[t],function(t){t.watchTasks&&(t.oper=(t.oper||TaskConfig_1.Operation.default)|TaskConfig_1.Operation.watch),utils_1.matchTaskInfo(t,e)&&utils_1.matchTaskGroup(t,e)&&((t.oper&TaskConfig_1.Operation.watch)>0?r.push(createWatchTask(t)):_.isFunction(t.task)?r.push(createTask(t)):r.push(createPipesTask(t)))}),r}function createTask(t){var e=function(e,r){var o=e.subTaskName(t.name);return console.log("register custom dynamic task:",chalk.cyan(o)),r.task(o,function(){return t.task(e,t,r)}),o};return new DynamicTask({order:t.order,oper:t.oper,watch:t.watch,group:t.group},e)}function createWatchTask(t){var e=function(e,r){var o=_.isFunction(t.watchTasks)?t.watchTasks(e):t.watchTasks;_.isFunction(_.last(o))||o.push(function(r){t.watchChanged&&t.watchChanged(r,e)}),o=_.map(o,function(t){return _.isString(t)?e.subTaskName(t):t});var n=e.subTaskName(t);return console.log("register watch dynamic task:",chalk.cyan(n)),r.task(n,function(){var n=e.getSrc(t);console.log("watch, src:",chalk.cyan.call(chalk,n)),r.watch(n,o)}),n};return new DynamicTask({order:t.order,oper:t.oper,watch:t.watch,group:t.group},e)}function createPipesTask(t){return new DynamicPipeTask(t)}var _get=function t(e,r,o){null===e&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,r);if(void 0===n){var a=Object.getPrototypeOf(e);return null===a?void 0:t(a,r,o)}if("value"in n)return n.value;var i=n.get;if(void 0!==i)return i.call(o)},_createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}}(),_=require("lodash"),coregulp=require("gulp"),chalk=require("chalk"),TaskConfig_1=require("./TaskConfig"),utils_1=require("./utils"),PipeTask_1=require("./PipeTask"),DynamicTask=function(){function t(e,r){_classCallCheck(this,t),this.decorator=e,this.factory=r}return _createClass(t,[{key:"setup",value:function(t,e){var r=this.factory(t,e||coregulp);return r&&(this.decorator.taskName=r),r}}]),t}(),DynamicPipeTask=function(t){function e(t,r){_classCallCheck(this,e);var o=_possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,r));return o.dt=t,o.decorator=r||t,o.decorator.assert=t,o}return _inherits(e,t),_createClass(e,[{key:"getOption",value:function(t){return this.name=this.name||utils_1.taskStringVal(this.dt.name,t.oper),this.dt||t.option}},{key:"customPipe",value:function(t,r,o,n){var a=this;return this.dt.pipe?Promise.resolve(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"customPipe",this).call(this,t,r,o,n)).then(function(t){return a.cpipe2Promise(t,a.dt,r,o,n)}):_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"customPipe",this).call(this,t,r,o,n)}},{key:"pipes",value:function t(r,o,n){var t=_.isFunction(this.dt.pipes)?this.dt.pipes(r,o,n):this.dt.pipes;return t=t||[],t.concat(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"pipes",this).call(this,r,o,n))}},{key:"output",value:function(t,r,o){if(null===this.dt.output)return[function(t){return t}];var n=_.isFunction(this.dt.output)?this.dt.output(t,r,o):this.dt.output;return n=n||[],n.concat(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"output",this).call(this,t,r,o))}}]),e}(PipeTask_1.PipeTask);exports.generateTask=generateTask; | ||
"use strict";function _possibleConstructorReturn(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function generateTask(t,e){var r=[];return _.each(_.isArray(t)?t:[t],function(t){t.watchTasks&&(t.oper=(t.oper||TaskConfig_1.Operation.default)|TaskConfig_1.Operation.watch),utils_1.matchTaskInfo(t,e)&&utils_1.matchTaskGroup(t,e)&&((t.oper&TaskConfig_1.Operation.watch)>0?r.push(createWatchTask(t)):_.isFunction(t.task)?r.push(createTask(t)):r.push(createPipesTask(t)))}),r}function createTask(t){var e=function(e,r){var o=e.subTaskName(t);return console.log("register custom dynamic task:",chalk.cyan(o)),r.task(o,function(){return t.task(e,t,r)}),o};return new DynamicTask({order:t.order,oper:t.oper,watch:t.watch,group:t.group,assert:t},e)}function createWatchTask(t){var e=function(e,r){var o=_.isFunction(t.watchTasks)?t.watchTasks(e):t.watchTasks;_.isFunction(_.last(o))||o.push(function(r){t.watchChanged&&t.watchChanged(r,e)}),o=_.map(o,function(t){return _.isString(t)?e.subTaskName(t):t});var n=e.subTaskName(t);return console.log("register watch dynamic task:",chalk.cyan(n)),r.task(n,function(){var n=e.getSrc(t);console.log("watch, src:",chalk.cyan.call(chalk,n)),r.watch(n,o)}),n};return new DynamicTask({order:t.order,oper:t.oper,watch:t.watch,group:t.group,assert:t},e)}function createPipesTask(t){return new DynamicPipeTask(t)}var _get=function t(e,r,o){null===e&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,r);if(void 0===n){var a=Object.getPrototypeOf(e);return null===a?void 0:t(a,r,o)}if("value"in n)return n.value;var i=n.get;if(void 0!==i)return i.call(o)},_createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}}(),_=require("lodash"),coregulp=require("gulp"),chalk=require("chalk"),TaskConfig_1=require("./TaskConfig"),utils_1=require("./utils"),PipeTask_1=require("./PipeTask"),DynamicTask=function(){function t(e,r){_classCallCheck(this,t),this.info=e,this.factory=r}return _createClass(t,[{key:"getInfo",value:function(){return this.info}},{key:"setup",value:function(t,e){var r=this.factory(t,e||coregulp);return r&&(this.info.taskName=r),r}}]),t}(),DynamicPipeTask=function(t){function e(t,r){_classCallCheck(this,e);var o=_possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,r||t));return o.dt=t,o.info.assert=t,o}return _inherits(e,t),_createClass(e,[{key:"getOption",value:function(t){return this.name=this.name||utils_1.taskStringVal(this.dt.name,t.oper),this.dt||t.option}},{key:"customPipe",value:function(t,r,o,n){var a=this;return this.dt.pipe?Promise.resolve(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"customPipe",this).call(this,t,r,o,n)).then(function(t){return a.cpipe2Promise(t,a.dt,r,o,n)}):_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"customPipe",this).call(this,t,r,o,n)}},{key:"pipes",value:function t(r,o,n){var t=_.isFunction(this.dt.pipes)?this.dt.pipes(r,o,n):this.dt.pipes;return t=t||[],t.concat(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"pipes",this).call(this,r,o,n))}},{key:"output",value:function(t,r,o){if(null===this.dt.output)return[function(t){return t}];var n=_.isFunction(this.dt.output)?this.dt.output(t,r,o):this.dt.output;return n=n||[],n.concat(_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"output",this).call(this,t,r,o))}}]),e}(PipeTask_1.PipeTask);exports.generateTask=generateTask; | ||
//# sourceMappingURL=sourcemaps/generateTask.js.map |
@@ -99,4 +99,6 @@ /// <reference types="gulp" /> | ||
name: string; | ||
constructor(info?: ITaskInfo); | ||
protected info: ITaskInfo; | ||
/** | ||
* task info. | ||
* get task info. | ||
* | ||
@@ -106,4 +108,3 @@ * @type {ITaskInfo} | ||
*/ | ||
decorator: ITaskInfo; | ||
constructor(info?: ITaskInfo); | ||
getInfo(): ITaskInfo; | ||
/** | ||
@@ -141,3 +142,3 @@ * source streams. | ||
*/ | ||
output(context: ITaskContext, dist: IAssertDist, gulp?: Gulp): OutputPipe[]; | ||
output(ctx: ITaskContext, dist: IAssertDist, gulp?: Gulp): OutputPipe[]; | ||
/** | ||
@@ -191,3 +192,3 @@ * get option. | ||
*/ | ||
protected pipes2Promise(source: ITransform, context: ITaskContext, dist: IAssertDist, gulp: Gulp, pipes?: Pipe[]): Promise<ITransform>; | ||
protected pipes2Promise(source: ITransform, ctx: ITaskContext, dist: IAssertDist, gulp: Gulp, pipes?: Pipe[]): Promise<ITransform>; | ||
/** | ||
@@ -194,0 +195,0 @@ * output pipes transform to Promise. |
@@ -1,2 +0,2 @@ | ||
"use strict";function _classCallCheck(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_createClass=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),utils_1=require("./utils"),coregulp=require("gulp"),chalk=require("chalk"),_=require("lodash");!function(e){e[e.sequence=1]="sequence",e[e.parallel=2]="parallel"}(exports.RunWay||(exports.RunWay={}));var RunWay=exports.RunWay,PipeTask=function(){function e(n){_classCallCheck(this,e),this.runWay=RunWay.parallel,this.decorator=n||{}}return _createClass(e,[{key:"source",value:function(e,n,t){var r=e.option,i=null;if(r.source)return _.isFunction(r.source)?r.source(e,n,t):r.source;var o=r.loader;return o&&_.isFunction(o.pipes)&&(i=_.isFunction(o.pipes)?o.pipes(e,r,t):_.filter(o.pipes,function(e){return _.isFunction(e)||e.name&&e.name===n.name})),t.src(e.getSrc(this.decorator))}},{key:"pipes",value:function e(n,t,r){var i=n.option,e=null,o=i.loader;if(o&&_.isFunction(o.pipes)&&(e=_.isFunction(o.pipes)?o.pipes(n,i,r):_.filter(o.pipes,function(e){return _.isFunction(e)||e.name&&e.name===t.name})),i.pipes){var u=_.isFunction(i.pipes)?i.pipes(n,i,r):_.filter(i.pipes,function(e){return _.isFunction(e)||e.name&&e.name===t.name});u&&u.length>0&&(e=e?e.concat(u):u)}return e||[]}},{key:"output",value:function(e,n,t){var r=e.option,i=null,o=r.loader;if(o&&!_.isString(o)&&!_.isArray(o))if(o.output)i=_.isFunction(o.output)?o.output(e,r,t):_.filter(o.pipes,function(e){return _.isFunction(e)||e.name&&e.name===n.name});else if(null===o.output)return[function(e){return e}];if(r.output){var u=_.isFunction(r.output)?r.output(e,r,t):_.filter(r.output,function(e){return _.isFunction(e)||e.name&&e.name===n.name});u&&u.length>0&&(i=i?i.concat(u):u)}else if(null===r.output)return[function(e){return e}];return i||[function(r){return r.pipe(t.dest(e.getDist(n)))}]}},{key:"getOption",value:function(e){return e.option}},{key:"match",value:function(e,n,t){return!!e&&(!(e.name&&!n.endsWith(utils_1.taskStringVal(e.name,e.oper)))&&!(e.oper&&(e.oper&t.oper)<=0))}},{key:"cpipe2Promise",value:function(e,n,t,r,i){return new Promise(function(o,u){var s=n.pipe(e,t,r,i,function(e){e?u(e):o()});s&&Promise.resolve(s).then(o,u)})}},{key:"pipes2Promise",value:function(e,n,t,r,i){var o=this,u=n.subTaskName(t,this.name);return Promise.all(_.map(i||this.pipes(n,t,r),function(e){return _.isFunction(e)?e(n,t,r):o.match(e,u,n)?Promise.resolve(e.toTransform(n,t,r)).then(function(n){return n.order=e.order,n}):null})).then(function(t){var r=t.length;return t=_.orderBy(_.filter(t,function(e){return e}),function(e){return _.isArray(e)?r:_.isNumber(e.order)?e.order:r}),_.each(t,function(t){o.match(t,u,n)&&(e=_.isFunction(t.transformSourcePipe)?t.transformSourcePipe(e):_.isFunction(e.transformPipe)?e.transformPipe(t):e.pipe(t))}),e})}},{key:"output2Promise",value:function(e,n,t,r,i){var o=this,u=n.subTaskName(t,this.name),s=i||this.output(n,t,r);return Promise.all(_.map(s,function(i){return _.isFunction(i)?i(e,n,t,r):o.match(i,u,n)?i.toTransform(e,n,t,r):null})).then(function(e){return Promise.all(_.map(e,function(e){return new Promise(function(n,t){e?e.once("end",function(){n(e)}).once("error",t):n()})}))})}},{key:"customPipe",value:function(e,n,t,r){var i=this,o=n.option,u=o.loader,s=void 0;return o.pipe&&(s=this.cpipe2Promise(e,o,n,t,r)),u&&!_.isString(u)&&!_.isArray(u)&&u.pipe&&(s=s?s.then(function(e){return i.cpipe2Promise(e,u,n,t,r)}):this.cpipe2Promise(e,u,n,t,r)),s||e}},{key:"working",value:function(e,n,t,r,i,o){var u=this;return Promise.resolve(e).then(function(e){return u.customPipe(e,n,t,r)}).then(function(e){return u.pipes2Promise(e,n,t,r,i)}).then(function(e){return u.output2Promise(e,n,t,r,o)}).catch(function(e){console.log(chalk.red(e)),process.exit(0)})}},{key:"execute",value:function(e,n){var t=this,r=this.getOption(e);return Promise.resolve(this.source(e,r,n)).then(function(i){if(!_.isArray(i))return t.working(i,e,r,n);if(t.runWay===RunWay.parallel)return Promise.all(_.map(i,function(i){return t.working(i,e,r,n)}));if(t.runWay!==RunWay.sequence)return Promise.reject("runWay setting error.");var o=function(){var o=void 0;return _.each(i,function(i){o=o?o.then(function(){return t.working(i,e,r,n)}):t.working(i,e,r,n)}),{v:o}}();return"object"===("undefined"==typeof o?"undefined":_typeof(o))?o.v:void 0})}},{key:"setup",value:function(e,n){var t=this;n=n||coregulp;var r=this.getOption(e),i=e.subTaskName(r,this.name);return console.log("register "+(this.name||"")+" task:",chalk.cyan(i)),n.task(i,function(){return t.execute(e,n)}),this.decorator.taskName=i,i}}]),e}();exports.PipeTask=PipeTask; | ||
"use strict";function _classCallCheck(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},_createClass=function(){function n(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}}(),utils_1=require("./utils"),coregulp=require("gulp"),chalk=require("chalk"),_=require("lodash");!function(n){n[n.sequence=1]="sequence",n[n.parallel=2]="parallel"}(exports.RunWay||(exports.RunWay={}));var RunWay=exports.RunWay,PipeTask=function(){function n(e){_classCallCheck(this,n),this.runWay=RunWay.parallel,this.info=e||{},this.info.name=this.info.name||this.name}return _createClass(n,[{key:"getInfo",value:function(){return this.info.name||(this.info.name=this.name),this.info}},{key:"source",value:function(n,e,t){var r=n.option,i=null;if(r.source)return _.isFunction(r.source)?r.source(n,e,t):r.source;var o=r.loader;return o&&_.isFunction(o.pipes)&&(i=_.isFunction(o.pipes)?o.pipes(n,r,t):_.filter(o.pipes,function(n){return _.isFunction(n)||n.name&&n.name===e.name})),t.src(n.getSrc(this.getInfo()))}},{key:"pipes",value:function n(e,t,r){var i=e.option,n=null,o=i.loader;if(o&&_.isFunction(o.pipes)&&(n=_.isFunction(o.pipes)?o.pipes(e,i,r):_.filter(o.pipes,function(n){return _.isFunction(n)||n.name&&n.name===t.name})),i.pipes){var u=_.isFunction(i.pipes)?i.pipes(e,i,r):_.filter(i.pipes,function(n){return _.isFunction(n)||n.name&&n.name===t.name});u&&u.length>0&&(n=n?n.concat(u):u)}return n||[]}},{key:"output",value:function(n,e,t){var r=n.option,i=null,o=r.loader;if(o&&!_.isString(o)&&!_.isArray(o))if(o.output)i=_.isFunction(o.output)?o.output(n,r,t):_.filter(o.pipes,function(n){return _.isFunction(n)||n.name&&n.name===e.name});else if(null===o.output)return[function(n){return n}];if(r.output){var u=_.isFunction(r.output)?r.output(n,r,t):_.filter(r.output,function(n){return _.isFunction(n)||n.name&&n.name===e.name});u&&u.length>0&&(i=i?i.concat(u):u)}else if(null===r.output)return[function(n){return n}];return i||[function(r){return r.pipe(t.dest(n.getDist(e)))}]}},{key:"getOption",value:function(n){return n.option}},{key:"match",value:function(n,e,t){return!!n&&(!(n.name&&!e.endsWith(utils_1.taskStringVal(n.name,n.oper)))&&!(n.oper&&(n.oper&t.oper)<=0))}},{key:"cpipe2Promise",value:function(n,e,t,r,i){return new Promise(function(o,u){var s=e.pipe(n,t,r,i,function(n){n?u(n):o()});s&&Promise.resolve(s).then(o,u)})}},{key:"pipes2Promise",value:function(n,e,t,r,i){var o=this,u=e.subTaskName(t,this.name);return Promise.all(_.map(i||this.pipes(e,t,r),function(n){return _.isFunction(n)?n(e,t,r):o.match(n,u,e)?Promise.resolve(n.toTransform(e,t,r)).then(function(e){return e.order=n.order,e}):null})).then(function(t){var r=t.length;return t=_.orderBy(_.filter(t,function(n){return n}),function(n){return _.isArray(n)?r:_.isNumber(n.order)?n.order:r}),_.each(t,function(t){o.match(t,u,e)&&(n=_.isFunction(t.transformSourcePipe)?t.transformSourcePipe(n):_.isFunction(n.transformPipe)?n.transformPipe(t):n.pipe(t))}),n})}},{key:"output2Promise",value:function(n,e,t,r,i){var o=this,u=e.subTaskName(t,this.name),s=i||this.output(e,t,r);return Promise.all(_.map(s,function(i){return _.isFunction(i)?i(n,e,t,r):o.match(i,u,e)?i.toTransform(n,e,t,r):null})).then(function(n){return Promise.all(_.map(n,function(n){return new Promise(function(e,t){n?n.once("end",function(){e(n)}).once("error",t):e()})}))})}},{key:"customPipe",value:function(n,e,t,r){var i=this,o=e.option,u=o.loader,s=void 0;return o.pipe&&(s=this.cpipe2Promise(n,o,e,t,r)),u&&!_.isString(u)&&!_.isArray(u)&&u.pipe&&(s=s?s.then(function(n){return i.cpipe2Promise(n,u,e,t,r)}):this.cpipe2Promise(n,u,e,t,r)),s||n}},{key:"working",value:function(n,e,t,r,i,o){var u=this;return Promise.resolve(n).then(function(n){return u.customPipe(n,e,t,r)}).then(function(n){return u.pipes2Promise(n,e,t,r,i)}).then(function(n){return u.output2Promise(n,e,t,r,o)}).catch(function(n){console.log(chalk.red(n)),process.exit(0)})}},{key:"execute",value:function(n,e){var t=this,r=this.getOption(n);return Promise.resolve(this.source(n,r,e)).then(function(i){if(!_.isArray(i))return t.working(i,n,r,e);if(t.runWay===RunWay.parallel)return Promise.all(_.map(i,function(i){return t.working(i,n,r,e)}));if(t.runWay!==RunWay.sequence)return Promise.reject("runWay setting error.");var o=function(){var o=void 0;return _.each(i,function(i){o=o?o.then(function(){return t.working(i,n,r,e)}):t.working(i,n,r,e)}),{v:o}}();return"object"===("undefined"==typeof o?"undefined":_typeof(o))?o.v:void 0})}},{key:"setup",value:function(n,e){var t=this;e=e||coregulp;var r=n.subTaskName(this.getInfo());return console.log("register "+(this.name||"")+" task:",chalk.cyan(r)),e.task(r,function(){return t.execute(n,e)}),this.info.taskName=r,r}}]),n}();exports.PipeTask=PipeTask; | ||
//# sourceMappingURL=sourcemaps/PipeTask.js.map |
@@ -174,4 +174,12 @@ /// <reference types="gulp" /> | ||
*/ | ||
decorator: ITaskInfo; | ||
getInfo(): ITaskInfo; | ||
/** | ||
* set task info. | ||
* | ||
* @param {ITaskInfo} info | ||
* | ||
* @memberOf ITask | ||
*/ | ||
setInfo?(info: ITaskInfo): any; | ||
/** | ||
* setup task. | ||
@@ -787,3 +795,3 @@ * | ||
* | ||
* @param {ITaskInfo} task | ||
* @param {ITaskInfo} [task] | ||
* @param {boolean} [relative] get relative path or absolute path. | ||
@@ -796,2 +804,11 @@ * @returns {string} | ||
/** | ||
* generate sub task name. default implement in bindingConfig. | ||
* | ||
* @param {string | ITaskInfo} task | ||
* @param {string} [defaultName] | ||
* | ||
* @memberOf ITaskContext | ||
*/ | ||
subTaskName(task: string | ITaskInfo, defaultName?: string): any; | ||
/** | ||
* custom print help. | ||
@@ -883,11 +900,2 @@ * | ||
/** | ||
* generate sub task name. default implement in bindingConfig. | ||
* | ||
* @param {IAsserts | string} assert | ||
* @param {string} [defaultName] | ||
* | ||
* @memberOf ITaskContext | ||
*/ | ||
subTaskName(assert: string | IAsserts, defaultName?: string): any; | ||
/** | ||
* join src to absolute path src with root( env.root ). | ||
@@ -894,0 +902,0 @@ * |
@@ -1,2 +0,2 @@ | ||
"use strict";function toSequence(e,r,n){var t=[],o=r.length;return o<1?t:(r=_.orderBy(r,function(e){return _.isArray(e)?o:_.isNumber(e.decorator.order)?e.decorator.order:o}),_.each(r,function(r){if((!r.decorator.watch||n.env.watch)&&(!r.decorator.oper||r.decorator.oper&&(r.decorator.oper&n.oper)>0)){var o=r.setup(n,e);o&&t.push(o)}}),t)}function addToSequence(e,r){if(!r)return e;if(r.taskName){if(_.isNumber(r.order)&&r.order>=0&&r.order<e.length)return e.splice(r.order,0,r.taskName),e;e.push(r.taskName)}return e}function runSequence(e,r){console.log("run tasks : ",chalk.cyan(r));var n=new Promise(function(n,t){var o=null;return r&&r.length>0?_.each(r,function(r){o=o?o.then(function(){return startTask(e,r)}):startTask(e,r)}):o=Promise.resolve(),o.then(n).catch(t)});return n.catch(function(e){console.error(chalk.red(e)),process.exit(0)})}function startTask(e,r){var n=null,t=null;return new Promise(function(o,u){var c={};_.each(_.isArray(r)?r:[r],function(e){c[e]=!1}),n=function(e){process.exit(e),console.error(chalk.red(e)),u(e)},t=function(e){c[e.task]=!0,_.some(_.values(c),function(e){return!e})||o()},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))})}function runTaskSequence(e,r,n){return Promise.resolve(r).then(function(r){var t=toSequence(e,r,n);return runSequence(e,t)})}var _=require("lodash"),chalk=require("chalk");exports.toSequence=toSequence,exports.addToSequence=addToSequence,exports.runSequence=runSequence,exports.runTaskSequence=runTaskSequence; | ||
"use strict";function toSequence(e,r,n){var t=[],o=r.length;return o<1?t:(r=_.orderBy(r,function(e){if(_.isArray(e))return o;var r=e.getInfo();return _.isNumber(r.order)?r.order:o}),_.each(r,function(r){var o=r.getInfo();if((!o.watch||n.env.watch)&&(!o.oper||o.oper&&(o.oper&n.oper)>0)){var u=r.setup(n,e);u&&t.push(u)}}),t)}function addToSequence(e,r){if(!r)return e;if(r.taskName){if(_.isNumber(r.order)&&r.order>=0&&r.order<e.length)return e.splice(r.order,0,r.taskName),e;e.push(r.taskName)}return e}function runSequence(e,r){console.log("run tasks : ",chalk.cyan(r));var n=new Promise(function(n,t){var o=null;return r&&r.length>0?_.each(r,function(r){o=o?o.then(function(){return startTask(e,r)}):startTask(e,r)}):o=Promise.resolve(),o.then(n).catch(t)});return n.catch(function(e){console.error(chalk.red(e)),process.exit(0)})}function startTask(e,r){var n=null,t=null;return new Promise(function(o,u){var s={};_.each(_.isArray(r)?r:[r],function(e){s[e]=!1}),n=function(e){process.exit(e),console.error(chalk.red(e)),u(e)},t=function(e){s[e.task]=!0,_.some(_.values(s),function(e){return!e})||o()},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))})}function runTaskSequence(e,r,n){return Promise.resolve(r).then(function(r){var t=toSequence(e,r,n);return runSequence(e,t)})}var _=require("lodash"),chalk=require("chalk");exports.toSequence=toSequence,exports.addToSequence=addToSequence,exports.runSequence=runSequence,exports.runTaskSequence=runTaskSequence; | ||
//# sourceMappingURL=sourcemaps/taskSequence.js.map |
{ | ||
"name": "development-core", | ||
"version": "0.8.0", | ||
"version": "0.8.2", | ||
"description": "development build tools.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/index.js", |
@@ -47,12 +47,18 @@ import * as _ from 'lodash'; | ||
subTaskName(dt, deft = '') { | ||
subTaskName(task, deft = '') { | ||
let name = ''; | ||
if (_.isString(dt)) { | ||
name = dt; | ||
} else if (dt && cfg.option !== dt) { | ||
name = taskStringVal(dt.name, context.oper) | ||
let oper = context.oper; | ||
if (_.isString(task)) { | ||
name = task; | ||
} else if (task && task !== context.option) { | ||
oper = task.oper || context.oper; | ||
let n = task.name; | ||
if (!n) { | ||
n = task.assert ? task.assert.name : ''; | ||
} | ||
name = taskStringVal(n, oper) | ||
} else { | ||
name = deft; | ||
} | ||
let parentName = taskStringVal(cfg.option.name, context.oper); | ||
let parentName = taskStringVal(cfg.option.name, oper); | ||
@@ -62,21 +68,23 @@ return parentName ? `${parentName}-${name}` : name; | ||
getSrc(task?: ITaskInfo, relative = false): Src { | ||
getSrc(task: ITaskInfo, relative = false): Src { | ||
let src: Src; | ||
let oper = task ? (task.oper || context.oper) : context.oper; | ||
if (task && task.assert) { | ||
src = taskSourceVal(getAssertSrc(task.assert, task.oper || context.oper), context.oper) | ||
src = taskSourceVal(getAssertSrc(task.assert, oper), oper) | ||
} | ||
if (!src) { | ||
src = taskSourceVal(getAssertSrc(cfg.option, context.oper), context.oper) | ||
src = taskSourceVal(getAssertSrc(cfg.option, oper), oper) | ||
} | ||
return (relative === false) ? src : absoluteSrc(cfg.env.root, src); | ||
return (relative !== false) ? src : absoluteSrc(cfg.env.root, src); | ||
}, | ||
getDist(task?: ITaskInfo, relative = false) { | ||
getDist(task: ITaskInfo, relative = false) { | ||
let dist; | ||
let oper = task ? (task.oper || context.oper) : context.oper; | ||
if (task && task.assert) { | ||
dist = getCurrentDist(task.assert, context.oper); | ||
dist = getCurrentDist(task.assert, oper); | ||
} | ||
dist = dist || getCurrentDist(context.option, context.oper); | ||
dist = dist || getCurrentDist(context.option, oper); | ||
return (relative === false) ? dist : absolutePath(cfg.env.root, dist); | ||
return (relative !== false) ? dist : absolutePath(cfg.env.root, dist); | ||
}, | ||
@@ -166,12 +174,12 @@ | ||
let dist: string; | ||
if ((oper & Operation.build) > 0) { | ||
dist = ds.buildDist || taskStringVal(ds.dist, oper); | ||
if ((oper & Operation.deploy) > 0) { | ||
dist = ds.deployDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.release) > 0) { | ||
dist = ds.releaseDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.deploy) > 0) { | ||
dist = ds.deployDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.e2e) > 0) { | ||
dist = ds.e2eDist || ds.buildDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.test) > 0) { | ||
dist = ds.testDist || ds.buildDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.e2e) > 0) { | ||
dist = ds.e2eDist || ds.buildDist || taskStringVal(ds.dist, oper); | ||
} else if ((oper & Operation.build) > 0) { | ||
dist = ds.buildDist || taskStringVal(ds.dist, oper); | ||
} | ||
@@ -178,0 +186,0 @@ |
@@ -69,3 +69,3 @@ import 'reflect-metadata'; | ||
let tinfo: ITaskDecorator = target['__task']; | ||
tinfo = _.isBoolean(tinfo) ? {} : tinfo; | ||
if (!matchTaskInfo(tinfo, match)) { | ||
@@ -80,3 +80,6 @@ return tasks; | ||
let task: ITask = new target(tinfo); | ||
task.decorator = _.extend(task.decorator || {}, tinfo); | ||
if (task.setInfo) { | ||
task.setInfo(tinfo); | ||
} | ||
tasks.push(task); | ||
@@ -95,3 +98,4 @@ } else if (target['__dynamictask']) { | ||
let dyts = _.map((<IDynamicTasks>new target()).tasks(), tk => { | ||
tk.group = tk.group || tinfo.group; | ||
tk = _.extend(_.clone(tinfo), tk); | ||
// tk.group = tk.group || tinfo.group; | ||
return tk; | ||
@@ -98,0 +102,0 @@ }); |
@@ -12,8 +12,19 @@ import * as _ from 'lodash'; | ||
class DynamicTask implements ITask { | ||
constructor(public decorator: ITaskInfo, private factory: factory) { | ||
constructor(protected info: ITaskInfo, private factory: factory) { | ||
} | ||
/** | ||
* get task info. | ||
* | ||
* @type {ITaskInfo} | ||
* @memberOf PipeTask | ||
*/ | ||
public getInfo(): ITaskInfo { | ||
return this.info; | ||
} | ||
setup(config: ITaskContext, gulp?: Gulp) { | ||
let name = this.factory(config, gulp || coregulp); | ||
if (name) { | ||
this.decorator.taskName = name; | ||
this.info.taskName = name; | ||
} | ||
@@ -26,34 +37,33 @@ return name; | ||
constructor(private dt: IDynamicTaskOption, info?: ITaskInfo) { | ||
super(info); | ||
this.decorator = info || dt; | ||
this.decorator.assert = dt; | ||
super(info || dt); | ||
this.info.assert = dt; | ||
} | ||
protected getOption(config: ITaskContext) { | ||
this.name = this.name || taskStringVal(this.dt.name, config.oper); | ||
return this.dt || config.option; | ||
protected getOption(ctx: ITaskContext) { | ||
this.name = this.name || taskStringVal(this.dt.name, ctx.oper); | ||
return this.dt || ctx.option; | ||
} | ||
protected customPipe(source: ITransform, config: ITaskContext, dist: IAssertDist, gulp: Gulp) { | ||
protected customPipe(source: ITransform, ctx: ITaskContext, dist: IAssertDist, gulp: Gulp) { | ||
if (this.dt.pipe) { | ||
return Promise.resolve(super.customPipe(source, config, dist, gulp)) | ||
.then(stream => this.cpipe2Promise(stream, this.dt, config, dist, gulp)); | ||
return Promise.resolve(super.customPipe(source, ctx, dist, gulp)) | ||
.then(stream => this.cpipe2Promise(stream, this.dt, ctx, dist, gulp)); | ||
} else { | ||
return super.customPipe(source, config, dist, gulp) | ||
return super.customPipe(source, ctx, dist, gulp) | ||
} | ||
} | ||
pipes(config: ITaskContext, dist: IAssertDist, gulp?: Gulp): IPipe[] { | ||
let pipes = _.isFunction(this.dt.pipes) ? this.dt.pipes(config, dist, gulp) : this.dt.pipes; | ||
pipes(ctx: ITaskContext, dist: IAssertDist, gulp?: Gulp): IPipe[] { | ||
let pipes = _.isFunction(this.dt.pipes) ? this.dt.pipes(ctx, dist, gulp) : this.dt.pipes; | ||
pipes = pipes || []; | ||
return pipes.concat(super.pipes(config, dist, gulp)); | ||
return pipes.concat(super.pipes(ctx, dist, gulp)); | ||
} | ||
output(config: ITaskContext, dist: IAssertDist, gulp?: Gulp): IOutputPipe[] { | ||
output(ctx: ITaskContext, dist: IAssertDist, gulp?: Gulp): IOutputPipe[] { | ||
if (this.dt.output === null) { | ||
return [stream => stream]; | ||
} | ||
let outputs = _.isFunction(this.dt.output) ? this.dt.output(config, dist, gulp) : this.dt.output; | ||
let outputs = _.isFunction(this.dt.output) ? this.dt.output(ctx, dist, gulp) : this.dt.output; | ||
outputs = outputs || []; | ||
return outputs.concat(super.output(config, dist, gulp)); | ||
return outputs.concat(super.output(ctx, dist, gulp)); | ||
} | ||
@@ -110,3 +120,3 @@ | ||
let factory = (cfg: ITaskContext, gulp: Gulp) => { | ||
let tk = cfg.subTaskName(dt.name); | ||
let tk = cfg.subTaskName(dt); | ||
console.log('register custom dynamic task:', chalk.cyan(tk)); | ||
@@ -120,3 +130,3 @@ gulp.task(tk, () => { | ||
return new DynamicTask({ order: dt.order, oper: dt.oper, watch: dt.watch, group: dt.group }, factory); | ||
return new DynamicTask({ order: dt.order, oper: dt.oper, watch: dt.watch, group: dt.group, assert: dt }, factory); | ||
} | ||
@@ -154,3 +164,3 @@ /** | ||
return new DynamicTask({ order: dt.order, oper: dt.oper, watch: dt.watch, group: dt.group }, factory); | ||
return new DynamicTask({ order: dt.order, oper: dt.oper, watch: dt.watch, group: dt.group, assert: dt }, factory); | ||
} | ||
@@ -157,0 +167,0 @@ |
@@ -106,4 +106,13 @@ import { Gulp } from 'gulp'; | ||
name: string; | ||
constructor(info?: ITaskInfo) { | ||
this.info = info || {}; | ||
this.info.name = this.info.name || this.name; | ||
} | ||
protected info: ITaskInfo; | ||
/** | ||
* task info. | ||
* get task info. | ||
* | ||
@@ -113,5 +122,7 @@ * @type {ITaskInfo} | ||
*/ | ||
public decorator: ITaskInfo; | ||
constructor(info?: ITaskInfo) { | ||
this.decorator = info || {}; | ||
public getInfo(): ITaskInfo { | ||
if (!this.info.name) { | ||
this.info.name = this.name; | ||
} | ||
return this.info; | ||
} | ||
@@ -139,3 +150,3 @@ | ||
} | ||
return gulp.src(context.getSrc(this.decorator)); | ||
return gulp.src(context.getSrc(this.getInfo())); | ||
} | ||
@@ -182,4 +193,4 @@ | ||
*/ | ||
output(context: ITaskContext, dist: IAssertDist, gulp?: Gulp): OutputPipe[] { | ||
let option = context.option; | ||
output(ctx: ITaskContext, dist: IAssertDist, gulp?: Gulp): OutputPipe[] { | ||
let option = ctx.option; | ||
let pipes: OutputPipe[] = null; | ||
@@ -189,3 +200,3 @@ let loader = <ILoaderOption>option.loader; | ||
if (loader.output) { | ||
pipes = _.isFunction(loader.output) ? loader.output(context, option, gulp) : _.filter(<OutputPipe[]>loader.pipes, p => _.isFunction(p) || (p.name && p.name === dist.name)); | ||
pipes = _.isFunction(loader.output) ? loader.output(ctx, option, gulp) : _.filter(<OutputPipe[]>loader.pipes, p => _.isFunction(p) || (p.name && p.name === dist.name)); | ||
} else if (loader.output === null) { | ||
@@ -196,3 +207,3 @@ return [(stream) => stream]; | ||
if (option.output) { | ||
let opps = _.isFunction(option.output) ? option.output(context, option, gulp) : _.filter(<OutputPipe[]>option.output, p => _.isFunction(p) || (p.name && p.name === dist.name)); | ||
let opps = _.isFunction(option.output) ? option.output(ctx, option, gulp) : _.filter(<OutputPipe[]>option.output, p => _.isFunction(p) || (p.name && p.name === dist.name)); | ||
if (opps && opps.length > 0) { | ||
@@ -205,3 +216,3 @@ pipes = pipes ? pipes.concat(opps) : opps; | ||
return pipes || [(stream) => stream.pipe(gulp.dest(context.getDist(dist)))] | ||
return pipes || [(stream) => stream.pipe(gulp.dest(ctx.getDist(dist)))] | ||
} | ||
@@ -288,12 +299,12 @@ | ||
*/ | ||
protected pipes2Promise(source: ITransform, context: ITaskContext, dist: IAssertDist, gulp: Gulp, pipes?: Pipe[]) { | ||
let name = context.subTaskName(dist, this.name); | ||
return Promise.all(_.map(pipes || this.pipes(context, dist, gulp), (p: Pipe) => { | ||
protected pipes2Promise(source: ITransform, ctx: ITaskContext, dist: IAssertDist, gulp: Gulp, pipes?: Pipe[]) { | ||
let name = ctx.subTaskName(dist, this.name); | ||
return Promise.all(_.map(pipes || this.pipes(ctx, dist, gulp), (p: Pipe) => { | ||
if (_.isFunction(p)) { | ||
return p(context, dist, gulp); | ||
return p(ctx, dist, gulp); | ||
} else { | ||
if (!this.match(p, name, context)) { | ||
if (!this.match(p, name, ctx)) { | ||
return null; | ||
} else { | ||
return Promise.resolve(p.toTransform(context, dist, gulp)) | ||
return Promise.resolve(p.toTransform(ctx, dist, gulp)) | ||
.then(trs => { | ||
@@ -321,3 +332,3 @@ trs.order = p.order; | ||
_.each(tans, stream => { | ||
if (!this.match(stream, name, context)) { | ||
if (!this.match(stream, name, ctx)) { | ||
return; | ||
@@ -484,4 +495,4 @@ } | ||
gulp = gulp || coregulp; | ||
let option = this.getOption(context); | ||
let tk = context.subTaskName(option, this.name); | ||
// let option = this.getOption(context); | ||
let tk = context.subTaskName(this.getInfo()); | ||
console.log(`register ${this.name || ''} task:`, chalk.cyan(tk)); | ||
@@ -493,3 +504,3 @@ | ||
this.decorator.taskName = tk; | ||
this.info.taskName = tk; | ||
@@ -496,0 +507,0 @@ return tk; |
@@ -186,4 +186,13 @@ import { Gulp, WatchEvent, WatchCallback, TaskCallback } from 'gulp'; | ||
*/ | ||
decorator: ITaskInfo; | ||
getInfo(): ITaskInfo; | ||
/** | ||
* set task info. | ||
* | ||
* @param {ITaskInfo} info | ||
* | ||
* @memberOf ITask | ||
*/ | ||
setInfo?(info: ITaskInfo); | ||
/** | ||
* setup task. | ||
@@ -870,3 +879,3 @@ * | ||
* | ||
* @param {ITaskInfo} task | ||
* @param {ITaskInfo} [task] | ||
* @param {boolean} [relative] get relative path or absolute path. | ||
@@ -880,2 +889,12 @@ * @returns {string} | ||
/** | ||
* generate sub task name. default implement in bindingConfig. | ||
* | ||
* @param {string | ITaskInfo} task | ||
* @param {string} [defaultName] | ||
* | ||
* @memberOf ITaskContext | ||
*/ | ||
subTaskName(task: string | ITaskInfo, defaultName?: string); | ||
/** | ||
* custom print help. | ||
@@ -972,11 +991,2 @@ * | ||
addToSequence(sequence: Src[], task: ITaskInfo): Src[]; | ||
/** | ||
* generate sub task name. default implement in bindingConfig. | ||
* | ||
* @param {IAsserts | string} assert | ||
* @param {string} [defaultName] | ||
* | ||
* @memberOf ITaskContext | ||
*/ | ||
subTaskName(assert: string | IAsserts, defaultName?: string); | ||
@@ -983,0 +993,0 @@ /** |
@@ -26,4 +26,5 @@ import * as _ from 'lodash'; | ||
} else { | ||
if (_.isNumber(t.decorator.order)) { | ||
return t.decorator.order; | ||
let info = t.getInfo(); | ||
if (_.isNumber(info.order)) { | ||
return info.order; | ||
} | ||
@@ -35,8 +36,9 @@ return len; | ||
_.each(tasks, t => { | ||
if (t.decorator.watch && !config.env.watch) { | ||
let info = t.getInfo(); | ||
if (info.watch && !config.env.watch) { | ||
return; | ||
} | ||
if (!t.decorator.oper || | ||
(t.decorator.oper && (t.decorator.oper & config.oper) > 0)) { | ||
if (!info.oper || | ||
(info.oper && (info.oper & config.oper) > 0)) { | ||
let tname = t.setup(config, gulp); | ||
@@ -43,0 +45,0 @@ tname && seq.push(tname); |
@@ -134,3 +134,3 @@ import 'mocha'; | ||
expect(tk.decorator.taskName).eq('pipetask'); | ||
expect(tk.getInfo().taskName).eq('pipetask'); | ||
@@ -152,3 +152,3 @@ }) | ||
expect(tk.decorator.taskName).eq('mytest-pipetask'); | ||
expect(tk.getInfo().taskName).eq('mytest-pipetask'); | ||
@@ -155,0 +155,0 @@ }) |
@@ -17,4 +17,5 @@ import * as mocha from 'gulp-mocha'; | ||
export class TestTaskGA implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -30,4 +31,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskGB implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -45,4 +46,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskGC implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -56,4 +57,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskA implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -68,4 +69,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskE implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -145,4 +146,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskB implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -161,4 +162,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskC implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -176,4 +177,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskD implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -193,4 +194,4 @@ setup(config: ITaskContext, gulp): TaskResult { | ||
export class TestTaskW implements ITask { | ||
public decorator: ITaskInfo = {}; | ||
constructor() { | ||
getInfo(): ITaskInfo { return this.info; } | ||
constructor(private info: ITaskInfo) { | ||
} | ||
@@ -197,0 +198,0 @@ setup(config: ITaskContext, gulp): TaskResult { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
309255
43
4589