UNPKG

grunto

Version:
294 lines (279 loc) 18.5 kB
// instrument by jscoverage, do not modifly this file (function (file, lines, conds, source) { var BASE; if (typeof global === 'object') { BASE = global; } else if (typeof window === 'object') { BASE = window; } else { throw new Error('[jscoverage] unknow ENV!'); } if (BASE._$jscoverage) { BASE._$jscmd(file, 'init', lines, conds, source); return; } var cov = {}; /** * jsc(file, 'init', lines, condtions) * jsc(file, 'line', lineNum) * jsc(file, 'cond', lineNum, expr, start, offset) */ function jscmd(file, type, line, express, start, offset) { var storage; switch (type) { case 'init': if(cov[file]){ storage = cov[file]; } else { storage = []; for (var i = 0; i < line.length; i ++) { storage[line[i]] = 0; } var condition = express; var source = start; storage.condition = condition; storage.source = source; } cov[file] = storage; break; case 'line': storage = cov[file]; storage[line] ++; break; case 'cond': storage = cov[file]; storage.condition[line] ++; return express; } } BASE._$jscoverage = cov; BASE._$jscmd = jscmd; jscmd(file, 'init', lines, conds, source); })('lib/GruntOModuleContext.js', [1,3,4,5,20,43,186,21,28,29,31,32,33,24,25,62,64,69,54,58,59,65,66,89,90,92,121,81,82,83,85,86,95,110,111,98,99,103,107,117,118,132,142,144,150,135,139,145,146,147,171,177,179,180,182,166,168,174,191,188,197,199,193,194], {"23_5_22":0,"53_6_17":0,"57_6_37":0,"57_6_17":0,"57_27_16":0,"65_29_52":0,"65_84_4":0,"80_6_18":0,"84_13_24":0,"97_9_5":0,"98_24_10":0,"102_9_18":0,"106_9_32":0,"116_6_4":0,"134_6_21":0,"138_6_14":0,"146_24_39":0,"146_66_6":0,"165_6_71":0,"165_6_46":0,"165_56_21":0,"165_6_24":0,"165_34_18":0,"173_6_37":0,"187_5_21":0,"192_6_23":0,"197_28_27":0,"197_58_8":0}, ["'use strict';","","var _ = require('lodash');","var utils = require('./utils');","var path = require('path');","","/**"," * @class GruntOModuleContext"," * @property {String} CURRENT_PREFIX"," * @property {grunt} grunt"," * @property {Object} $prop$"," * @constructor"," * @param {grunt} grunt - task runner"," * @param {Object} aliases - ref of object with task aliases"," * @param {Object} refsObj - ref of tasks"," * @param {Object} config - ref of configs object"," * @param {String} prefix - current module prefix"," * @param {?Object} context - context options"," * */","var GruntOModuleContext = module.exports = function GruntOModuleContext (grunt, aliases, refsObj, config, prefix, context) {","\t_.extend(this, context);","","\tif (_.has(aliases, prefix)) {","\t\tgrunt.fail.fatal('duplicate module name \"' + prefix + '\"');","\t\treturn;","\t}","","\taliases[prefix] = [];","\trefsObj[prefix] = true;","","\tthis.CURRENT_PREFIX = prefix;","\tthis.grunt = grunt;","\tthis.$prop$ = {","\t\tnum: 0,","\t\trefs: refsObj,","\t\tgrunt: grunt,","\t\tprefix: prefix,","\t\tconfig: config,","\t\tcurrent: aliases[prefix]","\t};","};","","GruntOModuleContext.prototype = {","","\tconstructor: GruntOModuleContext,","","\t/**","\t * @public","\t * @param {String|Array} tasks - task name or array","\t * @returns {GruntOModuleContext} this","\t * */","\t$run: function $run (tasks) {","\t\tif (_.isString(tasks)) {","\t\t\ttasks = [ tasks ];","\t\t}","","\t\tif (!_.isArray(tasks) || _.isEmpty(tasks)) {","\t\t\tthis.$prop$.grunt.fail.fatal(this.$prop$.prefix + ': Invalid tasks type. Must be string or array');","\t\t\treturn this;","\t\t}","","\t\tvar that = this;","","\t\t_.each(tasks, function (task) {","\t\t\ttask = /^\\./.test(task) ? path.normalize(path.join(that.CURRENT_PREFIX, task)) : task;","\t\t\tthat.$prop$.current.push(task.replace('\\\\', '/'));","\t\t});","","\t\treturn this;","\t},","","\t/**","\t * @public","\t * @param {String} name - name of task, that will replaced","\t * @param {String} targetName - subtask name","\t * @param {function} callback - function that will call","\t * @returns {GruntOModuleContext} this","\t * */","\t$task: function $task (name, targetName, callback) {","\t\tif (_.isFunction(name)) {","\t\t\tcallback = name;","\t\t\tname = null;","\t\t\ttargetName = null;","\t\t} else if (_.isFunction(targetName)) {","\t\t\tcallback = targetName;","\t\t\ttargetName = null;","\t\t}","","\t\tvar that = this;","\t\tvar task = null;","","\t\tthis.grunto$task({","\t\t\toptions: {","\t\t\t\t$$run: function () {","\t\t\t\t\tvar taskConfig = callback.call(this);","","\t\t\t\t\tif (!name) {","\t\t\t\t\t\tthat.grunt.log.ok(taskConfig || 'done');","\t\t\t\t\t\treturn;","\t\t\t\t\t}","","\t\t\t\t\tif (taskConfig == null) {","\t\t\t\t\t\tthat.grunt.fail.fatal('Empty config for task \"' + task.ref + '\"');","\t\t\t\t\t}","","\t\t\t\t\tif (that.$prop$.config[name] == null) {","\t\t\t\t\t\tthat.$prop$.config[name] = {};","\t\t\t\t\t}","","\t\t\t\t\tthat.$prop$.config[name][task.target] = taskConfig;","\t\t\t\t\tthat.grunt.log.ok('Created config for \"' + task.ref + '\"');","\t\t\t\t}","\t\t\t}","\t\t});","","\t\tif (name) {","\t\t\ttask = this.$$taskName(name);","\t\t\tthis.$$run(task, {});","\t\t}","","\t\treturn this;","\t},","","\t/**","\t * @method","\t * @private","\t * @param {String} name - name of task","\t * @param {String} target - subtask name","\t * @returns {GruntOModuleContext} this","\t * */","\t$$taskName: function $$taskName (name, target) {","\t\tvar that = this;","","\t\tif (_.isPlainObject(name)) {","\t\t\treturn _.clone(name);","\t\t}","","\t\tif (target != null) {","\t\t\tname = name + ':' + target;","\t\t}","","\t\ttarget = this.$prop$.prefix + '/' + (++this.$prop$.num);","","\t\tname = name.replace(/^([^:]+):*(.*)$/, function ($0, $1, $2) {","\t\t\t$2 = $2.trim();","\t\t\ttarget = $2.length ? utils.joinPaths(that.$prop$.prefix, $2) : target;","\t\t\treturn $1.trim();","\t\t});","","\t\treturn {","\t\t\tname: name,","\t\t\ttarget: target,","\t\t\tref: name + ':' + target","\t\t};","\t},","","\t/**","\t * @method","\t * @private","\t * @param {String} targetName - name of task","\t * @param {String|Object|Array|Function} config - config object","\t * @returns {GruntOModuleContext} this","\t * */","\t$$run: function $$run (targetName, config) {","\t\tif (!_.isPlainObject(config) && !_.isArray(config) && !_.isFunction(config)) {","\t\t\tthis.$prop$.grunt.fail.fatal(this.$prop$.prefix + ': invalid config param of \"' + targetName + '\", must use array|object|function type');","","\t\t\treturn this;","\t\t}","","\t\tvar task = this.$$taskName(targetName);","","\t\tif (!_.has(this.$prop$.config, task.name)) {","\t\t\tthis.$prop$.config[task.name] = {};","\t\t}","","\t\tthis.$prop$.config[task.name][task.target] = config;","","\t\tthis.$prop$.refs[task.ref] = true;","\t\tthis.$prop$.current.push(task.ref);","","\t\treturn this;","\t}","};","","GruntOModuleContext.addTask = function addTask (taskName) {","\tif (!_.isString(taskName)) {","\t\tthrow new TypeError('invalid type of task name for adding. must be string');","\t}","","\tthis.prototype[taskName] = function (targetName, config) {","\t\tif (!_.isString(targetName)) {","\t\t\tconfig = targetName;","\t\t\ttargetName = '';","\t\t}","","\t\ttargetName = targetName ? taskName + ':' + targetName : taskName;","","\t\treturn this.$$run(targetName, config);","\t};","};",""]); _$jscmd("lib/GruntOModuleContext.js", "line", 1); "use strict"; _$jscmd("lib/GruntOModuleContext.js", "line", 3); var _ = require("lodash"); _$jscmd("lib/GruntOModuleContext.js", "line", 4); var utils = require("./utils"); _$jscmd("lib/GruntOModuleContext.js", "line", 5); var path = require("path"); _$jscmd("lib/GruntOModuleContext.js", "line", 20); /** * @class GruntOModuleContext * @property {String} CURRENT_PREFIX * @property {grunt} grunt * @property {Object} $prop$ * @constructor * @param {grunt} grunt - task runner * @param {Object} aliases - ref of object with task aliases * @param {Object} refsObj - ref of tasks * @param {Object} config - ref of configs object * @param {String} prefix - current module prefix * @param {?Object} context - context options * */ var GruntOModuleContext = module.exports = function GruntOModuleContext(grunt, aliases, refsObj, config, prefix, context) { _$jscmd("lib/GruntOModuleContext.js", "line", 21); _.extend(this, context); if (_$jscmd("lib/GruntOModuleContext.js", "cond", "23_5_22", _.has(aliases, prefix))) { _$jscmd("lib/GruntOModuleContext.js", "line", 24); grunt.fail.fatal('duplicate module name "' + prefix + '"'); _$jscmd("lib/GruntOModuleContext.js", "line", 25); return; } _$jscmd("lib/GruntOModuleContext.js", "line", 28); aliases[prefix] = []; _$jscmd("lib/GruntOModuleContext.js", "line", 29); refsObj[prefix] = true; _$jscmd("lib/GruntOModuleContext.js", "line", 31); this.CURRENT_PREFIX = prefix; _$jscmd("lib/GruntOModuleContext.js", "line", 32); this.grunt = grunt; _$jscmd("lib/GruntOModuleContext.js", "line", 33); this.$prop$ = { num: 0, refs: refsObj, grunt: grunt, prefix: prefix, config: config, current: aliases[prefix] }; }; _$jscmd("lib/GruntOModuleContext.js", "line", 43); GruntOModuleContext.prototype = { constructor: GruntOModuleContext, /** * @public * @param {String|Array} tasks - task name or array * @returns {GruntOModuleContext} this * */ $run: function $run(tasks) { if (_$jscmd("lib/GruntOModuleContext.js", "cond", "53_6_17", _.isString(tasks))) { _$jscmd("lib/GruntOModuleContext.js", "line", 54); tasks = [ tasks ]; } if (_$jscmd("lib/GruntOModuleContext.js", "cond", "57_6_37", _$jscmd("lib/GruntOModuleContext.js", "cond", "57_6_17", !_.isArray(tasks)) || _$jscmd("lib/GruntOModuleContext.js", "cond", "57_27_16", _.isEmpty(tasks)))) { _$jscmd("lib/GruntOModuleContext.js", "line", 58); this.$prop$.grunt.fail.fatal(this.$prop$.prefix + ": Invalid tasks type. Must be string or array"); _$jscmd("lib/GruntOModuleContext.js", "line", 59); return this; } _$jscmd("lib/GruntOModuleContext.js", "line", 62); var that = this; _$jscmd("lib/GruntOModuleContext.js", "line", 64); _.each(tasks, function(task) { _$jscmd("lib/GruntOModuleContext.js", "line", 65); task = /^\./.test(task) ? _$jscmd("lib/GruntOModuleContext.js", "cond", "65_29_52", path.normalize(path.join(that.CURRENT_PREFIX, task))) : _$jscmd("lib/GruntOModuleContext.js", "cond", "65_84_4", task); _$jscmd("lib/GruntOModuleContext.js", "line", 66); that.$prop$.current.push(task.replace("\\", "/")); }); _$jscmd("lib/GruntOModuleContext.js", "line", 69); return this; }, /** * @public * @param {String} name - name of task, that will replaced * @param {String} targetName - subtask name * @param {function} callback - function that will call * @returns {GruntOModuleContext} this * */ $task: function $task(name, targetName, callback) { if (_$jscmd("lib/GruntOModuleContext.js", "cond", "80_6_18", _.isFunction(name))) { _$jscmd("lib/GruntOModuleContext.js", "line", 81); callback = name; _$jscmd("lib/GruntOModuleContext.js", "line", 82); name = null; _$jscmd("lib/GruntOModuleContext.js", "line", 83); targetName = null; } else if (_$jscmd("lib/GruntOModuleContext.js", "cond", "84_13_24", _.isFunction(targetName))) { _$jscmd("lib/GruntOModuleContext.js", "line", 85); callback = targetName; _$jscmd("lib/GruntOModuleContext.js", "line", 86); targetName = null; } _$jscmd("lib/GruntOModuleContext.js", "line", 89); var that = this; _$jscmd("lib/GruntOModuleContext.js", "line", 90); var task = null; _$jscmd("lib/GruntOModuleContext.js", "line", 92); this.grunto$task({ options: { $$run: function() { _$jscmd("lib/GruntOModuleContext.js", "line", 95); var taskConfig = callback.call(this); if (_$jscmd("lib/GruntOModuleContext.js", "cond", "97_9_5", !name)) { _$jscmd("lib/GruntOModuleContext.js", "line", 98); that.grunt.log.ok(_$jscmd("lib/GruntOModuleContext.js", "cond", "98_24_10", taskConfig) || "done"); _$jscmd("lib/GruntOModuleContext.js", "line", 99); return; } if (_$jscmd("lib/GruntOModuleContext.js", "cond", "102_9_18", taskConfig == null)) { _$jscmd("lib/GruntOModuleContext.js", "line", 103); that.grunt.fail.fatal('Empty config for task "' + task.ref + '"'); } if (_$jscmd("lib/GruntOModuleContext.js", "cond", "106_9_32", that.$prop$.config[name] == null)) { _$jscmd("lib/GruntOModuleContext.js", "line", 107); that.$prop$.config[name] = {}; } _$jscmd("lib/GruntOModuleContext.js", "line", 110); that.$prop$.config[name][task.target] = taskConfig; _$jscmd("lib/GruntOModuleContext.js", "line", 111); that.grunt.log.ok('Created config for "' + task.ref + '"'); } } }); if (_$jscmd("lib/GruntOModuleContext.js", "cond", "116_6_4", name)) { _$jscmd("lib/GruntOModuleContext.js", "line", 117); task = this.$$taskName(name); _$jscmd("lib/GruntOModuleContext.js", "line", 118); this.$$run(task, {}); } _$jscmd("lib/GruntOModuleContext.js", "line", 121); return this; }, /** * @method * @private * @param {String} name - name of task * @param {String} target - subtask name * @returns {GruntOModuleContext} this * */ $$taskName: function $$taskName(name, target) { _$jscmd("lib/GruntOModuleContext.js", "line", 132); var that = this; if (_$jscmd("lib/GruntOModuleContext.js", "cond", "134_6_21", _.isPlainObject(name))) { _$jscmd("lib/GruntOModuleContext.js", "line", 135); return _.clone(name); } if (_$jscmd("lib/GruntOModuleContext.js", "cond", "138_6_14", target != null)) { _$jscmd("lib/GruntOModuleContext.js", "line", 139); name = name + ":" + target; } _$jscmd("lib/GruntOModuleContext.js", "line", 142); target = this.$prop$.prefix + "/" + ++this.$prop$.num; _$jscmd("lib/GruntOModuleContext.js", "line", 144); name = name.replace(/^([^:]+):*(.*)$/, function($0, $1, $2) { _$jscmd("lib/GruntOModuleContext.js", "line", 145); $2 = $2.trim(); _$jscmd("lib/GruntOModuleContext.js", "line", 146); target = $2.length ? _$jscmd("lib/GruntOModuleContext.js", "cond", "146_24_39", utils.joinPaths(that.$prop$.prefix, $2)) : _$jscmd("lib/GruntOModuleContext.js", "cond", "146_66_6", target); _$jscmd("lib/GruntOModuleContext.js", "line", 147); return $1.trim(); }); _$jscmd("lib/GruntOModuleContext.js", "line", 150); return { name: name, target: target, ref: name + ":" + target }; }, /** * @method * @private * @param {String} targetName - name of task * @param {String|Object|Array|Function} config - config object * @returns {GruntOModuleContext} this * */ $$run: function $$run(targetName, config) { if (_$jscmd("lib/GruntOModuleContext.js", "cond", "165_6_71", _$jscmd("lib/GruntOModuleContext.js", "cond", "165_6_46", _$jscmd("lib/GruntOModuleContext.js", "cond", "165_6_24", !_.isPlainObject(config)) && _$jscmd("lib/GruntOModuleContext.js", "cond", "165_34_18", !_.isArray(config))) && _$jscmd("lib/GruntOModuleContext.js", "cond", "165_56_21", !_.isFunction(config)))) { _$jscmd("lib/GruntOModuleContext.js", "line", 166); this.$prop$.grunt.fail.fatal(this.$prop$.prefix + ': invalid config param of "' + targetName + '", must use array|object|function type'); _$jscmd("lib/GruntOModuleContext.js", "line", 168); return this; } _$jscmd("lib/GruntOModuleContext.js", "line", 171); var task = this.$$taskName(targetName); if (_$jscmd("lib/GruntOModuleContext.js", "cond", "173_6_37", !_.has(this.$prop$.config, task.name))) { _$jscmd("lib/GruntOModuleContext.js", "line", 174); this.$prop$.config[task.name] = {}; } _$jscmd("lib/GruntOModuleContext.js", "line", 177); this.$prop$.config[task.name][task.target] = config; _$jscmd("lib/GruntOModuleContext.js", "line", 179); this.$prop$.refs[task.ref] = true; _$jscmd("lib/GruntOModuleContext.js", "line", 180); this.$prop$.current.push(task.ref); _$jscmd("lib/GruntOModuleContext.js", "line", 182); return this; } }; _$jscmd("lib/GruntOModuleContext.js", "line", 186); GruntOModuleContext.addTask = function addTask(taskName) { if (_$jscmd("lib/GruntOModuleContext.js", "cond", "187_5_21", !_.isString(taskName))) { _$jscmd("lib/GruntOModuleContext.js", "line", 188); throw new TypeError("invalid type of task name for adding. must be string"); } _$jscmd("lib/GruntOModuleContext.js", "line", 191); this.prototype[taskName] = function(targetName, config) { if (_$jscmd("lib/GruntOModuleContext.js", "cond", "192_6_23", !_.isString(targetName))) { _$jscmd("lib/GruntOModuleContext.js", "line", 193); config = targetName; _$jscmd("lib/GruntOModuleContext.js", "line", 194); targetName = ""; } _$jscmd("lib/GruntOModuleContext.js", "line", 197); targetName = targetName ? _$jscmd("lib/GruntOModuleContext.js", "cond", "197_28_27", taskName + ":" + targetName) : _$jscmd("lib/GruntOModuleContext.js", "cond", "197_58_8", taskName); _$jscmd("lib/GruntOModuleContext.js", "line", 199); return this.$$run(targetName, config); }; };