import plugins = require('./sl.destlocal.plugins'); export interface IFigletOptions { font?: string; color?: plugins.beautycolor.TColorName; cb?; } let defaultOptions: IFigletOptions = { font: 'Star Wars', color: 'green', cb: function() {} }; export let figlet = function(textArg: string, optionsArg?) { let done = plugins.q.defer(); let mergeOptions = plugins.lodash.cloneDeep(defaultOptions); let options = plugins.lodash.assign(mergeOptions, optionsArg); plugins.figlet( textArg, { font: options.font, horizontalLayout: 'default', verticalLayout: 'default' }, function(err, data: string) { if (err) { console.log('Something went wrong...'); console.dir(err); return; } console.log(colorFiglet(data, options.color)); options.cb(); done.resolve(); } ); return done.promise; }; export let figletSync = function(textArg: string, optionsArg?: IFigletOptions) { let mergeOptions = plugins.lodash.cloneDeep(defaultOptions); let options = plugins.lodash.assign(mergeOptions, optionsArg); let figletString: string = plugins.figlet.textSync(textArg, { font: options.font, horizontalLayout: 'default', verticalLayout: 'default' }); console.log(colorFiglet(figletString, options.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; };