| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | 'use strict';const escapeStringRegexp = require('escape-string-regexp');const platform = process.platform;const main = {	tick: '✔',	cross: '✖',	star: '★',	square: '▇',	squareSmall: '◻',	squareSmallFilled: '◼',	play: '▶',	circle: '◯',	circleFilled: '◉',	circleDotted: '◌',	circleDouble: '◎',	circleCircle: 'ⓞ',	circleCross: 'ⓧ',	circlePipe: 'Ⓘ',	circleQuestionMark: '?⃝',	bullet: '●',	dot: '․',	line: '─',	ellipsis: '…',	pointer: '❯',	pointerSmall: '›',	info: 'ℹ',	warning: '⚠',	hamburger: '☰',	smiley: '㋡',	mustache: '෴',	heart: '♥',	arrowUp: '↑',	arrowDown: '↓',	arrowLeft: '←',	arrowRight: '→',	radioOn: '◉',	radioOff: '◯',	checkboxOn: '☒',	checkboxOff: '☐',	checkboxCircleOn: 'ⓧ',	checkboxCircleOff: 'Ⓘ',	questionMarkPrefix: '?⃝',	oneHalf: '½',	oneThird: '⅓',	oneQuarter: '¼',	oneFifth: '⅕',	oneSixth: '⅙',	oneSeventh: '⅐',	oneEighth: '⅛',	oneNinth: '⅑',	oneTenth: '⅒',	twoThirds: '⅔',	twoFifths: '⅖',	threeQuarters: '¾',	threeFifths: '⅗',	threeEighths: '⅜',	fourFifths: '⅘',	fiveSixths: '⅚',	fiveEighths: '⅝',	sevenEighths: '⅞'};const win = {	tick: '√',	cross: '×',	star: '*',	square: '█',	squareSmall: '[ ]',	squareSmallFilled: '[█]',	play: '►',	circle: '( )',	circleFilled: '(*)',	circleDotted: '( )',	circleDouble: '( )',	circleCircle: '(○)',	circleCross: '(×)',	circlePipe: '(│)',	circleQuestionMark: '(?)',	bullet: '*',	dot: '.',	line: '─',	ellipsis: '...',	pointer: '>',	pointerSmall: '»',	info: 'i',	warning: '‼',	hamburger: '≡',	smiley: '☺',	mustache: '┌─┐',	heart: main.heart,	arrowUp: main.arrowUp,	arrowDown: main.arrowDown,	arrowLeft: main.arrowLeft,	arrowRight: main.arrowRight,	radioOn: '(*)',	radioOff: '( )',	checkboxOn: '[×]',	checkboxOff: '[ ]',	checkboxCircleOn: '(×)',	checkboxCircleOff: '( )',	questionMarkPrefix: '?',	oneHalf: '1/2',	oneThird: '1/3',	oneQuarter: '1/4',	oneFifth: '1/5',	oneSixth: '1/6',	oneSeventh: '1/7',	oneEighth: '1/8',	oneNinth: '1/9',	oneTenth: '1/10',	twoThirds: '2/3',	twoFifths: '2/5',	threeQuarters: '3/4',	threeFifths: '3/5',	threeEighths: '3/8',	fourFifths: '4/5',	fiveSixths: '5/6',	fiveEighths: '5/8',	sevenEighths: '7/8'};if (platform === 'linux') {	// the main one doesn't look that good on Ubuntu	main.questionMarkPrefix = '?';}const figures = platform === 'win32' ? win : main;const fn = str => {	if (figures === main) {		return str;	}	Object.keys(main).forEach(key => {		if (main[key] === figures[key]) {			return;		}		str = str.replace(new RegExp(escapeStringRegexp(main[key]), 'g'), figures[key]);	});	return str;};module.exports = Object.assign(fn, figures);
 |