Socket
Socket
Sign inDemoInstall

charm

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

charm - npm Package Compare versions

Comparing version 0.0.8 to 0.1.0

5

example/column.js

@@ -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();
}
});

19

example/progress.js

@@ -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);
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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc