improve figlet coloring

This commit is contained in:
Philipp Kunz 2017-01-21 19:04:40 +01:00
parent cbfc000f7c
commit e705141f6d
5 changed files with 47 additions and 13 deletions

View File

@ -1,3 +1,9 @@
import 'typings-global';
import plugins = require('./beautylog.plugins');
export interface IFigletOptions {
font?: string;
color?: plugins.beautycolor.TColorName;
cb?: any;
}
export declare let figlet: (textArg: string, optionsArg?: any) => Promise<{}>;
export declare let figletSync: (textArg: string, optionsArg?: any) => boolean;
export declare let figletSync: (textArg: string, optionsArg?: IFigletOptions) => boolean;

View File

@ -20,7 +20,7 @@ exports.figlet = function (textArg, optionsArg) {
console.dir(err);
return;
}
console.log(data[options.color]);
console.log(colorFiglet(data, optionsArg.color));
options.cb();
done.resolve();
});
@ -29,11 +29,21 @@ exports.figlet = function (textArg, optionsArg) {
exports.figletSync = function (textArg, optionsArg) {
let mergeOptions = plugins.lodash.cloneDeep(defaultOptions);
let options = plugins.lodash.assign(mergeOptions, optionsArg);
console.log(plugins.figlet.textSync(textArg, {
let figletString = plugins.figlet.textSync(textArg, {
font: options.font,
horizontalLayout: 'default',
verticalLayout: 'default'
})[options.color]);
});
console.log(colorFiglet(figletString, optionsArg.color));
return true;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhdXR5bG9nLmZpZ2xldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2JlYXV0eWxvZy5maWdsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2QiwrQ0FBK0M7QUFDL0MsSUFBSSxjQUFjLEdBQUc7SUFDakIsSUFBSSxFQUFFLFdBQVc7SUFDakIsS0FBSyxFQUFFLE9BQU87SUFDZCxFQUFFLEVBQUUsY0FBWSxDQUFDO0NBQ3BCLENBQUE7QUFFVSxRQUFBLE1BQU0sR0FBRyxVQUFTLE9BQWUsRUFBRSxVQUFXO0lBQ3JELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDNUIsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0QsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzVELE9BQU8sQ0FBQyxNQUFNLENBQ1YsT0FBTyxFQUNQO1FBQ0ksSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0IsY0FBYyxFQUFFLFNBQVM7S0FDNUIsRUFDRCxVQUFTLEdBQUcsRUFBRSxJQUFJO1FBQ2QsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLE1BQU0sQ0FBQTtRQUNWLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUE7UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUNKLENBQUE7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFFVSxRQUFBLFVBQVUsR0FBRyxVQUFTLE9BQWUsRUFBQyxVQUFXO0lBQ3hELElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzNELElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBQztRQUN4QyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsZ0JBQWdCLEVBQUUsU0FBUztRQUMzQixjQUFjLEVBQUUsU0FBUztLQUM1QixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9
let colorFiglet = (figletStringArg, colorArg) => {
let figletArray = figletStringArg.split('\n');
let figletStringCombined = '';
for (let figletRow of figletArray) {
figletRow = plugins.beautycolor.coloredString(figletRow, colorArg);
figletStringCombined = figletStringCombined + figletRow + '\n';
}
return figletStringCombined;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhdXR5bG9nLmZpZ2xldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2JlYXV0eWxvZy5maWdsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2QiwrQ0FBK0M7QUFRL0MsSUFBSSxjQUFjLEdBQW1CO0lBQ2pDLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsRUFBRSxFQUFFLGNBQVksQ0FBQztDQUNwQixDQUFBO0FBRVUsUUFBQSxNQUFNLEdBQUcsVUFBUyxPQUFlLEVBQUUsVUFBVztJQUNyRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzVCLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzNELElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUM1RCxPQUFPLENBQUMsTUFBTSxDQUNWLE9BQU8sRUFDUDtRQUNJLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLGNBQWMsRUFBRSxTQUFTO0tBQzVCLEVBQ0QsVUFBUyxHQUFHLEVBQUUsSUFBWTtRQUN0QixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDaEIsTUFBTSxDQUFBO1FBQ1YsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUE7UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUNKLENBQUE7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFFVSxRQUFBLFVBQVUsR0FBRyxVQUFTLE9BQWUsRUFBQyxVQUEyQjtJQUN4RSxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMzRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUQsSUFBSSxZQUFZLEdBQVcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFDO1FBQ3ZELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLGNBQWMsRUFBRSxTQUFTO0tBQzVCLENBQUMsQ0FBQTtJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxlQUFlLEVBQUUsUUFBd0M7SUFDeEUsSUFBSSxXQUFXLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxJQUFJLG9CQUFvQixHQUFHLEVBQUUsQ0FBQTtJQUM3QixHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxXQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDbEUsb0JBQW9CLEdBQUcsb0JBQW9CLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQTtJQUNsRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLG9CQUFvQixDQUFBO0FBQy9CLENBQUMsQ0FBQSJ9

View File

@ -19,7 +19,7 @@ describe('beautylog', function () {
});
describe('.figlet', function () {
it('should print nice fonts to console in yellow', function (done) {
beautylog.figlet('Async!', { font: 'Star Wars', color: 'yellow' }).then(done);
beautylog.figlet('Async!', { font: 'Star Wars', color: 'orange' }).then(done);
});
});
describe('.figletSync', function () {

View File

@ -21,7 +21,7 @@ describe('beautylog',function(){
})
describe('.figlet',function(){
it('should print nice fonts to console in yellow',function(done){
beautylog.figlet('Async!',{font: 'Star Wars',color: 'yellow'}).then(done)
beautylog.figlet('Async!',{font: 'Star Wars',color: 'orange'}).then(done)
})
})
describe('.figletSync',function(){

View File

@ -1,6 +1,13 @@
import 'typings-global'
import plugins = require('./beautylog.plugins')
let defaultOptions = {
export interface IFigletOptions {
font?: string
color?: plugins.beautycolor.TColorName
cb?
}
let defaultOptions: IFigletOptions = {
font: 'Star Wars',
color: 'green',
cb: function() {}
@ -17,13 +24,13 @@ export let figlet = function(textArg: string, optionsArg?){
horizontalLayout: 'default',
verticalLayout: 'default'
},
function(err, data) {
function(err, data: string) {
if (err) {
console.log('Something went wrong...')
console.dir(err)
return
}
console.log(data[options.color])
console.log(colorFiglet(data, optionsArg.color))
options.cb()
done.resolve()
}
@ -31,13 +38,24 @@ export let figlet = function(textArg: string, optionsArg?){
return done.promise
}
export let figletSync = function(textArg: string,optionsArg?){
export let figletSync = function(textArg: string,optionsArg?: IFigletOptions){
let mergeOptions = plugins.lodash.cloneDeep(defaultOptions)
let options = plugins.lodash.assign(mergeOptions,optionsArg)
console.log(plugins.figlet.textSync(textArg,{
let figletString: string = plugins.figlet.textSync(textArg,{
font: options.font,
horizontalLayout: 'default',
verticalLayout: 'default'
})[options.color])
})
console.log(colorFiglet(figletString, optionsArg.color))
return true
}
let colorFiglet = (figletStringArg, colorArg: plugins.beautycolor.TColorName) => {
let figletArray = figletStringArg.split('\n')
let figletStringCombined = ''
for (let figletRow of figletArray ) {
figletRow = plugins.beautycolor.coloredString(figletRow, colorArg)
figletStringCombined = figletStringCombined + figletRow + '\n'
}
return figletStringCombined
}