UNPKG

@gypsy-js/cli

Version:
1 lines 37.1 kB
{"version":3,"file":"index.cjs","sources":["../../../src/lib/colors.js","../../../src/lib/messages.js","../../../src/lib/symbols.js","../../../src/lib/internal/durations.js","../../../src/lib/console.js","../../../src/lib/data.js","../../../src/lib/defaults.js","../../../src/lib/configs.js","../../../src/lib/index.js"],"sourcesContent":["/**\n * @file colors.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-02\n */\n\n/**\n * @type {LoggerColors}\n */\nexport const logger = {\n dbg: '#aaabab',\n log: '#007799',\n inf: '#0099bb',\n wrn: '#0088aa',\n err: '#ff3333',\n};\n\n/**\n * @type {IndicatorColors}\n */\nexport const indicator = {\n exec: '#77ccbb',\n info: '#0088aa',\n warn: '#0088aa',\n succ: '#00ff00',\n fail: '#ff3333',\n};\n\n/**\n * @type {SpinnerColors}\n */\nexport const spinner = {\n spin: '#0099bb',\n updt: '#0088aa',\n succ: '#00ff00',\n fail: '#ff8800',\n};\n","/**\n * @file Message utilities.\n * @author qivmvip AT gmail DOT com.\n * @date 2021-03-01\n */\n\n/**\n * @type {Builder}\n */\nclass Builder {\n constructor(text) {\n this.__text = text;\n }\n\n text(text) {\n this.__text = text;\n }\n\n color(color) {\n this.__color = color;\n return this;\n }\n\n bgColor(bgColor) {\n this.__bgColor = bgColor;\n return this;\n }\n\n bold(bold) {\n this.__bold = bold;\n return this;\n }\n\n italic(italic) {\n this.__italic = italic;\n return this;\n }\n\n underline(underline) {\n this.__underline = underline;\n return this;\n }\n\n /**\n * Build a {@link Message} object.\n * @returns {Message} a new {@link Message}.\n */\n build() {\n if (!this.color && !this.bgColor && !this.__bold && !this.__italic && !this.__underline) {\n return {\n text: this.__text\n };\n } else {\n return {\n text: this.__text,\n style: {\n color: this.__color,\n bgColor: this.__bgColor,\n bold: this.__bold,\n italic: this.__italic,\n underline: this.__underline\n },\n };\n }\n }\n}\n\n/**\n * @type {MessagesBuilderFn}\n */\nexport const builder = (text) => {\n return new Builder(text);\n};\n\n/**\n * @type {MessagesRawFn}\n */\nexport const raw = (text) => {\n return new Builder(text).build();\n};\n\n/**\n * @type {MessagesColorizeFn}\n */\nexport const colorize = (text, color) => {\n return builder(text).color(color).build();\n};\n","/**\n * @file cli library CommonJS entry point.\n * @author qivmvip AT gmail DOT com\n * @date 2022-02-17\n */\n\nimport * as __colors__ from './colors.js';\nimport * as __messages__ from './messages.js';\n\n/**\n * Get the symbol.\n * @param {'logger'|'indicator'|'spinner'} instance\n * @param {string} verb\n * @param {SymbolsGetOptions} options\n * @returns {Message}\n */\nconst __get__ = (instance, verb, options) => {\n const { unicode, colorized, bold } = options || {\n unicode: true, colorized: true, bold: true\n };\n const raw = {\n logger: unicode ? {\n dbg: 'ν',\n log: 'ℹ',\n wrn: '⚠',\n err: '✖',\n } : {\n dbg: 'v',\n log: 'i',\n wrn: '‼',\n err: '×',\n },\n indicator: unicode ? {\n exec: '⇒',\n info: 'ℹ',\n succ: '✔',\n fail: '✘',\n } : {\n exec: 'λ',\n info: 'i',\n succ: '√',\n fail: '×',\n },\n spinner: unicode ? {\n spin: 'æ',\n updt: '…',\n succ: '✔',\n fail: '✘',\n } : {\n spin: 'æ',\n updt: '…',\n succ: '√',\n fail: '×',\n },\n };\n const builder = __messages__.builder(raw[instance][verb]);\n if (colorized) {\n builder.color(__colors__[instance][verb]);\n }\n if (bold) {\n builder.bold(true);\n }\n return builder.build();\n};\n\n/**\n * @type {LoggerSymbols}\n */\nexport const logger = {\n get: (verb, options) => __get__('logger', verb, options),\n};\n\n/**\n * @type {IndicatorSymbols}\n */\nexport const indicator = {\n get: (verb, options) => __get__('indicator', verb, options),\n};\n\n/**\n * @type {SpinnerSymbols}\n */\nexport const spinner = {\n get: (verb, options) => __get__('spinner', verb, options),\n};\n","/**\n * @file Duration utilities.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-01\n */\n\nconst zh = {\n ns: '纳秒',\n us: '微秒',\n ms: '毫秒',\n s: '秒',\n m: '分',\n h: '小时',\n D: '天',\n M: '月',\n Y: '年',\n};\n\nconst en = {\n ns: 'ns',\n us: 'us',\n ms: 'ms',\n s: 's',\n m: 'm',\n h: 'h',\n D: 'D',\n M: 'M',\n Y: 'Y',\n};\n\n/**\n * Format duration to be a human-friendly readable string.\n * @param {number} duration The options.\n * @param {{i18n: {lang: string;};format: {padding: boolean;keepMilliseconds: boolean;};}} options The options.\n * @returns {string} The formatted string.\n */\nexport const readable = (duration, options) => {\n // options\n if (!options) {\n options = {\n i18n: {\n lang: 'en_US.UTF-8',\n },\n format: {\n padding: false,\n keepMilliseconds: true,\n },\n };\n }\n // milliseconds per xxx\n const SECOND_MS = 1000;\n const MINUTE_MS = SECOND_MS * 60;\n const HOUR_MS = MINUTE_MS * 60;\n const DAY_MS = HOUR_MS * 24;\n // unit\n const texts = options.i18n && options.i18n.lang.includes('zh') ? zh : en;\n const MSECS = texts.ms;\n const SECS = texts.s;\n const MINS = texts.m;\n const HRS = texts.h;\n const DAYS = texts.D;\n // format, let's go...\n let remainder = duration;\n // days\n const days = Math.trunc(remainder / DAY_MS);\n remainder = remainder - (days * DAY_MS);\n // hours\n const hrs = Math.trunc(remainder / HOUR_MS);\n remainder = remainder - (hrs * HOUR_MS);\n // minutes\n const mins = Math.trunc(remainder / MINUTE_MS);\n remainder = remainder - (mins * MINUTE_MS);\n // seconds\n const secs = Math.trunc(remainder / SECOND_MS);\n remainder = remainder - (secs * SECOND_MS);\n // milliseconds\n const msecs = remainder;\n // str\n const padding = options && options.format && options.format.padding;\n const msecsStr = padding ? msecs.toString().padStart(3, '0') : msecs.toString();\n const secsStr = padding ? secs.toString().padStart(2, '0') : secs.toString();\n const minsStr = padding ? mins.toString().padStart(2, '0') : mins.toString();\n const hrsStr = hrs.toString();\n const daysStr = days.toString();\n const keepMilliseconds = options && options.format && options.format.keepMilliseconds;\n const msStr = keepMilliseconds ? `${msecsStr}${MSECS}` : '';\n if (days > 0) {\n return `${daysStr}${DAYS}${hrsStr}${HRS}${minsStr}${MINS}${secsStr}${SECS}${msStr}`;\n }\n if (hrs > 0) {\n return `${hrsStr}${HRS}${minsStr}${MINS}${secsStr}${SECS}${msStr}`;\n }\n if (mins > 0) {\n return `${minsStr}${MINS}${secsStr}${SECS}${msStr}`;\n }\n return `${secsStr}${SECS}${msStr}`;\n};\n","/**\n * @file The console.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-02\n */\n\nimport * as __durations__ from './internal/durations.js';\nimport * as __colors__ from './colors.js';\nimport * as __messages__ from './messages.js';\nimport * as __data__ from './data.js';\nimport * as __cli_spinner__ from 'cli-spinner';\nimport __chalk__ from 'chalk';\n\n/**\n * @typedef {import(\"./types/index\").messages.Message} Message\n * @typedef {import(\"./types/index\").Output} Output\n */\n\nconst __ctx__ = () => __data__.context.get();\nconst __dev__ = () => (\n __ctx__() && __ctx__().env && '1' === __ctx__().env.GYPSY_CLI_DEV\n);\nconst __ts__ = () => ((__ctx__() && __ctx__().args) && (\n __ctx__().args.options && __ctx__().args.options['gypsy-cli-ts']\n));\nconst __symbol__ = () => ((__ctx__() && __ctx__().args) && (\n __ctx__().args.options && __ctx__().args.options['gypsy-cli-symbol']\n));\n\n/**\n * Stylify message to as a stylish text.\n * @param {Message} message\n * @returns {string} stylish text.\n */\nconst __stylify__ = (message) => {\n if (message && message.text) {\n if (message.style) {\n let stylish = __chalk__;\n if (message.style.color) {\n stylish = __chalk__.hex(message.style.color);\n }\n if (message.style.bgColor) {\n stylish = stylish.bgHex(message.style.bgColor);\n }\n if (message.style.bold) {\n stylish = stylish.bold;\n }\n if (message.style.italic) {\n stylish = stylish.italic;\n }\n if (message.style.underline) {\n stylish = stylish.underline;\n }\n return stylish(message.text);\n } else {\n return message.text;\n }\n }\n else {\n return '';\n }\n};\n\nconst __dbg__ = (output) => (\n __dev__() && (console.log(__chalk__.gray(`[DEV] output => ${JSON.stringify(output)}`)))\n);\n\n/**\n * format prefix.\n * @param {Output} output\n * @returns\n */\nconst __prefix__ = (output) => (\n ''.concat(\n __symbol__() ? `${__stylify__(output.symbol)} ` : ''\n ).concat(\n __ts__() ? `${__stylify__(__messages__.colorize(output.date.toISOString(), __colors__[output.instance][output.verb]))} ` : ''\n )\n);\n\n/////////////////////////////////// SPINNER ////////////////////////////////////\nlet __spinner_ts__ = Date.now();\nlet __spinner_tag__ = '';\nlet __logger_idle__ = false;\n\nconst __spinner__ = new __cli_spinner__.Spinner({\n onTick: (msg) => {\n __logger_idle__ = true;\n __spinner__.clearLine(__spinner__.stream);\n const cost = Date.now() - __spinner_ts__;\n __spinner__.stream.write(`${msg} 耗时 ${__durations__.readable(cost)}`);\n }\n});\n\n__spinner__.setSpinnerString(Math.floor(Math.random() * 30));\n__spinner__.setSpinnerDelay(Math.floor(Math.random() * 23.333 + 66.666));\n/////////////////////////////////// SPINNER ////////////////////////////////////\n\n/**\n * @type {Sink[]}\n */\nexport const logger = [\n {\n /**\n * Pour out into console.\n * @param {Output} output the output.\n */\n pour: (output) => {\n if (__spinner__.isSpinning() && __logger_idle__) {\n console.log('\\r');\n }\n __dbg__(output);\n const prefix = __prefix__(output);\n const text = prefix.concat(...output.messages.map(x => __stylify__(x)));\n if ('dbg' === output.verb) {\n console.debug(text);\n } else if ('log' === output.verb) {\n console.log(text);\n } else if ('inf' === output.verb) {\n console.info(text);\n } else if ('wrn' === output.verb) {\n console.warn(text);\n } else if ('err' === output.verb) {\n console.error(text);\n } else {\n console.log(\n __chalk__.yellow(`Unknown logger verb => ${JSON.stringify(output)}`)\n );\n }\n __logger_idle__ = false;\n }\n }\n];\n\n/**\n * @type {Sink[]}\n */\nexport const indicator = [\n {\n /**\n * Pour out into console.\n * @param {Output} output the output.\n */\n pour: (output) => {\n if (__spinner__.isSpinning() && __logger_idle__) {\n console.log('\\r');\n }\n __dbg__(output);\n const prefix = __prefix__(output);\n const text = prefix.concat(...output.messages.map(x => __stylify__(x)));\n if ('exec' === output.verb) {\n console.info(text);\n } else if ('info' === output.verb) {\n console.info(text);\n } else if ('warn' === output.verb) {\n console.warn(text);\n } else if ('succ' === output.verb) {\n console.info(text);\n } else if ('fail' === output.verb) {\n console.error(text);\n } else {\n console.log(\n __chalk__.yellow(`Unknown indicator verb => ${JSON.stringify(output)}`)\n );\n }\n __logger_idle__ = false;\n }\n }\n];\n\n/**\n * @type {Sink[]}\n */\nexport const spinner = [\n {\n /**\n *\n * @param {Output} output\n */\n pour: (output) => {\n __dbg__(output);\n const text = ''.concat(\n ...output.messages.map(x => __stylify__(x))\n );\n if ('spin' === output.verb) {\n __logger_idle__ = true;\n __spinner_ts__ = Date.now();\n __spinner_tag__ = `${text} …`;\n const prefix = `${__stylify__(output.symbol)} 执行 => `;\n __spinner__.setSpinnerTitle(\n __chalk__.bgGray(\n `${__chalk__.bold.yellowBright(prefix)} ${__spinner_tag__}`\n )\n );\n __spinner__.start();\n } else if ('updt' === output.verb) {\n const prefix = `${__stylify__(output.symbol)} 执行 => `;\n __spinner__.setSpinnerTitle(\n __chalk__.bgGray(\n `${__chalk__.bold.yellowBright(prefix)} ${__spinner_tag__} ${text}`\n )\n );\n } else if ('succ' === output.verb) {\n __spinner__.stop(true);\n const prefix = `${__stylify__(output.symbol)} 完成 => `;\n const finalText = text ? `${__spinner_tag__} ${text}` : __spinner_tag__;\n __spinner__.stream.write(' ' +\n __chalk__.bgGray(\n `${__chalk__.bold.greenBright(prefix)} ${finalText}`\n ) + ` 耗时 ${__durations__.readable(Date.now() - __spinner_ts__)}\\n`\n );\n __spinner_tag__ = undefined;\n __logger_idle__ = false;\n } else if ('fail' === output.verb) {\n __spinner__.stop(true);\n const prefix = `${__stylify__(output.symbol)} 失败 => `;\n const finalText = text ? `${__spinner_tag__} ${text}` : __spinner_tag__;\n __spinner__.stream.write(' ' +\n __chalk__.bgGray(\n `${__chalk__.bold.redBright(prefix)} ${finalText}`\n + ` 耗时 ${__durations__.readable(Date.now() - __spinner_ts__)}\\n`\n )\n );\n __spinner_tag__ = undefined;\n __logger_idle__ = false;\n } else {\n console.log(\n __chalk__.yellow(`Unknown spinner verb => ${JSON.stringify(output)}`)\n );\n }\n }\n }\n];\n","/**\n * @file The data.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-02\n */\n\nimport * as __console__ from './console';\n\n/**\n * @type {Context}\n */\n\nlet __context__ = {};\n\n/**\n * @type {Sinks}\n */\nlet __sinks__ = __console__;\n\nexport const context = {\n set: (context) => {\n __context__ = context;\n },\n get: () => {\n return __context__;\n }\n};\n\nexport const sinks = {\n set: (sinks) => {\n __sinks__ = sinks;\n },\n get: () => {\n return __sinks__;\n }\n};\n","/**\n * @file The defaults.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-02\n */\n\nimport * as __console__ from './console.js';\n\n/**\n * @type {Context}\n */\nexport const context = Object.freeze({});\n\n/**\n * @type {DefaultSinks}\n */\nexport const sinks = Object.freeze({\n console: __console__,\n devtools: Object.freeze({\n common: __console__,\n chrome: __console__,\n firefox: __console__,\n }),\n html: __console__,\n});\n","/**\n * @file The config.\n * @author qivmvip AT gmail DOT com\n * @date 2022-03-02\n */\n\nimport * as __data__ from './data.js';\n\n/**\n * Configure the context and sinks\n * @param {Context} context The context.\n * @param {Sink} sink The sink.\n */\nexport const configure = (context, sink) => {\n __data__.context.set(context);\n __data__.sinks.set(sink);\n};\n","/**\n * @file cli library CommonJS entry point.\n * @author qivmvip AT gmail DOT com\n * @date 2022-02-17\n */\n\nimport * as __colors__ from './colors.js';\nimport * as __symbols__ from './symbols.js';\nimport * as __messages__ from './messages.js';\nimport * as __data__ from './data.js';\nimport * as __defaults__ from './defaults.js';\nimport * as __configs__ from './configs.js';\n\n/**\n * @type {Message}\n */\nexport const messages = __messages__;\n\n/**\n * @type {Colors}\n */\nexport const colors = __colors__;\n\n/**\n * @type {Symbols}\n */\nexport const symbols = __symbols__;\n\n/**\n* Wrap {@link CliMessages} to {@link Output} objects\n* @param {'logger'|'indicator'|'spinner'} instance\n* @param {string} verb\n* @param {...any} msgs\n* @returns {Output} An output object.\n*/\nconst __wrap__ = (instance, verb, ...msgs) => ({\n date: new Date(),\n instance: instance,\n verb: verb,\n symbol: __symbols__[instance].get(verb),\n messages: msgs.map(msg => {\n if ('string' === (typeof msg)) {\n return __messages__.colorize(msg, colors[instance][verb]);\n } else {\n return msg;\n }\n }),\n});\n\n/**\n * Common verb helper function.\n * @param {'logger'|'indicator'|'spinner'} instance\n * @param {string} verb\n * @param {CliMessages} messages\n */\nconst __verb__ = (instance, verb, ...messages) => {\n const chains = __data__.sinks.get() && __data__.sinks.get()[instance];\n chains && chains.forEach((sink) => {\n sink.pour(__wrap__(instance, verb, ...messages));\n });\n};\n\n/**\n * @type {Defaults}\n */\nexport const defaults = __defaults__;\n\n/**\n * @type {Configs}\n */\nexport const configs = __configs__;\n\n/**\n * @type {Logger}\n */\nexport const logger = {\n dbg: (...messages) => __verb__('logger', 'dbg', ...messages),\n log: (...messages) => __verb__('logger', 'log', ...messages),\n inf: (...messages) => __verb__('logger', 'inf', ...messages),\n wrn: (...messages) => __verb__('logger', 'wrn', ...messages),\n err: (...messages) => __verb__('logger', 'err', ...messages),\n};\n\n/**\n * @type {Indicator}\n */\nexport const indicator = {\n exec: (...messages) => __verb__('indicator', 'exec', ...messages),\n info: (...messages) => __verb__('indicator', 'info', ...messages),\n warn: (...messages) => __verb__('indicator', 'warn', ...messages),\n succ: (...messages) => __verb__('indicator', 'succ', ...messages),\n fail: (...messages) => __verb__('indicator', 'fail', ...messages),\n};\n\n\n/**\n * @type {Spinner}\n */\nexport const spinner = {\n spin: (...messages) => __verb__('spinner', 'spin', ...messages),\n updt: (...messages) => __verb__('spinner', 'updt', ...messages),\n succ: (...messages) => __verb__('spinner', 'succ', ...messages),\n fail: (...messages) => __verb__('spinner', 'fail', ...messages),\n};\n"],"names":["logger","indicator","spinner","builder","__messages__.builder","__data__.context","__chalk__","__messages__.colorize","__cli_spinner__","__durations__.readable","context","sinks","__data__.sinks"],"mappings":"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"}