implementation ready
This commit is contained in:
74
ts/index.ts
Normal file
74
ts/index.ts
Normal file
@ -0,0 +1,74 @@
|
||||
import 'typings-global'
|
||||
import * as ansiColors from 'ansi-256-colors'
|
||||
|
||||
/**
|
||||
* all the color names that are available for proper xterm translation
|
||||
*/
|
||||
export type TColorName = 'black' |
|
||||
'blue' |
|
||||
'brown' |
|
||||
'cyan' |
|
||||
'green' |
|
||||
'red' |
|
||||
'orange' |
|
||||
'white'
|
||||
|
||||
export interface IRGB {
|
||||
r: number,
|
||||
b: number,
|
||||
g: number
|
||||
}
|
||||
|
||||
/**
|
||||
* the color translator function
|
||||
*/
|
||||
let colorTranslator = (colorArg: TColorName): IRGB => {
|
||||
switch (colorArg) {
|
||||
case 'blue':
|
||||
return {r: 0, g: 1, b: 5}
|
||||
case 'cyan':
|
||||
return {r: 0,g: 4, b: 4}
|
||||
case 'green':
|
||||
return {r: 2, g: 5, b: 0}
|
||||
case 'red':
|
||||
return {r: 5, g: 0, b: 0}
|
||||
case 'orange':
|
||||
return {r: 5, g: 3, b: 0}
|
||||
case 'brown':
|
||||
return {r: 1, g: 0 , b: 0}
|
||||
case 'black':
|
||||
return {r: 0, g: 0, b: 0}
|
||||
case 'white':
|
||||
return {r: 5, g: 5, b: 5}
|
||||
default:
|
||||
return {r: 5, g: 5, b: 5}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* colors the font of a string
|
||||
*/
|
||||
let coloredFont = (stringArg: string, colorArg: TColorName) => {
|
||||
let rgbCode: IRGB = colorTranslator(colorArg)
|
||||
return ansiColors.fg.getRgb(rgbCode.r, rgbCode.g, rgbCode.b) + stringArg
|
||||
}
|
||||
|
||||
/**
|
||||
* colors the back of a string
|
||||
*/
|
||||
let coloredBackground = (stringArg: string, colorArg: TColorName) => {
|
||||
let rgbCode = colorTranslator(colorArg)
|
||||
return ansiColors.bg.getRgb(rgbCode.r, rgbCode.g, rgbCode.b) + stringArg
|
||||
}
|
||||
|
||||
/**
|
||||
* color a string with xterm
|
||||
*/
|
||||
export let coloredString = (stringArg: string, colorFontArg: TColorName, colorBackgroundArg?: TColorName): string => {
|
||||
let returnString = coloredFont(stringArg, colorFontArg)
|
||||
if (colorBackgroundArg) {
|
||||
returnString = coloredBackground(returnString, colorBackgroundArg)
|
||||
}
|
||||
returnString = returnString + ansiColors.reset
|
||||
return returnString
|
||||
}
|
Reference in New Issue
Block a user