62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import 'typings-global'
|
|
import plugins = require('./beautylog.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
|
|
}
|