archieve-projects/微信机器人/node_modules/cmd-ts/dist/cjs/chalk.js

78 lines
2.0 KiB
JavaScript
Executable File

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.colored = exports.setMode = void 0;
const chalk_1 = __importDefault(require("chalk"));
let mode = 'chalk';
function setMode(newMode) {
mode = newMode;
}
exports.setMode = setMode;
function withLevels(levels, strategy) {
const fn = str => strategy(levels, str);
Object.assign(fn, generateColoredBody(fn, levels, strategy));
return fn;
}
const allColors = [
'black',
'red',
'green',
'yellow',
'blue',
'magenta',
'cyan',
'white',
'gray',
'grey',
'blackBright',
'redBright',
'greenBright',
'yellowBright',
'blueBright',
'magentaBright',
'cyanBright',
'whiteBright',
'italic',
'bold',
'underline',
];
function generateColoredBody(wrapper, levels, strategy) {
const c = allColors.reduce((acc, curr) => {
Object.defineProperty(acc, curr, {
get() {
const x = withLevels([...levels, curr], strategy);
return x;
},
});
return acc;
}, wrapper);
return c;
}
const chalked = generateColoredBody({}, [], (levels, str) => {
const color = levels.reduce((c, curr) => c[curr], chalk_1.default);
return color(str);
});
const tagged = generateColoredBody({}, [], (levels, str) => {
const [start, end] = levels.reduce((acc, curr) => {
acc[0] += `<${curr}>`;
acc[1] = `</${curr}>${acc[1]}`;
return acc;
}, ['', '']);
return `${start}${str}${end}`;
});
const disabled = generateColoredBody({}, [], (_levels, str) => str);
function colored() {
if (mode === 'chalk')
return chalked;
if (mode === 'disabled')
return disabled;
return tagged;
}
exports.colored = colored;
setMode('tags');
console.log(colored().red.bold('hello'));
setMode('chalk');
console.log(colored().red.bold('hello'));
//# sourceMappingURL=chalk.js.map