From e705141f6d12a3bf17d4c1c0311acebb1fd5bd49 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sat, 21 Jan 2017 19:04:40 +0100 Subject: [PATCH] improve figlet coloring --- dist/beautylog.figlet.d.ts | 8 +++++++- dist/beautylog.figlet.js | 18 ++++++++++++++---- test/test.js | 2 +- test/test.ts | 2 +- ts/beautylog.figlet.ts | 30 ++++++++++++++++++++++++------ 5 files changed, 47 insertions(+), 13 deletions(-) diff --git a/dist/beautylog.figlet.d.ts b/dist/beautylog.figlet.d.ts index f61eecc..9901a89 100644 --- a/dist/beautylog.figlet.d.ts +++ b/dist/beautylog.figlet.d.ts @@ -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; diff --git a/dist/beautylog.figlet.js b/dist/beautylog.figlet.js index abcc1c5..363235e 100644 --- a/dist/beautylog.figlet.js +++ b/dist/beautylog.figlet.js @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/test.js b/test/test.js index 2702dcf..b82f503 100644 --- a/test/test.js +++ b/test/test.js @@ -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 () { diff --git a/test/test.ts b/test/test.ts index 99a2e8a..0073a0c 100644 --- a/test/test.ts +++ b/test/test.ts @@ -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(){ diff --git a/ts/beautylog.figlet.ts b/ts/beautylog.figlet.ts index 5589c35..169193f 100644 --- a/ts/beautylog.figlet.ts +++ b/ts/beautylog.figlet.ts @@ -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 +}