mirror of
https://github.com/astefanutti/decktape.git
synced 2024-12-12 13:49:13 +03:00
74 lines
1.6 KiB
JavaScript
74 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
function assembleStyles () {
|
|
var styles = {
|
|
modifiers: {
|
|
reset: [0, 0],
|
|
bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
|
|
dim: [2, 22],
|
|
italic: [3, 23],
|
|
underline: [4, 24],
|
|
inverse: [7, 27],
|
|
hidden: [8, 28],
|
|
strikethrough: [9, 29]
|
|
},
|
|
colors: {
|
|
black: [30, 39],
|
|
red: [31, 39],
|
|
green: [32, 39],
|
|
yellow: [33, 39],
|
|
blue: [34, 39],
|
|
magenta: [35, 39],
|
|
cyan: [36, 39],
|
|
white: [37, 39],
|
|
gray: [90, 39]
|
|
},
|
|
bgColors: {
|
|
bgBlack: [40, 49],
|
|
bgRed: [41, 49],
|
|
bgGreen: [42, 49],
|
|
bgYellow: [43, 49],
|
|
bgBlue: [44, 49],
|
|
bgMagenta: [45, 49],
|
|
bgCyan: [46, 49],
|
|
bgWhite: [47, 49]
|
|
}
|
|
};
|
|
|
|
// fix humans
|
|
styles.colors.grey = styles.colors.gray;
|
|
|
|
Object.keys(styles).forEach(function (groupName) {
|
|
var group = styles[groupName];
|
|
|
|
Object.keys(group).forEach(function (styleName) {
|
|
var style = group[styleName];
|
|
|
|
styles[styleName] = group[styleName] = {
|
|
open: '\u001b[' + style[0] + 'm',
|
|
close: '\u001b[' + style[1] + 'm'
|
|
};
|
|
});
|
|
|
|
Object.defineProperty(styles, groupName, {
|
|
value: group,
|
|
enumerable: false
|
|
});
|
|
});
|
|
|
|
return styles;
|
|
}
|
|
|
|
// Gecko throws a TypeError as the module.exports property is not configurable (i.e. its configurable attribute has already been set to false):
|
|
|
|
/* Object.defineProperty(module, 'exports', {
|
|
enumerable: true,
|
|
get: assembleStyles
|
|
}); */
|
|
|
|
// Just use a more traditional way to export the assembled styles:
|
|
|
|
var styles = assembleStyles();
|
|
Object.keys(styles).forEach(function (style) {
|
|
module.exports[style] = styles[style];
|
|
}); |