Skip to content

Commit

Permalink
added prefix and prefixColor to cli options
Browse files Browse the repository at this point in the history
  • Loading branch information
jgallen23 committed Nov 18, 2016
1 parent d1648d3 commit f01928c
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
20 changes: 15 additions & 5 deletions lib/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ const stringify = require('json-stringify-safe');
const colors = require('./colors');
const _ = require('lodash');

const wrapColor = (message, colorName) => {
if (!colorName) {
return message;
}
return `${colors[colorName]}${message}${colors.reset}`;
};

module.exports = function(options, tags, message) {
if (typeof message === 'object') {
message = stringify(message, null, (options.pretty) ? ' ' : '').replace(/\\n/g, '\n');
Expand All @@ -13,14 +20,12 @@ module.exports = function(options, tags, message) {
if (options.colors) {
tags.forEach((tag, i) => {
if (options.colors[tag]) {
tags[i] = `${colors[options.colors[tag]]}${tag}${colors.reset}`;
tags[i] = wrapColor(tag, options.colors[tag]);
}
});
}
if (options.lineColor) {
message = `${colors[options.lineColor]} ${message}${colors.reset}`;
} else {
message = ` ${message}`;
message = wrapColor(message, options.lineColor);
}

const renderTags = (tagsToRender) => {
Expand All @@ -29,7 +34,12 @@ module.exports = function(options, tags, message) {
}
return ` (${tagsToRender.join(',')})`;
};
const out = `${message}${renderTags(tags)}`;

let prefix = ' ';
if (options.prefix) {
prefix = `${wrapColor(`${options.prefix}`, options.prefixColor)}`;
}

const out = `${prefix}${message}${renderTags(tags)}`;
return out;
};
19 changes: 18 additions & 1 deletion test/logr.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,24 @@ describe('logr', () => {
}
});
log(['tag1'], 'message');
expect(lastMessage).to.equal('\x1b[42m message\x1b[0m (\u001b[31mtag1\u001b[0m)');
expect(lastMessage).to.equal(' \x1b[42mmessage\x1b[0m (\u001b[31mtag1\u001b[0m)');
});

it('should take in an optional prefix and color the prefix)', () => {
const log = new Logr({
type: 'cli',
renderOptions: {
cli: {
prefix: 'app | ',
prefixColor: 'bgGreen',
colors: {
tag1: 'red'
}
}
}
});
log(['tag1'], 'message');
expect(lastMessage).to.equal('\u001b[42mapp | \u001b[0mmessage (\u001b[31mtag1\u001b[0m)');
});
});

Expand Down
2 changes: 1 addition & 1 deletion test/setDefaults.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ describe('logr', () => {
});
const log2 = new Logr();
log2(['tag1'], 'message');
expect(lastMessage).to.equal('\x1b[42m message\x1b[0m (\u001b[31mtag1\u001b[0m)');
expect(lastMessage).to.equal(' \x1b[42mmessage\x1b[0m (\u001b[31mtag1\u001b[0m)');
});
});
2 changes: 1 addition & 1 deletion test/setDefaults2.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ describe('logr', () => {
it('should preserve the defaults set in the previous test file ', () => {
const log2 = new Logr();
log2(['tag1'], 'message');
expect(lastMessage).to.equal('\x1b[42m message\x1b[0m (\u001b[31mtag1\u001b[0m)');
expect(lastMessage).to.equal(' \x1b[42mmessage\x1b[0m (\u001b[31mtag1\u001b[0m)');
});
});

0 comments on commit f01928c

Please sign in to comment.