Sorry, the diff of this file is not supported yet
+123
| #treegulp | ||
| This is treegulp. treegulp is a tool for organizing your gulp files. | ||
| ###What does it do? | ||
| treegulp lets you describe your gulp tasks in a tree hierarchy format. | ||
| If a gulp file has any task that has a dependency on another task, then you had to list all of the dependencies for each task. | ||
| treegulp removes this minor inconvenience and figures out dependencies for you. | ||
| Consider this gulpfile: | ||
| var gulp = require('gulp'); | ||
| gulp.task('alpha', function() { | ||
| console.log('alpha'); | ||
| }); | ||
| gulp.task('alpha-alpha', ['alpha'], function() { | ||
| console.log('alpha-alpha'); | ||
| }); | ||
| gulp.task('alpha-beta', ['alpha'], function() { | ||
| console.log('alpha-beta'); | ||
| }); | ||
| gulp.task('alpha-beta-alpha', ['alpha-beta'], function() { | ||
| console.log('alpha-beta-alpha'); | ||
| }); | ||
| gulp.task('beta', function() { | ||
| console.log('beta'); | ||
| }); | ||
| gulp.task('beta-alpha', ['beta'], function() { | ||
| console.log('beta-alpha'); | ||
| }); | ||
| gulp.task('beta-alpha-alpha', ['beta-alpha'], function() { | ||
| console.log('beta-alpha-alpha'); | ||
| }); | ||
| gulp.task('beta-alpha-alpha-alpha', ['beta-alpha-alpha'], function() { | ||
| console.log('beta-alpha-alpha-alpha'); | ||
| }); | ||
| gulp.task('default', ['alpha', 'beta']); | ||
| We can rewrite this to be a little bit cleaner (subjectively) using treegulp. | ||
| Whenever task A has task B as a dependency, we can just nest task B inside task A. | ||
| Here is how the gulpfile will look with treegulp: | ||
| var treegulp = require('treegulp'); | ||
| treegulp('default | ||
| treegulp('alpha', | ||
| function() { | ||
| console.log('alpha'); | ||
| }, | ||
| treegulp('alpha-alpha', | ||
| function() { | ||
| console.log('alpha-alpha'); | ||
| } | ||
| ), | ||
| treegulp('alpha-beta', | ||
| function() { | ||
| console.log('alpha-beta'); | ||
| }, | ||
| treegulp('alpha-beta-alpha', | ||
| function() { | ||
| console.log('alpha-beta-alpha'); | ||
| } | ||
| ) | ||
| ) | ||
| ), | ||
| treegulp('beta', | ||
| function() { | ||
| console.log('beta'); | ||
| }, | ||
| treegulp('beta-alpha', | ||
| function() { | ||
| console.log('beta-alpha'); | ||
| }, | ||
| treegulp('beta-alpha-alpha', | ||
| function() { | ||
| console.log('beta-alpha-alpha'); | ||
| }, | ||
| treegulp('beta-alpha-alpha-alpha', | ||
| function() { | ||
| console.log('beta-alpha-alpha-alpha'); | ||
| } | ||
| ) | ||
| ) | ||
| ) | ||
| ) | ||
| ); | ||
| ###How does it work? | ||
| The treegulp module provides the treegulp function. | ||
| The treegulp function accepts a set of any number of arguments. | ||
| The order of the arguments doesn't matter. | ||
| The treegulp function collects all of its arguments and puts them into one of three lists: | ||
| 1. If the argument is a string, it is put into the names list and may be used as a name for the created gulp task. | ||
| 2. If the argument is an object, it is assumed (for now) to be a treegulp object that another call to treegulp returned. | ||
| It is thus added to the dependency list. This allows task nesting. | ||
| 3. If the argument is a method, it is put into the list of methods. | ||
| Each of these methods is run (in no particular order) whenever the created task runs. | ||
| If any of the arguments is an array, it puts each element of the array into one of the three lists using the same logic. | ||
| This means that these two code snippets are equivalent: | ||
| treegulp('alpha', 'do-alpha', callbackA, callbackB, callbackC); | ||
| treegulp(['alpha', 'do-alpha'], [['callbackA', ['callbackB', 'callbackC']]]); | ||
| The treegulp function returns an object that contains the three lists, named 'names', 'dependencies', and 'methods'. | ||
| ###What if you want to do it the other way around? | ||
| Coming soon! |
+123
| #treegulp | ||
| This is treegulp. treegulp is a tool for organizing your gulp files. | ||
| ###What does it do? | ||
| treegulp lets you describe your gulp tasks in a tree hierarchy format. | ||
| If a gulp file has any task that has a dependency on another task, then you had to list all of the dependencies for each task. | ||
| treegulp removes this minor inconvenience and figures out dependencies for you. | ||
| Consider this gulpfile: | ||
| var gulp = require('gulp'); | ||
| gulp.task('alpha', function() { | ||
| console.log('alpha'); | ||
| }); | ||
| gulp.task('alpha-alpha', ['alpha'], function() { | ||
| console.log('alpha-alpha'); | ||
| }); | ||
| gulp.task('alpha-beta', ['alpha'], function() { | ||
| console.log('alpha-beta'); | ||
| }); | ||
| gulp.task('alpha-beta-alpha', ['alpha-beta'], function() { | ||
| console.log('alpha-beta-alpha'); | ||
| }); | ||
| gulp.task('beta', function() { | ||
| console.log('beta'); | ||
| }); | ||
| gulp.task('beta-alpha', ['beta'], function() { | ||
| console.log('beta-alpha'); | ||
| }); | ||
| gulp.task('beta-alpha-alpha', ['beta-alpha'], function() { | ||
| console.log('beta-alpha-alpha'); | ||
| }); | ||
| gulp.task('beta-alpha-alpha-alpha', ['beta-alpha-alpha'], function() { | ||
| console.log('beta-alpha-alpha-alpha'); | ||
| }); | ||
| gulp.task('default', ['alpha', 'beta']); | ||
| We can rewrite this to be a little bit cleaner (subjectively) using treegulp. | ||
| Whenever task A has task B as a dependency, we can just nest task B inside task A. | ||
| Here is how the gulpfile will look with treegulp: | ||
| var treegulp = require('treegulp'); | ||
| treegulp('default | ||
| treegulp('alpha', | ||
| function() { | ||
| console.log('alpha'); | ||
| }, | ||
| treegulp('alpha-alpha', | ||
| function() { | ||
| console.log('alpha-alpha'); | ||
| } | ||
| ), | ||
| treegulp('alpha-beta', | ||
| function() { | ||
| console.log('alpha-beta'); | ||
| }, | ||
| treegulp('alpha-beta-alpha', | ||
| function() { | ||
| console.log('alpha-beta-alpha'); | ||
| } | ||
| ) | ||
| ) | ||
| ), | ||
| treegulp('beta', | ||
| function() { | ||
| console.log('beta'); | ||
| }, | ||
| treegulp('beta-alpha', | ||
| function() { | ||
| console.log('beta-alpha'); | ||
| }, | ||
| treegulp('beta-alpha-alpha', | ||
| function() { | ||
| console.log('beta-alpha-alpha'); | ||
| }, | ||
| treegulp('beta-alpha-alpha-alpha', | ||
| function() { | ||
| console.log('beta-alpha-alpha-alpha'); | ||
| } | ||
| ) | ||
| ) | ||
| ) | ||
| ) | ||
| ); | ||
| ###How does it work? | ||
| The treegulp module provides the treegulp function. | ||
| The treegulp function accepts a set of any number of arguments. | ||
| The order of the arguments doesn't matter. | ||
| The treegulp function collects all of its arguments and puts them into one of three lists: | ||
| 1. If the argument is a string, it is put into the names list and may be used as a name for the created gulp task. | ||
| 2. If the argument is an object, it is assumed (for now) to be a treegulp object that another call to treegulp returned. | ||
| It is thus added to the dependency list. This allows task nesting. | ||
| 3. If the argument is a method, it is put into the list of methods. | ||
| Each of these methods is run (in no particular order) whenever the created task runs. | ||
| If any of the arguments is an array, it puts each element of the array into one of the three lists using the same logic. | ||
| This means that these two code snippets are equivalent: | ||
| treegulp('alpha', 'do-alpha', callbackA, callbackB, callbackC); | ||
| treegulp(['alpha', 'do-alpha'], [['callbackA', ['callbackB', 'callbackC']]]); | ||
| The treegulp function returns an object that contains the three lists, named 'names', 'dependencies', and 'methods'. | ||
| ###What if you want to do it the other way around? | ||
| Coming soon! |
+1
-1
| { | ||
| "name": "treegulp", | ||
| "version": "0.1.0", | ||
| "version": "0.1.1", | ||
| "description": "treegulp provides a shorthand for organizing your gulp tasks into a dependency tree.", | ||
@@ -5,0 +5,0 @@ "main": "treegulp.js", |
+16
-19
@@ -5,3 +5,5 @@ var gulp = require('gulp'); | ||
| var treegulp = function() { | ||
| var i, result = {}; | ||
| var i, | ||
| args = Array.prototype.slice.call(arguments), // Make a real Array. | ||
| result = {}; | ||
| result.names = []; | ||
@@ -11,27 +13,22 @@ result.dependencies = []; | ||
| for (i = 0; i < arguments.length; ++i) { | ||
| var argument = arguments[i]; | ||
| var argument = arguments[i]; | ||
| // Have to loop primitively because 'args' may grow in the loop. | ||
| for (i = 0; i < args.length; ++i) { | ||
| var argument = args[i]; | ||
| // If the argument is a string, treat it as a name. | ||
| if (typeof argument === 'string') { | ||
| result.names.push(argument); | ||
| } | ||
| else if (typeof argument === 'object') { | ||
| // Gather the argument into a list, whatever it is. | ||
| var dependencyList; | ||
| if (Array.isArray(argument)) { | ||
| dependencyList = argument; | ||
| } | ||
| else { | ||
| dependencyList = [argument]; | ||
| } | ||
| // Add each dependency's first name to the dependencies. | ||
| for (j = 0; j < dependencyList.length; ++j) { | ||
| result.dependencies.push(dependencyList[j].names[0]); | ||
| } | ||
| } | ||
| // If it's a function, use it as a callback method. | ||
| else if (typeof argument === 'function') { | ||
| result.methods.push(argument); | ||
| } | ||
| // If it's an array, add each element into args to process later. | ||
| else if (Array.isArray(argument)) { | ||
| args = args.concat(argument); | ||
| } | ||
| // Objects are assumed to be of the form returned by this function. | ||
| else if (typeof argument === 'object') { | ||
| result.dependencies.push(argument); | ||
| } | ||
| } | ||
@@ -38,0 +35,0 @@ |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
11626
208.38%6
100%1
-50%123
Infinity%86
-2.27%