summaryrefslogtreecommitdiff
path: root/node_modules/speedometer
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/speedometer')
-rw-r--r--node_modules/speedometer/LICENSE20
-rw-r--r--node_modules/speedometer/README.md38
-rw-r--r--node_modules/speedometer/index.js35
-rw-r--r--node_modules/speedometer/package.json49
4 files changed, 142 insertions, 0 deletions
diff --git a/node_modules/speedometer/LICENSE b/node_modules/speedometer/LICENSE
new file mode 100644
index 0000000..4b30ed5
--- /dev/null
+++ b/node_modules/speedometer/LICENSE
@@ -0,0 +1,20 @@
+Copyright 2013 Mathias Buus
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/speedometer/README.md b/node_modules/speedometer/README.md
new file mode 100644
index 0000000..f4e5711
--- /dev/null
+++ b/node_modules/speedometer/README.md
@@ -0,0 +1,38 @@
+# speedometer
+
+Speed measurement in Javascript
+
+```
+npm install speedometer
+```
+
+## Usage
+
+``` js
+var speedometer = require('speedometer')
+var fs = require('fs')
+
+// Let's measure how fast we can read from /dev/urandom
+var speed = speedometer()
+var stream = fs.createReadStream('/dev/urandom')
+
+stream.on('data', function(data) {
+ // Simply call speed with the amount of bytes transferred
+ var bytesPerSecond = speed(data.length)
+
+ console.log(bytesPerSecond+' bytes/second')
+})
+```
+
+You can always get the current speed by calling `speed()`.
+
+Per default `speedometer` uses a 5 second buffer.
+To change this simply pass another value to the constructor
+
+``` js
+var speed = speedometer(20) // uses a 20s buffer instead
+```
+
+## License
+
+MIT
diff --git a/node_modules/speedometer/index.js b/node_modules/speedometer/index.js
new file mode 100644
index 0000000..5570fe0
--- /dev/null
+++ b/node_modules/speedometer/index.js
@@ -0,0 +1,35 @@
+var tick = 1
+var maxTick = 65535
+var resolution = 4
+var inc = function() {
+ tick = (tick + 1) & maxTick
+}
+
+var timer = setInterval(inc, (1000 / resolution) | 0)
+if (timer.unref) timer.unref()
+
+module.exports = function(seconds) {
+ var size = resolution * (seconds || 5)
+ var buffer = [0]
+ var pointer = 1
+ var last = (tick-1) & maxTick
+
+ return function(delta) {
+ var dist = (tick - last) & maxTick
+ if (dist > size) dist = size
+ last = tick
+
+ while (dist--) {
+ if (pointer === size) pointer = 0
+ buffer[pointer] = buffer[pointer === 0 ? size-1 : pointer-1]
+ pointer++
+ }
+
+ if (delta) buffer[pointer-1] += delta
+
+ var top = buffer[pointer-1]
+ var btm = buffer.length < size ? 0 : buffer[pointer === size ? 0 : pointer]
+
+ return buffer.length < resolution ? top : (top - btm) * resolution / buffer.length
+ }
+} \ No newline at end of file
diff --git a/node_modules/speedometer/package.json b/node_modules/speedometer/package.json
new file mode 100644
index 0000000..3675476
--- /dev/null
+++ b/node_modules/speedometer/package.json
@@ -0,0 +1,49 @@
+{
+ "_from": "speedometer@~0.1.2",
+ "_id": "[email protected]",
+ "_inBundle": false,
+ "_integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
+ "_location": "/speedometer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "speedometer@~0.1.2",
+ "name": "speedometer",
+ "escapedName": "speedometer",
+ "rawSpec": "~0.1.2",
+ "saveSpec": null,
+ "fetchSpec": "~0.1.2"
+ },
+ "_requiredBy": [
+ "/progress-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
+ "_shasum": "9876dbd2a169d3115402d48e6ea6329c8816a50d",
+ "_spec": "speedometer@~0.1.2",
+ "_where": "/Users/armanshah/Desktop/node-projects/shopping-list/node_modules/progress-stream",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "[email protected]"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/speedometer/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "simple speed measurement in javascript",
+ "homepage": "https://github.com/mafintosh/speedometer#readme",
+ "keywords": [
+ "speed",
+ "bytes",
+ "per",
+ "second",
+ "transfer"
+ ],
+ "name": "speedometer",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/speedometer.git"
+ },
+ "version": "0.1.4"
+}