jc-color
Version:
A JavaScript tool for color compute and console print tool both for NodeJS and Browser.
1 lines • 2.16 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.templates=exports.getPlatform=void 0;const types_1=require("../types");function hasDomAndWin(){return"undefined"!=typeof window&&"undefined"!=typeof document}function hasProcessObj(){return"undefined"!=typeof process}function getPlatform(){var e=hasDomAndWin(),r=hasProcessObj();return e&&r?"Electron":r?"Node":"Browser"}exports.getPlatform=getPlatform;const styles={remove_all:"[0m",bold:"[1m",dark:"[2m",italic:"[3m",underline:"[4m",glimmer:"[5m",reverse:"[7m",hidden:"[8m",delete:"[9m",underline_double:"[21m",remove_bold:"[22m",remove_underline:"[24m",remove_glimmer:"[25m",remove_reverse:"[27m",remove_hidden:"[28m",remove_delete:"[29m",overline:"[53m",remove_overline:"[55m",clear:"[2J"},countNodeStyle=(e,r)=>{let o="";var t={red:-1,green:-1,blue:-1};return e.clear&&(o+=styles.clear),o+=styles.remove_all,e.bold?o+=styles.bold:e.dark&&(o+=styles.dark),e.italic&&(o+=styles.italic),e.underline&&(o+=styles.underline),e.underline_double&&(o+=styles.underline_double),e.glimmer&&(o+=styles.glimmer),e.reverse&&(o+=styles.reverse),e.hidden&&(o+=styles.hidden),e.delete&&(o+=styles.delete),e.overline&&(o+=styles.overline),r.foreColor!==t&&(r.modes.inverseFore?o+=`[1;${types_1.ColorTypeCode.frColor};2;${255-parseInt(r.foreColor.red.toString())};${255-parseInt(r.foreColor.green.toString(),10)};${255-parseInt(r.foreColor.blue.toString(),10)}m`:o+=`[1;${types_1.ColorTypeCode.frColor};2;${parseInt(r.foreColor.red.toString())};${parseInt(r.foreColor.green.toString(),10)};${parseInt(r.foreColor.blue.toString(),10)}m`),r.bgColor!==t&&(r.modes.inverseBg?o+=`[1;${types_1.ColorTypeCode.bgClolr};2;${255-parseInt(r.bgColor.red.toString())};${255-parseInt(r.bgColor.green.toString())};${255-parseInt(r.bgColor.blue.toString())}m`:o+=`[1;${types_1.ColorTypeCode.bgClolr};2;${parseInt(r.bgColor.red.toString())};${parseInt(r.bgColor.green.toString())};${parseInt(r.bgColor.blue.toString())}m`),o+=r.text,r.endstyle&&(o+="[0m"),o},templates=e=>({Node:{default:countNodeStyle(e.modes,e),styless:"[0m"+e.text},Browser:"%c"+e.text});exports.templates=templates;