Comparing version 0.0.8 to 0.1.0
@@ -1,2 +0,3 @@ | ||
var charm = require('../')(process); | ||
var charm = require('../')(); | ||
charm.pipe(process.stdout); | ||
@@ -9,3 +10,3 @@ charm | ||
.write('boop\n') | ||
.destroy() | ||
.end() | ||
; |
@@ -7,3 +7,4 @@ var http = require('http'); | ||
var charm = charmer(res); | ||
var charm = charmer(); | ||
charm.pipe(res); | ||
charm.reset(); | ||
@@ -34,4 +35,4 @@ | ||
clearInterval(iv); | ||
charm.destroy(); | ||
charm.end(); | ||
}); | ||
}).listen(8081); |
@@ -1,2 +0,3 @@ | ||
var charm = require('../')(process); | ||
var charm = require('../')(); | ||
charm.pipe(process.stdout); | ||
charm.reset(); | ||
@@ -24,8 +25,1 @@ | ||
}, 150); | ||
charm.on('data', function (buf) { | ||
if (buf[0] === 3) { | ||
clearInterval(iv); | ||
charm.destroy(); | ||
} | ||
}); |
@@ -1,19 +0,18 @@ | ||
var charm = require('../')(process); | ||
var charm = require('../')(); | ||
charm.pipe(process.stdout); | ||
charm.write("Progress: 0 %"); | ||
charm.write('Progress: 0 %'); | ||
var i = 0; | ||
var increment = function () { | ||
var iv = setInterval(function () { | ||
charm.left(i.toString().length + 2); | ||
i = i + 1; | ||
charm.write(i + " %"); | ||
i ++; | ||
charm.write(i + ' %'); | ||
if (i === 100) { | ||
charm.write("\nDone!\n"); | ||
process.exit(); | ||
charm.end('\nDone!\n'); | ||
clearInterval(iv); | ||
} | ||
}; | ||
}, 25); | ||
var loop = setInterval(increment, 50); | ||
charm.on('^C',process.exit); | ||
97
index.js
var tty = require('tty'); | ||
var encode = require('./lib/encode'); | ||
var EventEmitter = require('events').EventEmitter; | ||
var Stream = require('stream').Stream; | ||
@@ -29,15 +29,2 @@ var exports = module.exports = function () { | ||
return new Charm(input, output); | ||
}; | ||
var Charm = exports.Charm = function (input, output) { | ||
var self = this; | ||
self.input = input; | ||
self.output = output; | ||
self.pending = []; | ||
if (!output) { | ||
self.emit('error', new Error('output stream required')); | ||
} | ||
if (input && typeof input.fd === 'number' && tty.isatty(input.fd)) { | ||
@@ -48,44 +35,64 @@ if (process.stdin.setRawMode) { | ||
else tty.setRawMode(true); | ||
} | ||
var charm = new Charm; | ||
if (input) { | ||
input.pipe(charm); | ||
input.resume(); | ||
} | ||
if (input) { | ||
input.on('data', function (buf) { | ||
if (self.pending.length) { | ||
var codes = extractCodes(buf); | ||
var matched = false; | ||
for (var i = 0; i < codes.length; i++) { | ||
for (var j = 0; j < self.pending.length; j++) { | ||
var cb = self.pending[j]; | ||
if (cb(codes[i])) { | ||
matched = true; | ||
self.pending.splice(j, 1); | ||
break; | ||
} | ||
} | ||
if (output) { | ||
charm.pipe(output); | ||
} | ||
return charm; | ||
}; | ||
function Charm () { | ||
this.writable = true; | ||
this.readable = true; | ||
this.pending = []; | ||
} | ||
Charm.prototype = new Stream; | ||
Charm.prototype.write = function (buf) { | ||
var self = this; | ||
if (self.pending.length) { | ||
var codes = extractCodes(buf); | ||
var matched = false; | ||
for (var i = 0; i < codes.length; i++) { | ||
for (var j = 0; j < self.pending.length; j++) { | ||
var cb = self.pending[j]; | ||
if (cb(codes[i])) { | ||
matched = true; | ||
self.pending.splice(j, 1); | ||
break; | ||
} | ||
if (matched) return; | ||
} | ||
self.emit('data', buf) | ||
if (buf.length === 1) { | ||
if (buf[0] === 3) self.emit('^C'); | ||
if (buf[0] === 4) self.emit('^D'); | ||
} | ||
}); | ||
} | ||
if (matched) return; | ||
} | ||
} | ||
if (buf.length === 1) { | ||
if (buf[0] === 3) self.emit('^C'); | ||
if (buf[0] === 4) self.emit('^D'); | ||
} | ||
self.emit('data', buf); | ||
return self; | ||
}; | ||
Charm.prototype = new EventEmitter; | ||
Charm.prototype.destroy = function () { | ||
if (this.input) this.input.destroy() | ||
this.end(); | ||
}; | ||
Charm.prototype.write = function (msg) { | ||
this.output.write(msg); | ||
return this; | ||
Charm.prototype.end = function (buf) { | ||
if (buf) this.write(buf); | ||
this.emit('end'); | ||
}; | ||
@@ -92,0 +99,0 @@ |
{ | ||
"name" : "charm", | ||
"version" : "0.0.8", | ||
"version" : "0.1.0", | ||
"description" : "ansi control sequences for terminal cursor hopping and colors", | ||
@@ -5,0 +5,0 @@ "main" : "index.js", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
207
15937