Оболочка консоли бревно цвет и линия - PullRequest
0 голосов
/ 30 марта 2020

У меня есть это:

  //define in utils.js
   function l (message) {
    if (message.includes('success')) {
        return console.log.bind.call(console.log, console, `%c%s`, `color:green;`)
    } else {
        return console.log.bind.call(console.log, console, `%c%s`)
    }
}
   

    l("success to import")("success to import") // execute in index.js

Это работает, потому что у меня хороший цвет и хорошая строка (из индекса. js и НЕ использует. js). Но я хочу иметь возможность писать только l("success this check work", some var,...)

И не с двумя парами скобок ...

Я хочу иметь функцию-обертку, которая может изменять цвет в зависимости от содержимого журнала: Если у меня есть успехи, я хочу зеленый журнал. Если у меня есть ошибка, я хочу красный журнал и отображать правильную строку журнала, не из utils. js, а из другого файла js, где он называется

enter image description here

1 Ответ

1 голос
/ 30 марта 2020

Я рекомендую создать объект, чтобы отделить метод, например, успех, сбой. Тем не менее, все еще необходимо следовать приведенному ниже синтаксису. Этот образец для node js.

const logger = {
  log: (...messages) => console.log("\x1b[36m%s\x1b[0m", ...messages),
  info: (...messages) => console.log("\x1b[36m%s\x1b[0m", ...messages),
  warn: (...messages) => console.log("\x1b[33m%s\x1b[0m", ...messages),
  error: (...messages) => console.log("\x1b[31m%s\x1b[0m", ...messages),
  success: (...messages) => console.log("\x1b[32m%s\x1b[0m", ...messages),
  _raw: console.log
};
const l = (...messages) => {
  if (messages.length === 1) {
    if (messages[0].indexOf("success") !== -1)
      console.log(`%c${messages[0]}`, "color: green; font-size: 16px;");
    else if (messages[0].indexOf("error") !== -1)
      console.log(`%c${messages[0]}`, "color: red; font-size: 16px;");
    else console.log(`%c${messages[0]}`, "color: blue; font-size: 16px;");
  } else console.log(...messages);
};
l("success to import"); // execute in index.js
l("error to import");
...