Removing Node.js packages from repo. These should be downloaded via npm.
Showing
51 changed files
with
0 additions
and
2055 deletions
1 | -Copyright (c) 2010-2014 Caolan McMahon | ||
2 | - | ||
3 | -Permission is hereby granted, free of charge, to any person obtaining a copy | ||
4 | -of this software and associated documentation files (the "Software"), to deal | ||
5 | -in the Software without restriction, including without limitation the rights | ||
6 | -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
7 | -copies of the Software, and to permit persons to whom the Software is | ||
8 | -furnished to do so, subject to the following conditions: | ||
9 | - | ||
10 | -The above copyright notice and this permission notice shall be included in | ||
11 | -all copies or substantial portions of the Software. | ||
12 | - | ||
13 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
14 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
15 | -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
16 | -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
17 | -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
18 | -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
19 | -THE SOFTWARE. |
This diff is collapsed. Click to expand it.
1 | -{ | ||
2 | - "name": "async", | ||
3 | - "repo": "caolan/async", | ||
4 | - "description": "Higher-order functions and common patterns for asynchronous code", | ||
5 | - "version": "0.1.23", | ||
6 | - "keywords": [], | ||
7 | - "dependencies": {}, | ||
8 | - "development": {}, | ||
9 | - "main": "lib/async.js", | ||
10 | - "scripts": [ "lib/async.js" ] | ||
11 | -} |
1 | -{ | ||
2 | - "name": "async", | ||
3 | - "description": "Higher-order functions and common patterns for asynchronous code", | ||
4 | - "main": "./lib/async", | ||
5 | - "author": { | ||
6 | - "name": "Caolan McMahon" | ||
7 | - }, | ||
8 | - "version": "0.9.0", | ||
9 | - "repository": { | ||
10 | - "type": "git", | ||
11 | - "url": "https://github.com/caolan/async.git" | ||
12 | - }, | ||
13 | - "bugs": { | ||
14 | - "url": "https://github.com/caolan/async/issues" | ||
15 | - }, | ||
16 | - "licenses": [ | ||
17 | - { | ||
18 | - "type": "MIT", | ||
19 | - "url": "https://github.com/caolan/async/raw/master/LICENSE" | ||
20 | - } | ||
21 | - ], | ||
22 | - "devDependencies": { | ||
23 | - "nodeunit": ">0.0.0", | ||
24 | - "uglify-js": "1.2.x", | ||
25 | - "nodelint": ">0.0.0" | ||
26 | - }, | ||
27 | - "jam": { | ||
28 | - "main": "lib/async.js", | ||
29 | - "include": [ | ||
30 | - "lib/async.js", | ||
31 | - "README.md", | ||
32 | - "LICENSE" | ||
33 | - ] | ||
34 | - }, | ||
35 | - "scripts": { | ||
36 | - "test": "nodeunit test/test-async.js" | ||
37 | - }, | ||
38 | - "homepage": "https://github.com/caolan/async", | ||
39 | - "_id": "async@0.9.0", | ||
40 | - "dist": { | ||
41 | - "shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7", | ||
42 | - "tarball": "http://registry.npmjs.org/async/-/async-0.9.0.tgz" | ||
43 | - }, | ||
44 | - "_from": "async@", | ||
45 | - "_npmVersion": "1.4.3", | ||
46 | - "_npmUser": { | ||
47 | - "name": "caolan", | ||
48 | - "email": "caolan.mcmahon@gmail.com" | ||
49 | - }, | ||
50 | - "maintainers": [ | ||
51 | - { | ||
52 | - "name": "caolan", | ||
53 | - "email": "caolan@caolanmcmahon.com" | ||
54 | - } | ||
55 | - ], | ||
56 | - "directories": {}, | ||
57 | - "_shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7", | ||
58 | - "_resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz", | ||
59 | - "readme": "ERROR: No README data found!" | ||
60 | -} |
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
1 | - | ||
2 | -/** | ||
3 | - * Module dependencies. | ||
4 | - */ | ||
5 | - | ||
6 | -var Stream = require('stream').Stream; | ||
7 | -var EventEmitter = require('events').EventEmitter; | ||
8 | -var util = require('util'); | ||
9 | - | ||
10 | -util.inherits(gm, EventEmitter); | ||
11 | - | ||
12 | -/** | ||
13 | - * Constructor. | ||
14 | - * | ||
15 | - * @param {String|Number} path - path to img source or ReadableStream or width of img to create | ||
16 | - * @param {Number} [height] - optional filename of ReadableStream or height of img to create | ||
17 | - * @param {String} [color] - optional hex background color of created img | ||
18 | - */ | ||
19 | - | ||
20 | -function gm (source, height, color) { | ||
21 | - var width; | ||
22 | - | ||
23 | - if (!(this instanceof gm)) { | ||
24 | - return new gm(source, height, color); | ||
25 | - } | ||
26 | - | ||
27 | - EventEmitter.call(this); | ||
28 | - | ||
29 | - this._options = {}; | ||
30 | - this.options(this.__proto__._options); | ||
31 | - | ||
32 | - this.data = {}; | ||
33 | - this._in = []; | ||
34 | - this._out = []; | ||
35 | - this._outputFormat = null; | ||
36 | - this._subCommand = 'convert'; | ||
37 | - | ||
38 | - if (source instanceof Stream) { | ||
39 | - this.sourceStream = source; | ||
40 | - source = height || 'unknown.jpg'; | ||
41 | - } else if (Buffer.isBuffer(source)) { | ||
42 | - this.sourceBuffer = source; | ||
43 | - source = height || 'unknown.jpg'; | ||
44 | - } else if (height) { | ||
45 | - // new images | ||
46 | - width = source; | ||
47 | - source = ""; | ||
48 | - | ||
49 | - this.in("-size", width + "x" + height); | ||
50 | - | ||
51 | - if (color) { | ||
52 | - this.in("xc:"+ color); | ||
53 | - } | ||
54 | - } | ||
55 | - | ||
56 | - if (typeof source === "string") { | ||
57 | - // then source is a path | ||
58 | - | ||
59 | - // parse out gif frame brackets from filename | ||
60 | - // since stream doesn't use source path | ||
61 | - // eg. "filename.gif[0]" | ||
62 | - var frames = source.match(/(\[.+\])$/); | ||
63 | - if (frames) { | ||
64 | - this.sourceFrames = source.substr(frames.index, frames[0].length); | ||
65 | - source = source.substr(0, frames.index); | ||
66 | - } | ||
67 | - } | ||
68 | - | ||
69 | - this.source = source; | ||
70 | - | ||
71 | - this.addSrcFormatter(function (src) { | ||
72 | - // must be first source formatter | ||
73 | - | ||
74 | - var inputFromStdin = this.sourceStream || this.sourceBuffer; | ||
75 | - var ret = inputFromStdin ? '-' : this.source; | ||
76 | - | ||
77 | - if (ret && this.sourceFrames) ret += this.sourceFrames; | ||
78 | - | ||
79 | - src.length = 0; | ||
80 | - src[0] = ret; | ||
81 | - }); | ||
82 | -} | ||
83 | - | ||
84 | -/** | ||
85 | - * Subclasses the gm constructor with custom options. | ||
86 | - * | ||
87 | - * @param {options} options | ||
88 | - * @return {gm} the subclasses gm constructor | ||
89 | - */ | ||
90 | - | ||
91 | -var parent = gm; | ||
92 | -gm.subClass = function subClass (options) { | ||
93 | - function gm (source, height, color) { | ||
94 | - if (!(this instanceof parent)) { | ||
95 | - return new gm(source, height, color); | ||
96 | - } | ||
97 | - | ||
98 | - parent.call(this, source, height, color); | ||
99 | - } | ||
100 | - | ||
101 | - gm.prototype.__proto__ = parent.prototype; | ||
102 | - gm.prototype._options = {}; | ||
103 | - gm.prototype.options(options); | ||
104 | - | ||
105 | - return gm; | ||
106 | -} | ||
107 | - | ||
108 | -/** | ||
109 | - * Augment the prototype. | ||
110 | - */ | ||
111 | - | ||
112 | -require("./lib/options")(gm.prototype); | ||
113 | -require("./lib/getters")(gm); | ||
114 | -require("./lib/args")(gm.prototype); | ||
115 | -require("./lib/drawing")(gm.prototype); | ||
116 | -require("./lib/convenience")(gm.prototype); | ||
117 | -require("./lib/command")(gm.prototype); | ||
118 | -require("./lib/compare")(gm.prototype); | ||
119 | -require("./lib/composite")(gm.prototype); | ||
120 | - | ||
121 | -/** | ||
122 | - * Expose. | ||
123 | - */ | ||
124 | - | ||
125 | -module.exports = exports = gm; | ||
126 | -module.exports.utils = require('./lib/utils'); | ||
127 | -module.exports.compare = require('./lib/compare')(); | ||
128 | -module.exports.version = JSON.parse( | ||
129 | - require('fs').readFileSync(__dirname + '/package.json', 'utf8') | ||
130 | -).version; | ||
131 | - |
1 | -# Compiled source # | ||
2 | -################### | ||
3 | -*.com | ||
4 | -*.class | ||
5 | -*.dll | ||
6 | -*.exe | ||
7 | -*.o | ||
8 | -*.so | ||
9 | - | ||
10 | -# Packages # | ||
11 | -############ | ||
12 | -# it's better to unpack these files and commit the raw source | ||
13 | -# git has its own built in compression methods | ||
14 | -*.7z | ||
15 | -*.dmg | ||
16 | -*.gz | ||
17 | -*.iso | ||
18 | -*.jar | ||
19 | -*.rar | ||
20 | -*.tar | ||
21 | -*.zip | ||
22 | - | ||
23 | -# Logs and databases # | ||
24 | -###################### | ||
25 | -*.log | ||
26 | -*.sql | ||
27 | -*.sqlite | ||
28 | - | ||
29 | -# OS generated files # | ||
30 | -###################### | ||
31 | -.DS_Store* | ||
32 | -ehthumbs.db | ||
33 | -Icon? | ||
34 | -Thumbs.db | ||
35 | - | ||
36 | -# Node.js # | ||
37 | -########### | ||
38 | -lib-cov | ||
39 | -*.seed | ||
40 | -*.log | ||
41 | -*.csv | ||
42 | -*.dat | ||
43 | -*.out | ||
44 | -*.pid | ||
45 | -*.gz | ||
46 | - | ||
47 | -pids | ||
48 | -logs | ||
49 | -results | ||
50 | - | ||
51 | -node_modules | ||
52 | -npm-debug.log | ||
53 | - | ||
54 | -# Components # | ||
55 | -############## | ||
56 | - | ||
57 | -/build | ||
58 | -/components | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -# Array Series [![Build Status](https://travis-ci.org/component/array-parallel.png)](https://travis-ci.org/component/array-parallel) | ||
2 | - | ||
3 | -Call an array of asynchronous functions in parallel | ||
4 | - | ||
5 | -### API | ||
6 | - | ||
7 | -#### parallel(fns[, context[, callback]]) | ||
8 | - | ||
9 | -```js | ||
10 | -var parallel = require('array-parallel') | ||
11 | - | ||
12 | -parallel([ | ||
13 | - function (done) { | ||
14 | - done() | ||
15 | - } | ||
16 | -], this, function (err) { | ||
17 | - | ||
18 | -}) | ||
19 | -``` | ||
20 | - | ||
21 | -#### fns | ||
22 | - | ||
23 | -`fns` is an array of functions to call in parallel. | ||
24 | -The argument signature should be: | ||
25 | - | ||
26 | -```js | ||
27 | -function (done) { | ||
28 | - done(new Error()) | ||
29 | - // or | ||
30 | - done(null, result) | ||
31 | -} | ||
32 | -``` | ||
33 | - | ||
34 | -That is, each function should only take a `done` as an argument. | ||
35 | -Each callback should only take an `Error` as the first argument, | ||
36 | -or a value as the second. | ||
37 | - | ||
38 | -#### context | ||
39 | - | ||
40 | -Optional context to pass to each `fn`. | ||
41 | -Basically `fn.call(context, done)`. | ||
42 | - | ||
43 | -#### callback(err, results) | ||
44 | - | ||
45 | -```js | ||
46 | -function (err, results) { | ||
47 | - | ||
48 | -} | ||
49 | -``` | ||
50 | - | ||
51 | -Only argument is an `Error` argument. | ||
52 | -It will be the first error retrieved from all the `fns`. | ||
53 | -`results` will be an array of results from each `fn`, | ||
54 | -thus this could be considered an asynchronous version of `[].map`. | ||
55 | - | ||
56 | -### License | ||
57 | - | ||
58 | -The MIT License (MIT) | ||
59 | - | ||
60 | -Copyright (c) 2013 Jonathan Ong me@jongleberry.com | ||
61 | - | ||
62 | -Permission is hereby granted, free of charge, to any person obtaining a copy | ||
63 | -of this software and associated documentation files (the "Software"), to deal | ||
64 | -in the Software without restriction, including without limitation the rights | ||
65 | -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
66 | -copies of the Software, and to permit persons to whom the Software is | ||
67 | -furnished to do so, subject to the following conditions: | ||
68 | - | ||
69 | -The above copyright notice and this permission notice shall be included in | ||
70 | -all copies or substantial portions of the Software. | ||
71 | - | ||
72 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
73 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
74 | -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
75 | -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
76 | -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
77 | -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
78 | -THE SOFTWARE. |
samples/s3/examplefolder/node_modules/gm/node_modules/array-parallel/component.json
deleted
100644 → 0
1 | -{ | ||
2 | - "name": "array-parallel", | ||
3 | - "description": "Call an array of asynchronous functions in parallel", | ||
4 | - "repo": "array-parallel", | ||
5 | - "version": "0.1.3", | ||
6 | - "main": "index.js", | ||
7 | - "scripts": [ | ||
8 | - "index.js" | ||
9 | - ], | ||
10 | - "license": "MIT" | ||
11 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -module.exports = function parallel(fns, context, callback) { | ||
2 | - if (!callback) { | ||
3 | - if (typeof context === 'function') { | ||
4 | - callback = context | ||
5 | - context = null | ||
6 | - } else { | ||
7 | - callback = noop | ||
8 | - } | ||
9 | - } | ||
10 | - | ||
11 | - var pending = fns && fns.length | ||
12 | - if (!pending) return callback(null, []); | ||
13 | - | ||
14 | - var finished = false | ||
15 | - var results = new Array(pending) | ||
16 | - | ||
17 | - fns.forEach(context ? function (fn, i) { | ||
18 | - fn.call(context, maybeDone(i)) | ||
19 | - } : function (fn, i) { | ||
20 | - fn(maybeDone(i)) | ||
21 | - }) | ||
22 | - | ||
23 | - function maybeDone(i) { | ||
24 | - return function (err, result) { | ||
25 | - if (finished) return; | ||
26 | - | ||
27 | - if (err) { | ||
28 | - callback(err, results) | ||
29 | - finished = true | ||
30 | - return | ||
31 | - } | ||
32 | - | ||
33 | - results[i] = result | ||
34 | - | ||
35 | - if (!--pending) callback(null, results); | ||
36 | - } | ||
37 | - } | ||
38 | -} | ||
39 | - | ||
40 | -function noop() {} |
samples/s3/examplefolder/node_modules/gm/node_modules/array-parallel/package.json
deleted
100644 → 0
1 | -{ | ||
2 | - "name": "array-parallel", | ||
3 | - "description": "Call an array of asynchronous functions in parallel", | ||
4 | - "version": "0.1.3", | ||
5 | - "scripts": { | ||
6 | - "test": "node test" | ||
7 | - }, | ||
8 | - "author": { | ||
9 | - "name": "Jonathan Ong", | ||
10 | - "email": "me@jongleberry.com", | ||
11 | - "url": "http://jongleberry.com" | ||
12 | - }, | ||
13 | - "repository": { | ||
14 | - "type": "git", | ||
15 | - "url": "https://github.com/component/array-parallel.git" | ||
16 | - }, | ||
17 | - "bugs": { | ||
18 | - "url": "https://github.com/component/array-parallel/issues", | ||
19 | - "email": "me@jongleberry.com" | ||
20 | - }, | ||
21 | - "license": "MIT", | ||
22 | - "homepage": "https://github.com/component/array-parallel", | ||
23 | - "_id": "array-parallel@0.1.3", | ||
24 | - "dist": { | ||
25 | - "shasum": "8f785308926ed5aa478c47e64d1b334b6c0c947d", | ||
26 | - "tarball": "http://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz" | ||
27 | - }, | ||
28 | - "_from": "array-parallel@~0.1.0", | ||
29 | - "_npmVersion": "1.3.17", | ||
30 | - "_npmUser": { | ||
31 | - "name": "jongleberry", | ||
32 | - "email": "jonathanrichardong@gmail.com" | ||
33 | - }, | ||
34 | - "maintainers": [ | ||
35 | - { | ||
36 | - "name": "jongleberry", | ||
37 | - "email": "jonathanrichardong@gmail.com" | ||
38 | - } | ||
39 | - ], | ||
40 | - "directories": {}, | ||
41 | - "_shasum": "8f785308926ed5aa478c47e64d1b334b6c0c947d", | ||
42 | - "_resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz" | ||
43 | -} |
1 | -var assert = require('assert') | ||
2 | -var parallel = require('./') | ||
3 | - | ||
4 | -var a, b, c | ||
5 | -parallel([ | ||
6 | - function (done) { | ||
7 | - setTimeout(function () { | ||
8 | - done(null, a = 0) | ||
9 | - }, 5) | ||
10 | - }, | ||
11 | - function (done) { | ||
12 | - setTimeout(function () { | ||
13 | - done(null, b = 1) | ||
14 | - }, 10) | ||
15 | - }, | ||
16 | - function (done) { | ||
17 | - setTimeout(function () { | ||
18 | - done(null, c = 2) | ||
19 | - }, 15) | ||
20 | - } | ||
21 | -], function (err, results) { | ||
22 | - assert.equal(a, 0) | ||
23 | - assert.equal(b, 1) | ||
24 | - assert.equal(c, 2) | ||
25 | - | ||
26 | - assert.deepEqual(results, [0, 1, 2]) | ||
27 | -}) | ||
28 | - | ||
29 | -var d, e | ||
30 | -parallel([ | ||
31 | - function (done) { | ||
32 | - setTimeout(function () { | ||
33 | - d = 1 | ||
34 | - done(new Error('message')) | ||
35 | - }, 5) | ||
36 | - }, | ||
37 | - function (done) { | ||
38 | - setTimeout(function () { | ||
39 | - e = 2 | ||
40 | - done() | ||
41 | - }, 10) | ||
42 | - } | ||
43 | -], function (err) { | ||
44 | - assert.equal(err.message, 'message') | ||
45 | - assert.equal(d, 1) | ||
46 | - assert.equal(e, undefined) | ||
47 | -}) | ||
48 | - | ||
49 | -var context = 'hello' | ||
50 | -parallel([function (done) { | ||
51 | - assert.equal(this, context) | ||
52 | -}], context) | ||
53 | - | ||
54 | -var f | ||
55 | -parallel([function (done) { | ||
56 | - f = true | ||
57 | - done() | ||
58 | -}]) | ||
59 | - | ||
60 | -process.nextTick(function () { | ||
61 | - assert.equal(f, true) | ||
62 | -}) | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -# Compiled source # | ||
2 | -################### | ||
3 | -*.com | ||
4 | -*.class | ||
5 | -*.dll | ||
6 | -*.exe | ||
7 | -*.o | ||
8 | -*.so | ||
9 | - | ||
10 | -# Packages # | ||
11 | -############ | ||
12 | -# it's better to unpack these files and commit the raw source | ||
13 | -# git has its own built in compression methods | ||
14 | -*.7z | ||
15 | -*.dmg | ||
16 | -*.gz | ||
17 | -*.iso | ||
18 | -*.jar | ||
19 | -*.rar | ||
20 | -*.tar | ||
21 | -*.zip | ||
22 | - | ||
23 | -# Logs and databases # | ||
24 | -###################### | ||
25 | -*.log | ||
26 | -*.sql | ||
27 | -*.sqlite | ||
28 | - | ||
29 | -# OS generated files # | ||
30 | -###################### | ||
31 | -.DS_Store* | ||
32 | -ehthumbs.db | ||
33 | -Icon? | ||
34 | -Thumbs.db | ||
35 | - | ||
36 | -# Node.js # | ||
37 | -########### | ||
38 | -lib-cov | ||
39 | -*.seed | ||
40 | -*.log | ||
41 | -*.csv | ||
42 | -*.dat | ||
43 | -*.out | ||
44 | -*.pid | ||
45 | -*.gz | ||
46 | - | ||
47 | -pids | ||
48 | -logs | ||
49 | -results | ||
50 | - | ||
51 | -node_modules | ||
52 | -npm-debug.log | ||
53 | - | ||
54 | -# Components # | ||
55 | -############## | ||
56 | - | ||
57 | -/build | ||
58 | -/components | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -# Array Series [![Build Status](https://travis-ci.org/component/array-series.png)](https://travis-ci.org/component/array-series) | ||
2 | - | ||
3 | -Call an array of asynchronous functions in series | ||
4 | - | ||
5 | -### API | ||
6 | - | ||
7 | -#### series(fns[, context[, callback]]) | ||
8 | - | ||
9 | -```js | ||
10 | -var series = require('array-series') | ||
11 | - | ||
12 | -series([ | ||
13 | - function (done) { | ||
14 | - done() | ||
15 | - } | ||
16 | -], this, function (err) { | ||
17 | - | ||
18 | -}) | ||
19 | -``` | ||
20 | - | ||
21 | -#### fns | ||
22 | - | ||
23 | -`fns` is an array of functions to call in series. | ||
24 | -The argument signature should be: | ||
25 | - | ||
26 | -```js | ||
27 | -function (done) { | ||
28 | - done(new Error()) | ||
29 | - // or | ||
30 | - done() | ||
31 | -} | ||
32 | -``` | ||
33 | - | ||
34 | -That is, each function should only take a `done` as an argument. | ||
35 | -Each callback should only take an optional `Error` as an argument. | ||
36 | - | ||
37 | -#### context | ||
38 | - | ||
39 | -Optional context to pass to each `fn`. | ||
40 | -Basically `fn.call(context, done)`. | ||
41 | - | ||
42 | -#### callback(err) | ||
43 | - | ||
44 | -```js | ||
45 | -function (err) { | ||
46 | - | ||
47 | -} | ||
48 | -``` | ||
49 | - | ||
50 | -Only argument is an `Error` argument. | ||
51 | -It will return the first error in the series of functions that returns an error, | ||
52 | -and no function after will be called. | ||
53 | - | ||
54 | -### License | ||
55 | - | ||
56 | -The MIT License (MIT) | ||
57 | - | ||
58 | -Copyright (c) 2013 Jonathan Ong me@jongleberry.com | ||
59 | - | ||
60 | -Permission is hereby granted, free of charge, to any person obtaining a copy | ||
61 | -of this software and associated documentation files (the "Software"), to deal | ||
62 | -in the Software without restriction, including without limitation the rights | ||
63 | -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
64 | -copies of the Software, and to permit persons to whom the Software is | ||
65 | -furnished to do so, subject to the following conditions: | ||
66 | - | ||
67 | -The above copyright notice and this permission notice shall be included in | ||
68 | -all copies or substantial portions of the Software. | ||
69 | - | ||
70 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
71 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
72 | -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
73 | -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
74 | -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
75 | -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
76 | -THE SOFTWARE. | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
samples/s3/examplefolder/node_modules/gm/node_modules/array-series/component.json
deleted
100644 → 0
1 | -{ | ||
2 | - "name": "array-series", | ||
3 | - "description": "Call an array of asynchronous functions in series", | ||
4 | - "repo": "component/array-series", | ||
5 | - "version": "0.1.5", | ||
6 | - "main": "index.js", | ||
7 | - "scripts": [ | ||
8 | - "index.js" | ||
9 | - ], | ||
10 | - "license": "MIT" | ||
11 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -module.exports = function series(fns, context, callback) { | ||
2 | - if (!callback) { | ||
3 | - if (typeof context === 'function') { | ||
4 | - callback = context | ||
5 | - context = null | ||
6 | - } else { | ||
7 | - callback = noop | ||
8 | - } | ||
9 | - } | ||
10 | - | ||
11 | - if (!(fns && fns.length)) return callback(); | ||
12 | - | ||
13 | - fns = fns.slice(0) | ||
14 | - | ||
15 | - var call = context | ||
16 | - ? function () { | ||
17 | - fns.length | ||
18 | - ? fns.shift().call(context, next) | ||
19 | - : callback() | ||
20 | - } | ||
21 | - : function () { | ||
22 | - fns.length | ||
23 | - ? fns.shift()(next) | ||
24 | - : callback() | ||
25 | - } | ||
26 | - | ||
27 | - call() | ||
28 | - | ||
29 | - function next(err) { | ||
30 | - err ? callback(err) : call() | ||
31 | - } | ||
32 | -} | ||
33 | - | ||
34 | -function noop() {} |
1 | -{ | ||
2 | - "name": "array-series", | ||
3 | - "description": "Call an array of asynchronous functions in series", | ||
4 | - "version": "0.1.5", | ||
5 | - "scripts": { | ||
6 | - "test": "node test" | ||
7 | - }, | ||
8 | - "author": { | ||
9 | - "name": "Jonathan Ong", | ||
10 | - "email": "me@jongleberry.com", | ||
11 | - "url": "http://jongleberry.com" | ||
12 | - }, | ||
13 | - "repository": { | ||
14 | - "type": "git", | ||
15 | - "url": "https://github.com/component/array-series.git" | ||
16 | - }, | ||
17 | - "bugs": { | ||
18 | - "url": "https://github.com/component/array-series/issues", | ||
19 | - "email": "me@jongleberry.com" | ||
20 | - }, | ||
21 | - "license": "MIT", | ||
22 | - "homepage": "https://github.com/component/array-series", | ||
23 | - "_id": "array-series@0.1.5", | ||
24 | - "dist": { | ||
25 | - "shasum": "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f", | ||
26 | - "tarball": "http://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz" | ||
27 | - }, | ||
28 | - "_from": "array-series@~0.1.0", | ||
29 | - "_npmVersion": "1.3.17", | ||
30 | - "_npmUser": { | ||
31 | - "name": "jongleberry", | ||
32 | - "email": "jonathanrichardong@gmail.com" | ||
33 | - }, | ||
34 | - "maintainers": [ | ||
35 | - { | ||
36 | - "name": "jongleberry", | ||
37 | - "email": "jonathanrichardong@gmail.com" | ||
38 | - } | ||
39 | - ], | ||
40 | - "directories": {}, | ||
41 | - "_shasum": "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f", | ||
42 | - "_resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz" | ||
43 | -} |
1 | -var assert = require('assert') | ||
2 | -var series = require('./') | ||
3 | - | ||
4 | -var a, b, c | ||
5 | - | ||
6 | -series([ | ||
7 | - function (done) { | ||
8 | - a = 1 | ||
9 | - process.nextTick(done) | ||
10 | - check('a') | ||
11 | - }, | ||
12 | - function (done) { | ||
13 | - b = 2 | ||
14 | - process.nextTick(done) | ||
15 | - check('b') | ||
16 | - }, | ||
17 | - function (done) { | ||
18 | - c = 3 | ||
19 | - process.nextTick(done) | ||
20 | - check('c') | ||
21 | - } | ||
22 | -], function (err) { | ||
23 | - assert.ifError(err) | ||
24 | - assert.equal(a, 1) | ||
25 | - assert.equal(b, 2) | ||
26 | - assert.equal(c, 3) | ||
27 | -}) | ||
28 | - | ||
29 | -function check(x) { | ||
30 | - switch (x) { | ||
31 | - case 'a': | ||
32 | - assert.equal(a, 1) | ||
33 | - assert.equal(b, undefined) | ||
34 | - assert.equal(c, undefined) | ||
35 | - break | ||
36 | - case 'b': | ||
37 | - assert.equal(a, 1) | ||
38 | - assert.equal(b, 2) | ||
39 | - assert.equal(c, undefined) | ||
40 | - break | ||
41 | - case 'c': | ||
42 | - assert.equal(a, 1) | ||
43 | - assert.equal(b, 2) | ||
44 | - assert.equal(c, 3) | ||
45 | - break | ||
46 | - } | ||
47 | -} | ||
48 | - | ||
49 | -var context = 'hello' | ||
50 | -series([function (done) { | ||
51 | - assert.equal(this, context) | ||
52 | - done() | ||
53 | -}], context) | ||
54 | - | ||
55 | -var finished | ||
56 | -series([], function (err) { | ||
57 | - finished = true | ||
58 | -}) | ||
59 | - | ||
60 | -process.nextTick(function () { | ||
61 | - if (!finished) | ||
62 | - throw new Error('Failed with no functions.'); | ||
63 | -}) | ||
64 | - | ||
65 | -var r, d, o | ||
66 | -series([ | ||
67 | - function (done) { | ||
68 | - r = 1 | ||
69 | - process.nextTick(done) | ||
70 | - }, | ||
71 | - function (done) { | ||
72 | - d = 0 | ||
73 | - process.nextTick(function () { | ||
74 | - done(new Error('message')) | ||
75 | - }) | ||
76 | - }, | ||
77 | - function (done) { | ||
78 | - o = 0 | ||
79 | - process.nextTick(done) | ||
80 | - } | ||
81 | -], function (err) { | ||
82 | - assert.equal(err.message, 'message') | ||
83 | - assert.equal(r, 1) | ||
84 | - assert.equal(d, 0) | ||
85 | - assert.equal(o, undefined) | ||
86 | -}) | ||
87 | - | ||
88 | -console.log('Array series tests pass!') | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | - | ||
2 | -0.7.0 / 2012-05-04 | ||
3 | -================== | ||
4 | - | ||
5 | - * Added .component to package.json | ||
6 | - * Added debug.component.js build | ||
7 | - | ||
8 | -0.6.0 / 2012-03-16 | ||
9 | -================== | ||
10 | - | ||
11 | - * Added support for "-" prefix in DEBUG [Vinay Pulim] | ||
12 | - * Added `.enabled` flag to the node version [TooTallNate] | ||
13 | - | ||
14 | -0.5.0 / 2012-02-02 | ||
15 | -================== | ||
16 | - | ||
17 | - * Added: humanize diffs. Closes #8 | ||
18 | - * Added `debug.disable()` to the CS variant | ||
19 | - * Removed padding. Closes #10 | ||
20 | - * Fixed: persist client-side variant again. Closes #9 | ||
21 | - | ||
22 | -0.4.0 / 2012-02-01 | ||
23 | -================== | ||
24 | - | ||
25 | - * Added browser variant support for older browsers [TooTallNate] | ||
26 | - * Added `debug.enable('project:*')` to browser variant [TooTallNate] | ||
27 | - * Added padding to diff (moved it to the right) | ||
28 | - | ||
29 | -0.3.0 / 2012-01-26 | ||
30 | -================== | ||
31 | - | ||
32 | - * Added millisecond diff when isatty, otherwise UTC string | ||
33 | - | ||
34 | -0.2.0 / 2012-01-22 | ||
35 | -================== | ||
36 | - | ||
37 | - * Added wildcard support | ||
38 | - | ||
39 | -0.1.0 / 2011-12-02 | ||
40 | -================== | ||
41 | - | ||
42 | - * Added: remove colors unless stderr isatty [TooTallNate] | ||
43 | - | ||
44 | -0.0.1 / 2010-01-03 | ||
45 | -================== | ||
46 | - | ||
47 | - * Initial release |
1 | - | ||
2 | -# debug | ||
3 | - | ||
4 | - tiny node.js debugging utility. | ||
5 | - | ||
6 | -## Installation | ||
7 | - | ||
8 | -``` | ||
9 | -$ npm install debug | ||
10 | -``` | ||
11 | - | ||
12 | -## Example | ||
13 | - | ||
14 | - This module is modelled after node core's debugging technique, allowing you to enable one or more topic-specific debugging functions, for example core does the following within many modules: | ||
15 | - | ||
16 | -```js | ||
17 | -var debug; | ||
18 | -if (process.env.NODE_DEBUG && /cluster/.test(process.env.NODE_DEBUG)) { | ||
19 | - debug = function(x) { | ||
20 | - var prefix = process.pid + ',' + | ||
21 | - (process.env.NODE_WORKER_ID ? 'Worker' : 'Master'); | ||
22 | - console.error(prefix, x); | ||
23 | - }; | ||
24 | -} else { | ||
25 | - debug = function() { }; | ||
26 | -} | ||
27 | -``` | ||
28 | - | ||
29 | - This concept is extremely simple but it works well. With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. | ||
30 | - | ||
31 | -Example _app.js_: | ||
32 | - | ||
33 | -```js | ||
34 | -var debug = require('debug')('http') | ||
35 | - , http = require('http') | ||
36 | - , name = 'My App'; | ||
37 | - | ||
38 | -// fake app | ||
39 | - | ||
40 | -debug('booting %s', name); | ||
41 | - | ||
42 | -http.createServer(function(req, res){ | ||
43 | - debug(req.method + ' ' + req.url); | ||
44 | - res.end('hello\n'); | ||
45 | -}).listen(3000, function(){ | ||
46 | - debug('listening'); | ||
47 | -}); | ||
48 | - | ||
49 | -// fake worker of some kind | ||
50 | - | ||
51 | -require('./worker'); | ||
52 | -``` | ||
53 | - | ||
54 | -Example _worker.js_: | ||
55 | - | ||
56 | -```js | ||
57 | -var debug = require('debug')('worker'); | ||
58 | - | ||
59 | -setInterval(function(){ | ||
60 | - debug('doing some work'); | ||
61 | -}, 1000); | ||
62 | -``` | ||
63 | - | ||
64 | - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: | ||
65 | - | ||
66 | - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) | ||
67 | - | ||
68 | - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) | ||
69 | - | ||
70 | -## Millisecond diff | ||
71 | - | ||
72 | - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. | ||
73 | - | ||
74 | - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) | ||
75 | - | ||
76 | - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: | ||
77 | - | ||
78 | - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) | ||
79 | - | ||
80 | -## Conventions | ||
81 | - | ||
82 | - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". | ||
83 | - | ||
84 | -## Wildcards | ||
85 | - | ||
86 | - The "*" character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect.compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. | ||
87 | - | ||
88 | - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=* -connect:*` would include all debuggers except those starting with "connect:". | ||
89 | - | ||
90 | -## Browser support | ||
91 | - | ||
92 | - Debug works in the browser as well, currently persisted by `localStorage`. For example if you have `worker:a` and `worker:b` as shown below, and wish to debug both type `debug.enable('worker:*')` in the console and refresh the page, this will remain until you disable with `debug.disable()`. | ||
93 | - | ||
94 | -```js | ||
95 | -a = debug('worker:a'); | ||
96 | -b = debug('worker:b'); | ||
97 | - | ||
98 | -setInterval(function(){ | ||
99 | - a('doing some work'); | ||
100 | -}, 1000); | ||
101 | - | ||
102 | -setInterval(function(){ | ||
103 | - a('doing some work'); | ||
104 | -}, 1200); | ||
105 | -``` | ||
106 | - | ||
107 | -## License | ||
108 | - | ||
109 | -(The MIT License) | ||
110 | - | ||
111 | -Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca> | ||
112 | - | ||
113 | -Permission is hereby granted, free of charge, to any person obtaining | ||
114 | -a copy of this software and associated documentation files (the | ||
115 | -'Software'), to deal in the Software without restriction, including | ||
116 | -without limitation the rights to use, copy, modify, merge, publish, | ||
117 | -distribute, sublicense, and/or sell copies of the Software, and to | ||
118 | -permit persons to whom the Software is furnished to do so, subject to | ||
119 | -the following conditions: | ||
120 | - | ||
121 | -The above copyright notice and this permission notice shall be | ||
122 | -included in all copies or substantial portions of the Software. | ||
123 | - | ||
124 | -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | ||
125 | -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
126 | -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
127 | -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||
128 | -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
129 | -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
130 | -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -;(function(){ | ||
2 | - | ||
3 | -/** | ||
4 | - * Create a debugger with the given `name`. | ||
5 | - * | ||
6 | - * @param {String} name | ||
7 | - * @return {Type} | ||
8 | - * @api public | ||
9 | - */ | ||
10 | - | ||
11 | -function debug(name) { | ||
12 | - if (!debug.enabled(name)) return function(){}; | ||
13 | - | ||
14 | - return function(fmt){ | ||
15 | - var curr = new Date; | ||
16 | - var ms = curr - (debug[name] || curr); | ||
17 | - debug[name] = curr; | ||
18 | - | ||
19 | - fmt = name | ||
20 | - + ' ' | ||
21 | - + fmt | ||
22 | - + ' +' + debug.humanize(ms); | ||
23 | - | ||
24 | - // This hackery is required for IE8 | ||
25 | - // where `console.log` doesn't have 'apply' | ||
26 | - window.console | ||
27 | - && console.log | ||
28 | - && Function.prototype.apply.call(console.log, console, arguments); | ||
29 | - } | ||
30 | -} | ||
31 | - | ||
32 | -/** | ||
33 | - * The currently active debug mode names. | ||
34 | - */ | ||
35 | - | ||
36 | -debug.names = []; | ||
37 | -debug.skips = []; | ||
38 | - | ||
39 | -/** | ||
40 | - * Enables a debug mode by name. This can include modes | ||
41 | - * separated by a colon and wildcards. | ||
42 | - * | ||
43 | - * @param {String} name | ||
44 | - * @api public | ||
45 | - */ | ||
46 | - | ||
47 | -debug.enable = function(name) { | ||
48 | - localStorage.debug = name; | ||
49 | - | ||
50 | - var split = (name || '').split(/[\s,]+/) | ||
51 | - , len = split.length; | ||
52 | - | ||
53 | - for (var i = 0; i < len; i++) { | ||
54 | - name = split[i].replace('*', '.*?'); | ||
55 | - if (name[0] === '-') { | ||
56 | - debug.skips.push(new RegExp('^' + name.substr(1) + '$')); | ||
57 | - } | ||
58 | - else { | ||
59 | - debug.names.push(new RegExp('^' + name + '$')); | ||
60 | - } | ||
61 | - } | ||
62 | -}; | ||
63 | - | ||
64 | -/** | ||
65 | - * Disable debug output. | ||
66 | - * | ||
67 | - * @api public | ||
68 | - */ | ||
69 | - | ||
70 | -debug.disable = function(){ | ||
71 | - debug.enable(''); | ||
72 | -}; | ||
73 | - | ||
74 | -/** | ||
75 | - * Humanize the given `ms`. | ||
76 | - * | ||
77 | - * @param {Number} m | ||
78 | - * @return {String} | ||
79 | - * @api private | ||
80 | - */ | ||
81 | - | ||
82 | -debug.humanize = function(ms) { | ||
83 | - var sec = 1000 | ||
84 | - , min = 60 * 1000 | ||
85 | - , hour = 60 * min; | ||
86 | - | ||
87 | - if (ms >= hour) return (ms / hour).toFixed(1) + 'h'; | ||
88 | - if (ms >= min) return (ms / min).toFixed(1) + 'm'; | ||
89 | - if (ms >= sec) return (ms / sec | 0) + 's'; | ||
90 | - return ms + 'ms'; | ||
91 | -}; | ||
92 | - | ||
93 | -/** | ||
94 | - * Returns true if the given mode name is enabled, false otherwise. | ||
95 | - * | ||
96 | - * @param {String} name | ||
97 | - * @return {Boolean} | ||
98 | - * @api public | ||
99 | - */ | ||
100 | - | ||
101 | -debug.enabled = function(name) { | ||
102 | - for (var i = 0, len = debug.skips.length; i < len; i++) { | ||
103 | - if (debug.skips[i].test(name)) { | ||
104 | - return false; | ||
105 | - } | ||
106 | - } | ||
107 | - for (var i = 0, len = debug.names.length; i < len; i++) { | ||
108 | - if (debug.names[i].test(name)) { | ||
109 | - return true; | ||
110 | - } | ||
111 | - } | ||
112 | - return false; | ||
113 | -}; | ||
114 | - | ||
115 | -// persist | ||
116 | - | ||
117 | -if (window.localStorage) debug.enable(localStorage.debug); | ||
118 | - module.exports = debug; | ||
119 | - | ||
120 | -})(); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | - | ||
2 | -/** | ||
3 | - * Create a debugger with the given `name`. | ||
4 | - * | ||
5 | - * @param {String} name | ||
6 | - * @return {Type} | ||
7 | - * @api public | ||
8 | - */ | ||
9 | - | ||
10 | -function debug(name) { | ||
11 | - if (!debug.enabled(name)) return function(){}; | ||
12 | - | ||
13 | - return function(fmt){ | ||
14 | - var curr = new Date; | ||
15 | - var ms = curr - (debug[name] || curr); | ||
16 | - debug[name] = curr; | ||
17 | - | ||
18 | - fmt = name | ||
19 | - + ' ' | ||
20 | - + fmt | ||
21 | - + ' +' + debug.humanize(ms); | ||
22 | - | ||
23 | - // This hackery is required for IE8 | ||
24 | - // where `console.log` doesn't have 'apply' | ||
25 | - window.console | ||
26 | - && console.log | ||
27 | - && Function.prototype.apply.call(console.log, console, arguments); | ||
28 | - } | ||
29 | -} | ||
30 | - | ||
31 | -/** | ||
32 | - * The currently active debug mode names. | ||
33 | - */ | ||
34 | - | ||
35 | -debug.names = []; | ||
36 | -debug.skips = []; | ||
37 | - | ||
38 | -/** | ||
39 | - * Enables a debug mode by name. This can include modes | ||
40 | - * separated by a colon and wildcards. | ||
41 | - * | ||
42 | - * @param {String} name | ||
43 | - * @api public | ||
44 | - */ | ||
45 | - | ||
46 | -debug.enable = function(name) { | ||
47 | - localStorage.debug = name; | ||
48 | - | ||
49 | - var split = (name || '').split(/[\s,]+/) | ||
50 | - , len = split.length; | ||
51 | - | ||
52 | - for (var i = 0; i < len; i++) { | ||
53 | - name = split[i].replace('*', '.*?'); | ||
54 | - if (name[0] === '-') { | ||
55 | - debug.skips.push(new RegExp('^' + name.substr(1) + '$')); | ||
56 | - } | ||
57 | - else { | ||
58 | - debug.names.push(new RegExp('^' + name + '$')); | ||
59 | - } | ||
60 | - } | ||
61 | -}; | ||
62 | - | ||
63 | -/** | ||
64 | - * Disable debug output. | ||
65 | - * | ||
66 | - * @api public | ||
67 | - */ | ||
68 | - | ||
69 | -debug.disable = function(){ | ||
70 | - debug.enable(''); | ||
71 | -}; | ||
72 | - | ||
73 | -/** | ||
74 | - * Humanize the given `ms`. | ||
75 | - * | ||
76 | - * @param {Number} m | ||
77 | - * @return {String} | ||
78 | - * @api private | ||
79 | - */ | ||
80 | - | ||
81 | -debug.humanize = function(ms) { | ||
82 | - var sec = 1000 | ||
83 | - , min = 60 * 1000 | ||
84 | - , hour = 60 * min; | ||
85 | - | ||
86 | - if (ms >= hour) return (ms / hour).toFixed(1) + 'h'; | ||
87 | - if (ms >= min) return (ms / min).toFixed(1) + 'm'; | ||
88 | - if (ms >= sec) return (ms / sec | 0) + 's'; | ||
89 | - return ms + 'ms'; | ||
90 | -}; | ||
91 | - | ||
92 | -/** | ||
93 | - * Returns true if the given mode name is enabled, false otherwise. | ||
94 | - * | ||
95 | - * @param {String} name | ||
96 | - * @return {Boolean} | ||
97 | - * @api public | ||
98 | - */ | ||
99 | - | ||
100 | -debug.enabled = function(name) { | ||
101 | - for (var i = 0, len = debug.skips.length; i < len; i++) { | ||
102 | - if (debug.skips[i].test(name)) { | ||
103 | - return false; | ||
104 | - } | ||
105 | - } | ||
106 | - for (var i = 0, len = debug.names.length; i < len; i++) { | ||
107 | - if (debug.names[i].test(name)) { | ||
108 | - return true; | ||
109 | - } | ||
110 | - } | ||
111 | - return false; | ||
112 | -}; | ||
113 | - | ||
114 | -// persist | ||
115 | - | ||
116 | -if (window.localStorage) debug.enable(localStorage.debug); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | - | ||
2 | -var debug = require('../')('http') | ||
3 | - , http = require('http') | ||
4 | - , name = 'My App'; | ||
5 | - | ||
6 | -// fake app | ||
7 | - | ||
8 | -debug('booting %s', name); | ||
9 | - | ||
10 | -http.createServer(function(req, res){ | ||
11 | - debug(req.method + ' ' + req.url); | ||
12 | - res.end('hello\n'); | ||
13 | -}).listen(3000, function(){ | ||
14 | - debug('listening'); | ||
15 | -}); | ||
16 | - | ||
17 | -// fake worker of some kind | ||
18 | - | ||
19 | -require('./worker'); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -<html> | ||
2 | - <head> | ||
3 | - <title>debug()</title> | ||
4 | - <script src="../debug.js"></script> | ||
5 | - <script> | ||
6 | - // type debug.enable('*') in | ||
7 | - // the console and refresh :) | ||
8 | - | ||
9 | - a = debug('worker:a'); | ||
10 | - b = debug('worker:b'); | ||
11 | - | ||
12 | - setInterval(function(){ | ||
13 | - a('doing some work'); | ||
14 | - }, 1000); | ||
15 | - | ||
16 | - setInterval(function(){ | ||
17 | - a('doing some work'); | ||
18 | - }, 1200); | ||
19 | - </script> | ||
20 | - </head> | ||
21 | - <body> | ||
22 | - | ||
23 | - </body> | ||
24 | -</html> |
1 | - | ||
2 | -// DEBUG=* node example/worker | ||
3 | -// DEBUG=worker:* node example/worker | ||
4 | -// DEBUG=worker:a node example/worker | ||
5 | -// DEBUG=worker:b node example/worker | ||
6 | - | ||
7 | -var a = require('../')('worker:a') | ||
8 | - , b = require('../')('worker:b'); | ||
9 | - | ||
10 | -function work() { | ||
11 | - a('doing lots of uninteresting work'); | ||
12 | - setTimeout(work, Math.random() * 1000); | ||
13 | -} | ||
14 | - | ||
15 | -work(); | ||
16 | - | ||
17 | -function workb() { | ||
18 | - b('doing some work'); | ||
19 | - setTimeout(workb, Math.random() * 2000); | ||
20 | -} | ||
21 | - | ||
22 | -workb(); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -;(function(){ |
1 | -{ | ||
2 | - "name": "debug", | ||
3 | - "version": "0.7.0", | ||
4 | - "description": "small debugging utility", | ||
5 | - "keywords": [ | ||
6 | - "debug", | ||
7 | - "log", | ||
8 | - "debugger" | ||
9 | - ], | ||
10 | - "author": { | ||
11 | - "name": "TJ Holowaychuk", | ||
12 | - "email": "tj@vision-media.ca" | ||
13 | - }, | ||
14 | - "dependencies": {}, | ||
15 | - "devDependencies": { | ||
16 | - "mocha": "*" | ||
17 | - }, | ||
18 | - "main": "index", | ||
19 | - "browserify": "debug.component.js", | ||
20 | - "engines": { | ||
21 | - "node": "*" | ||
22 | - }, | ||
23 | - "component": { | ||
24 | - "scripts": { | ||
25 | - "debug": "debug.component.js" | ||
26 | - } | ||
27 | - }, | ||
28 | - "_id": "debug@0.7.0", | ||
29 | - "dist": { | ||
30 | - "shasum": "f5be05ec0434c992d79940e50b2695cfb2e01b08", | ||
31 | - "tarball": "http://registry.npmjs.org/debug/-/debug-0.7.0.tgz" | ||
32 | - }, | ||
33 | - "maintainers": [ | ||
34 | - { | ||
35 | - "name": "tjholowaychuk", | ||
36 | - "email": "tj@vision-media.ca" | ||
37 | - } | ||
38 | - ], | ||
39 | - "directories": {}, | ||
40 | - "_shasum": "f5be05ec0434c992d79940e50b2695cfb2e01b08", | ||
41 | - "_from": "debug@0.7.0", | ||
42 | - "_resolved": "https://registry.npmjs.org/debug/-/debug-0.7.0.tgz" | ||
43 | -} |
1 | -Apache License, Version 2.0 | ||
2 | - | ||
3 | -Copyright (c) 2011 Dominic Tarr | ||
4 | - | ||
5 | -Licensed under the Apache License, Version 2.0 (the "License"); | ||
6 | -you may not use this file except in compliance with the License. | ||
7 | -You may obtain a copy of the License at | ||
8 | - | ||
9 | - http://www.apache.org/licenses/LICENSE-2.0 | ||
10 | - | ||
11 | -Unless required by applicable law or agreed to in writing, software | ||
12 | -distributed under the License is distributed on an "AS IS" BASIS, | ||
13 | -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
14 | -See the License for the specific language governing permissions and | ||
15 | -limitations under the License. |
1 | -The MIT License | ||
2 | - | ||
3 | -Copyright (c) 2011 Dominic Tarr | ||
4 | - | ||
5 | -Permission is hereby granted, free of charge, | ||
6 | -to any person obtaining a copy of this software and | ||
7 | -associated documentation files (the "Software"), to | ||
8 | -deal in the Software without restriction, including | ||
9 | -without limitation the rights to use, copy, modify, | ||
10 | -merge, publish, distribute, sublicense, and/or sell | ||
11 | -copies of the Software, and to permit persons to whom | ||
12 | -the Software is furnished to do so, | ||
13 | -subject to the following conditions: | ||
14 | - | ||
15 | -The above copyright notice and this permission notice | ||
16 | -shall be included in all copies or substantial portions of the Software. | ||
17 | - | ||
18 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
19 | -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
20 | -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
21 | -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR | ||
22 | -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
23 | -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
24 | -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
1 | -var Stream = require('stream') | ||
2 | - | ||
3 | -// through | ||
4 | -// | ||
5 | -// a stream that does nothing but re-emit the input. | ||
6 | -// useful for aggregating a series of changing but not ending streams into one stream) | ||
7 | - | ||
8 | -exports = module.exports = through | ||
9 | -through.through = through | ||
10 | - | ||
11 | -//create a readable writable stream. | ||
12 | - | ||
13 | -function through (write, end, opts) { | ||
14 | - write = write || function (data) { this.queue(data) } | ||
15 | - end = end || function () { this.queue(null) } | ||
16 | - | ||
17 | - var ended = false, destroyed = false, buffer = [], _ended = false | ||
18 | - var stream = new Stream() | ||
19 | - stream.readable = stream.writable = true | ||
20 | - stream.paused = false | ||
21 | - | ||
22 | -// stream.autoPause = !(opts && opts.autoPause === false) | ||
23 | - stream.autoDestroy = !(opts && opts.autoDestroy === false) | ||
24 | - | ||
25 | - stream.write = function (data) { | ||
26 | - write.call(this, data) | ||
27 | - return !stream.paused | ||
28 | - } | ||
29 | - | ||
30 | - function drain() { | ||
31 | - while(buffer.length && !stream.paused) { | ||
32 | - var data = buffer.shift() | ||
33 | - if(null === data) | ||
34 | - return stream.emit('end') | ||
35 | - else | ||
36 | - stream.emit('data', data) | ||
37 | - } | ||
38 | - } | ||
39 | - | ||
40 | - stream.queue = stream.push = function (data) { | ||
41 | -// console.error(ended) | ||
42 | - if(_ended) return stream | ||
43 | - if(data == null) _ended = true | ||
44 | - buffer.push(data) | ||
45 | - drain() | ||
46 | - return stream | ||
47 | - } | ||
48 | - | ||
49 | - //this will be registered as the first 'end' listener | ||
50 | - //must call destroy next tick, to make sure we're after any | ||
51 | - //stream piped from here. | ||
52 | - //this is only a problem if end is not emitted synchronously. | ||
53 | - //a nicer way to do this is to make sure this is the last listener for 'end' | ||
54 | - | ||
55 | - stream.on('end', function () { | ||
56 | - stream.readable = false | ||
57 | - if(!stream.writable && stream.autoDestroy) | ||
58 | - process.nextTick(function () { | ||
59 | - stream.destroy() | ||
60 | - }) | ||
61 | - }) | ||
62 | - | ||
63 | - function _end () { | ||
64 | - stream.writable = false | ||
65 | - end.call(stream) | ||
66 | - if(!stream.readable && stream.autoDestroy) | ||
67 | - stream.destroy() | ||
68 | - } | ||
69 | - | ||
70 | - stream.end = function (data) { | ||
71 | - if(ended) return | ||
72 | - ended = true | ||
73 | - if(arguments.length) stream.write(data) | ||
74 | - _end() // will emit or queue | ||
75 | - return stream | ||
76 | - } | ||
77 | - | ||
78 | - stream.destroy = function () { | ||
79 | - if(destroyed) return | ||
80 | - destroyed = true | ||
81 | - ended = true | ||
82 | - buffer.length = 0 | ||
83 | - stream.writable = stream.readable = false | ||
84 | - stream.emit('close') | ||
85 | - return stream | ||
86 | - } | ||
87 | - | ||
88 | - stream.pause = function () { | ||
89 | - if(stream.paused) return | ||
90 | - stream.paused = true | ||
91 | - return stream | ||
92 | - } | ||
93 | - | ||
94 | - stream.resume = function () { | ||
95 | - if(stream.paused) { | ||
96 | - stream.paused = false | ||
97 | - stream.emit('resume') | ||
98 | - } | ||
99 | - drain() | ||
100 | - //may have become paused again, | ||
101 | - //as drain emits 'data'. | ||
102 | - if(!stream.paused) | ||
103 | - stream.emit('drain') | ||
104 | - return stream | ||
105 | - } | ||
106 | - return stream | ||
107 | -} | ||
108 | - |
1 | -{ | ||
2 | - "name": "through", | ||
3 | - "version": "2.3.6", | ||
4 | - "description": "simplified stream construction", | ||
5 | - "main": "index.js", | ||
6 | - "scripts": { | ||
7 | - "test": "set -e; for t in test/*.js; do node $t; done" | ||
8 | - }, | ||
9 | - "devDependencies": { | ||
10 | - "stream-spec": "~0.3.5", | ||
11 | - "tape": "~2.3.2", | ||
12 | - "from": "~0.1.3" | ||
13 | - }, | ||
14 | - "keywords": [ | ||
15 | - "stream", | ||
16 | - "streams", | ||
17 | - "user-streams", | ||
18 | - "pipe" | ||
19 | - ], | ||
20 | - "author": { | ||
21 | - "name": "Dominic Tarr", | ||
22 | - "email": "dominic.tarr@gmail.com", | ||
23 | - "url": "dominictarr.com" | ||
24 | - }, | ||
25 | - "license": "MIT", | ||
26 | - "repository": { | ||
27 | - "type": "git", | ||
28 | - "url": "https://github.com/dominictarr/through.git" | ||
29 | - }, | ||
30 | - "homepage": "http://github.com/dominictarr/through", | ||
31 | - "testling": { | ||
32 | - "browsers": [ | ||
33 | - "ie/8..latest", | ||
34 | - "ff/15..latest", | ||
35 | - "chrome/20..latest", | ||
36 | - "safari/5.1..latest" | ||
37 | - ], | ||
38 | - "files": "test/*.js" | ||
39 | - }, | ||
40 | - "gitHead": "19ed9b7e84efe7c3e3c8be80f29390b1620e13c0", | ||
41 | - "bugs": { | ||
42 | - "url": "https://github.com/dominictarr/through/issues" | ||
43 | - }, | ||
44 | - "_id": "through@2.3.6", | ||
45 | - "_shasum": "26681c0f524671021d4e29df7c36bce2d0ecf2e8", | ||
46 | - "_from": "through@~2.3.1", | ||
47 | - "_npmVersion": "1.4.26", | ||
48 | - "_npmUser": { | ||
49 | - "name": "dominictarr", | ||
50 | - "email": "dominic.tarr@gmail.com" | ||
51 | - }, | ||
52 | - "maintainers": [ | ||
53 | - { | ||
54 | - "name": "dominictarr", | ||
55 | - "email": "dominic.tarr@gmail.com" | ||
56 | - } | ||
57 | - ], | ||
58 | - "dist": { | ||
59 | - "shasum": "26681c0f524671021d4e29df7c36bce2d0ecf2e8", | ||
60 | - "tarball": "http://registry.npmjs.org/through/-/through-2.3.6.tgz" | ||
61 | - }, | ||
62 | - "directories": {}, | ||
63 | - "_resolved": "https://registry.npmjs.org/through/-/through-2.3.6.tgz" | ||
64 | -} |
1 | -#through | ||
2 | - | ||
3 | -[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through) | ||
4 | -[![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through) | ||
5 | - | ||
6 | -Easy way to create a `Stream` that is both `readable` and `writable`. | ||
7 | - | ||
8 | -* Pass in optional `write` and `end` methods. | ||
9 | -* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`. | ||
10 | -* Use `this.pause()` and `this.resume()` to manage flow. | ||
11 | -* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`). | ||
12 | - | ||
13 | -This function is the basis for most of the synchronous streams in | ||
14 | -[event-stream](http://github.com/dominictarr/event-stream). | ||
15 | - | ||
16 | -``` js | ||
17 | -var through = require('through') | ||
18 | - | ||
19 | -through(function write(data) { | ||
20 | - this.queue(data) //data *must* not be null | ||
21 | - }, | ||
22 | - function end () { //optional | ||
23 | - this.queue(null) | ||
24 | - }) | ||
25 | -``` | ||
26 | - | ||
27 | -Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`, | ||
28 | -and this.emit('end') | ||
29 | - | ||
30 | -``` js | ||
31 | -var through = require('through') | ||
32 | - | ||
33 | -through(function write(data) { | ||
34 | - this.emit('data', data) | ||
35 | - //this.pause() | ||
36 | - }, | ||
37 | - function end () { //optional | ||
38 | - this.emit('end') | ||
39 | - }) | ||
40 | -``` | ||
41 | - | ||
42 | -## Extended Options | ||
43 | - | ||
44 | -You will probably not need these 99% of the time. | ||
45 | - | ||
46 | -### autoDestroy=false | ||
47 | - | ||
48 | -By default, `through` emits close when the writable | ||
49 | -and readable side of the stream has ended. | ||
50 | -If that is not desired, set `autoDestroy=false`. | ||
51 | - | ||
52 | -``` js | ||
53 | -var through = require('through') | ||
54 | - | ||
55 | -//like this | ||
56 | -var ts = through(write, end, {autoDestroy: false}) | ||
57 | -//or like this | ||
58 | -var ts = through(write, end) | ||
59 | -ts.autoDestroy = false | ||
60 | -``` | ||
61 | - | ||
62 | -## License | ||
63 | - | ||
64 | -MIT / Apache2 |
1 | -var from = require('from') | ||
2 | -var through = require('../') | ||
3 | - | ||
4 | -var tape = require('tape') | ||
5 | - | ||
6 | -tape('simple async example', function (t) { | ||
7 | - | ||
8 | - var n = 0, expected = [1,2,3,4,5], actual = [] | ||
9 | - from(expected) | ||
10 | - .pipe(through(function(data) { | ||
11 | - this.pause() | ||
12 | - n ++ | ||
13 | - setTimeout(function(){ | ||
14 | - console.log('pushing data', data) | ||
15 | - this.push(data) | ||
16 | - this.resume() | ||
17 | - }.bind(this), 300) | ||
18 | - })).pipe(through(function(data) { | ||
19 | - console.log('pushing data second time', data); | ||
20 | - this.push(data) | ||
21 | - })).on('data', function (d) { | ||
22 | - actual.push(d) | ||
23 | - }).on('end', function() { | ||
24 | - t.deepEqual(actual, expected) | ||
25 | - t.end() | ||
26 | - }) | ||
27 | - | ||
28 | -}) |
samples/s3/examplefolder/node_modules/gm/node_modules/through/test/auto-destroy.js
deleted
100644 → 0
1 | -var test = require('tape') | ||
2 | -var through = require('../') | ||
3 | - | ||
4 | -// must emit end before close. | ||
5 | - | ||
6 | -test('end before close', function (assert) { | ||
7 | - var ts = through() | ||
8 | - ts.autoDestroy = false | ||
9 | - var ended = false, closed = false | ||
10 | - | ||
11 | - ts.on('end', function () { | ||
12 | - assert.ok(!closed) | ||
13 | - ended = true | ||
14 | - }) | ||
15 | - ts.on('close', function () { | ||
16 | - assert.ok(ended) | ||
17 | - closed = true | ||
18 | - }) | ||
19 | - | ||
20 | - ts.write(1) | ||
21 | - ts.write(2) | ||
22 | - ts.write(3) | ||
23 | - ts.end() | ||
24 | - assert.ok(ended) | ||
25 | - assert.notOk(closed) | ||
26 | - ts.destroy() | ||
27 | - assert.ok(closed) | ||
28 | - assert.end() | ||
29 | -}) | ||
30 | - |
1 | -var test = require('tape') | ||
2 | -var through = require('../') | ||
3 | - | ||
4 | -// must emit end before close. | ||
5 | - | ||
6 | -test('buffering', function(assert) { | ||
7 | - var ts = through(function (data) { | ||
8 | - this.queue(data) | ||
9 | - }, function () { | ||
10 | - this.queue(null) | ||
11 | - }) | ||
12 | - | ||
13 | - var ended = false, actual = [] | ||
14 | - | ||
15 | - ts.on('data', actual.push.bind(actual)) | ||
16 | - ts.on('end', function () { | ||
17 | - ended = true | ||
18 | - }) | ||
19 | - | ||
20 | - ts.write(1) | ||
21 | - ts.write(2) | ||
22 | - ts.write(3) | ||
23 | - assert.deepEqual(actual, [1, 2, 3]) | ||
24 | - ts.pause() | ||
25 | - ts.write(4) | ||
26 | - ts.write(5) | ||
27 | - ts.write(6) | ||
28 | - assert.deepEqual(actual, [1, 2, 3]) | ||
29 | - ts.resume() | ||
30 | - assert.deepEqual(actual, [1, 2, 3, 4, 5, 6]) | ||
31 | - ts.pause() | ||
32 | - ts.end() | ||
33 | - assert.ok(!ended) | ||
34 | - ts.resume() | ||
35 | - assert.ok(ended) | ||
36 | - assert.end() | ||
37 | -}) | ||
38 | - | ||
39 | -test('buffering has data in queue, when ends', function (assert) { | ||
40 | - | ||
41 | - /* | ||
42 | - * If stream ends while paused with data in the queue, | ||
43 | - * stream should still emit end after all data is written | ||
44 | - * on resume. | ||
45 | - */ | ||
46 | - | ||
47 | - var ts = through(function (data) { | ||
48 | - this.queue(data) | ||
49 | - }, function () { | ||
50 | - this.queue(null) | ||
51 | - }) | ||
52 | - | ||
53 | - var ended = false, actual = [] | ||
54 | - | ||
55 | - ts.on('data', actual.push.bind(actual)) | ||
56 | - ts.on('end', function () { | ||
57 | - ended = true | ||
58 | - }) | ||
59 | - | ||
60 | - ts.pause() | ||
61 | - ts.write(1) | ||
62 | - ts.write(2) | ||
63 | - ts.write(3) | ||
64 | - ts.end() | ||
65 | - assert.deepEqual(actual, [], 'no data written yet, still paused') | ||
66 | - assert.ok(!ended, 'end not emitted yet, still paused') | ||
67 | - ts.resume() | ||
68 | - assert.deepEqual(actual, [1, 2, 3], 'resumed, all data should be delivered') | ||
69 | - assert.ok(ended, 'end should be emitted once all data was delivered') | ||
70 | - assert.end(); | ||
71 | -}) |
1 | -var test = require('tape') | ||
2 | -var through = require('../') | ||
3 | - | ||
4 | -// must emit end before close. | ||
5 | - | ||
6 | -test('end before close', function (assert) { | ||
7 | - var ts = through() | ||
8 | - var ended = false, closed = false | ||
9 | - | ||
10 | - ts.on('end', function () { | ||
11 | - assert.ok(!closed) | ||
12 | - ended = true | ||
13 | - }) | ||
14 | - ts.on('close', function () { | ||
15 | - assert.ok(ended) | ||
16 | - closed = true | ||
17 | - }) | ||
18 | - | ||
19 | - ts.write(1) | ||
20 | - ts.write(2) | ||
21 | - ts.write(3) | ||
22 | - ts.end() | ||
23 | - assert.ok(ended) | ||
24 | - assert.ok(closed) | ||
25 | - assert.end() | ||
26 | -}) | ||
27 | - | ||
28 | -test('end only once', function (t) { | ||
29 | - | ||
30 | - var ts = through() | ||
31 | - var ended = false, closed = false | ||
32 | - | ||
33 | - ts.on('end', function () { | ||
34 | - t.equal(ended, false) | ||
35 | - ended = true | ||
36 | - }) | ||
37 | - | ||
38 | - ts.queue(null) | ||
39 | - ts.queue(null) | ||
40 | - ts.queue(null) | ||
41 | - | ||
42 | - ts.resume() | ||
43 | - | ||
44 | - t.end() | ||
45 | -}) |
1 | - | ||
2 | -var test = require('tape') | ||
3 | -var spec = require('stream-spec') | ||
4 | -var through = require('../') | ||
5 | - | ||
6 | -/* | ||
7 | - I'm using these two functions, and not streams and pipe | ||
8 | - so there is less to break. if this test fails it must be | ||
9 | - the implementation of _through_ | ||
10 | -*/ | ||
11 | - | ||
12 | -function write(array, stream) { | ||
13 | - array = array.slice() | ||
14 | - function next() { | ||
15 | - while(array.length) | ||
16 | - if(stream.write(array.shift()) === false) | ||
17 | - return stream.once('drain', next) | ||
18 | - | ||
19 | - stream.end() | ||
20 | - } | ||
21 | - | ||
22 | - next() | ||
23 | -} | ||
24 | - | ||
25 | -function read(stream, callback) { | ||
26 | - var actual = [] | ||
27 | - stream.on('data', function (data) { | ||
28 | - actual.push(data) | ||
29 | - }) | ||
30 | - stream.once('end', function () { | ||
31 | - callback(null, actual) | ||
32 | - }) | ||
33 | - stream.once('error', function (err) { | ||
34 | - callback(err) | ||
35 | - }) | ||
36 | -} | ||
37 | - | ||
38 | -test('simple defaults', function(assert) { | ||
39 | - | ||
40 | - var l = 1000 | ||
41 | - , expected = [] | ||
42 | - | ||
43 | - while(l--) expected.push(l * Math.random()) | ||
44 | - | ||
45 | - var t = through() | ||
46 | - var s = spec(t).through().pausable() | ||
47 | - | ||
48 | - read(t, function (err, actual) { | ||
49 | - assert.ifError(err) | ||
50 | - assert.deepEqual(actual, expected) | ||
51 | - assert.end() | ||
52 | - }) | ||
53 | - | ||
54 | - t.on('close', s.validate) | ||
55 | - | ||
56 | - write(expected, t) | ||
57 | -}); | ||
58 | - | ||
59 | -test('simple functions', function(assert) { | ||
60 | - | ||
61 | - var l = 1000 | ||
62 | - , expected = [] | ||
63 | - | ||
64 | - while(l--) expected.push(l * Math.random()) | ||
65 | - | ||
66 | - var t = through(function (data) { | ||
67 | - this.emit('data', data*2) | ||
68 | - }) | ||
69 | - var s = spec(t).through().pausable() | ||
70 | - | ||
71 | - | ||
72 | - read(t, function (err, actual) { | ||
73 | - assert.ifError(err) | ||
74 | - assert.deepEqual(actual, expected.map(function (data) { | ||
75 | - return data*2 | ||
76 | - })) | ||
77 | - assert.end() | ||
78 | - }) | ||
79 | - | ||
80 | - t.on('close', s.validate) | ||
81 | - | ||
82 | - write(expected, t) | ||
83 | -}) | ||
84 | - | ||
85 | -test('pauses', function(assert) { | ||
86 | - | ||
87 | - var l = 1000 | ||
88 | - , expected = [] | ||
89 | - | ||
90 | - while(l--) expected.push(l) //Math.random()) | ||
91 | - | ||
92 | - var t = through() | ||
93 | - | ||
94 | - var s = spec(t) | ||
95 | - .through() | ||
96 | - .pausable() | ||
97 | - | ||
98 | - t.on('data', function () { | ||
99 | - if(Math.random() > 0.1) return | ||
100 | - t.pause() | ||
101 | - process.nextTick(function () { | ||
102 | - t.resume() | ||
103 | - }) | ||
104 | - }) | ||
105 | - | ||
106 | - read(t, function (err, actual) { | ||
107 | - assert.ifError(err) | ||
108 | - assert.deepEqual(actual, expected) | ||
109 | - }) | ||
110 | - | ||
111 | - t.on('close', function () { | ||
112 | - s.validate() | ||
113 | - assert.end() | ||
114 | - }) | ||
115 | - | ||
116 | - write(expected, t) | ||
117 | -}) |
1 | -{ | ||
2 | - "name": "gm", | ||
3 | - "description": "GraphicsMagick and ImageMagick for node.js", | ||
4 | - "version": "1.17.0", | ||
5 | - "author": { | ||
6 | - "name": "Aaron Heckmann", | ||
7 | - "email": "aaron.heckmann+github@gmail.com" | ||
8 | - }, | ||
9 | - "keywords": [ | ||
10 | - "graphics", | ||
11 | - "magick", | ||
12 | - "image", | ||
13 | - "graphicsmagick", | ||
14 | - "imagemagick", | ||
15 | - "gm", | ||
16 | - "convert", | ||
17 | - "identify", | ||
18 | - "compare" | ||
19 | - ], | ||
20 | - "engines": { | ||
21 | - "node": ">= 0.8.0" | ||
22 | - }, | ||
23 | - "bugs": { | ||
24 | - "url": "http://github.com/aheckmann/gm/issues" | ||
25 | - }, | ||
26 | - "licenses": [ | ||
27 | - { | ||
28 | - "type": "MIT", | ||
29 | - "url": "http://www.opensource.org/licenses/mit-license.php" | ||
30 | - } | ||
31 | - ], | ||
32 | - "main": "./index", | ||
33 | - "scripts": { | ||
34 | - "test": "make test-unit; make test;" | ||
35 | - }, | ||
36 | - "repository": { | ||
37 | - "type": "git", | ||
38 | - "url": "https://github.com/aheckmann/gm.git" | ||
39 | - }, | ||
40 | - "license": "MIT", | ||
41 | - "devDependencies": { | ||
42 | - "gleak": "0.4.0", | ||
43 | - "async": "~0.2.7" | ||
44 | - }, | ||
45 | - "dependencies": { | ||
46 | - "debug": "0.7.0", | ||
47 | - "array-series": "~0.1.0", | ||
48 | - "array-parallel": "~0.1.0", | ||
49 | - "through": "~2.3.1" | ||
50 | - }, | ||
51 | - "gitHead": "2fb65bac7c09ab8b09e87b791b146b82c209076e", | ||
52 | - "homepage": "https://github.com/aheckmann/gm", | ||
53 | - "_id": "gm@1.17.0", | ||
54 | - "_shasum": "27a261e0bdfee3d373d24b5a27bd249057355068", | ||
55 | - "_from": "gm@", | ||
56 | - "_npmVersion": "1.4.28", | ||
57 | - "_npmUser": { | ||
58 | - "name": "rwky", | ||
59 | - "email": "admin@rwky.net" | ||
60 | - }, | ||
61 | - "maintainers": [ | ||
62 | - { | ||
63 | - "name": "aaron", | ||
64 | - "email": "aaron.heckmann+github@gmail.com" | ||
65 | - }, | ||
66 | - { | ||
67 | - "name": "jongleberry", | ||
68 | - "email": "me@jongleberry.com" | ||
69 | - }, | ||
70 | - { | ||
71 | - "name": "rwky", | ||
72 | - "email": "admin@rwky.net" | ||
73 | - }, | ||
74 | - { | ||
75 | - "name": "fragphace", | ||
76 | - "email": "fragphace@gmail.com" | ||
77 | - } | ||
78 | - ], | ||
79 | - "dist": { | ||
80 | - "shasum": "27a261e0bdfee3d373d24b5a27bd249057355068", | ||
81 | - "tarball": "http://registry.npmjs.org/gm/-/gm-1.17.0.tgz" | ||
82 | - }, | ||
83 | - "directories": {}, | ||
84 | - "_resolved": "https://registry.npmjs.org/gm/-/gm-1.17.0.tgz" | ||
85 | -} |
-
Please register or login to post a comment