UNPKG

@augment-vir/common

Version:

A collection of augments, helpers types, functions, and classes for any JavaScript environment.

144 lines (143 loc) 5.08 kB
import { perEnv, RuntimeEnv } from '@augment-vir/core'; /** * Supported log output types. * * @category Log : Util * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export var LogOutputType; (function (LogOutputType) { /** Logged to stdout if the current environment supports it, or just `console.log`. */ LogOutputType["Standard"] = "stdout"; /** Logged to stderr if the current environment supports it, or just `console.error`. */ LogOutputType["Error"] = "stderr"; })(LogOutputType || (LogOutputType = {})); /** * Standardized color keys for logging. If you want to use customized colors, use * [ansi-styles](https://www.npmjs.com/package/ansi-styles) in Node.js or [custom * CSS](https://developer.mozilla.org/docs/Web/API/console#styling_console_output) in browsers. * * @category Log : Util * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export var LogColorKey; (function (LogColorKey) { LogColorKey["Bold"] = "bold"; LogColorKey["Debug"] = "debug"; LogColorKey["Error"] = "error"; LogColorKey["Faint"] = "faint"; LogColorKey["Info"] = "info"; LogColorKey["Mutate"] = "mutate"; LogColorKey["NormalWeight"] = "normalWeight"; LogColorKey["Plain"] = "plain"; LogColorKey["Reset"] = "reset"; LogColorKey["Success"] = "success"; LogColorKey["Warning"] = "warning"; })(LogColorKey || (LogColorKey = {})); async function determineDefaultLogColors() { return await perEnv({ /** We calculate coverage in web, so the node code will never run in coverage tests. */ /* node:coverage disable */ async [RuntimeEnv.Node]() { const styles = (await import('ansi-styles')).default; return { [LogColorKey.Bold]: styles.bold.open, [LogColorKey.Debug]: styles.blueBright.open, [LogColorKey.Error]: styles.red.open, [LogColorKey.Faint]: styles.gray.open, [LogColorKey.Info]: styles.cyan.open, [LogColorKey.Mutate]: styles.magenta.open, [LogColorKey.NormalWeight]: '\x1b[22m', [LogColorKey.Plain]: '', [LogColorKey.Reset]: styles.reset.open, [LogColorKey.Success]: styles.green.open, [LogColorKey.Warning]: styles.yellow.open, }; }, /* node:coverage enable */ [RuntimeEnv.Web]() { return Promise.resolve({ [LogColorKey.Bold]: 'font-weight: bold', [LogColorKey.Debug]: 'color: blue', [LogColorKey.Error]: 'color: red', [LogColorKey.Faint]: 'color: grey', [LogColorKey.Info]: 'color: teal', [LogColorKey.Mutate]: 'color: magenta', [LogColorKey.NormalWeight]: '', [LogColorKey.Plain]: '', [LogColorKey.Reset]: '', [LogColorKey.Success]: 'color: green', [LogColorKey.Warning]: 'color: orange', }); }, }); } /** * Mapping of color keys to the current color string. * * @category Log : Util * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export const logColors = await determineDefaultLogColors(); /** * Default implementation of {@link LogColorConfig}. * * @category Log : Util * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export const defaultLogColorConfig = { [LogColorKey.Bold]: { colors: [logColors.bold], logType: LogOutputType.Standard, }, [LogColorKey.Debug]: { colors: [logColors.debug], logType: LogOutputType.Standard, }, [LogColorKey.Faint]: { colors: [logColors.faint], logType: LogOutputType.Standard, }, [LogColorKey.Info]: { colors: [logColors.info], logType: LogOutputType.Standard, }, [LogColorKey.Mutate]: { colors: [ logColors.mutate, logColors.bold, ], logType: LogOutputType.Standard, }, [LogColorKey.NormalWeight]: { colors: [logColors.normalWeight], logType: LogOutputType.Standard, }, [LogColorKey.Plain]: { colors: [], logType: LogOutputType.Standard }, [LogColorKey.Reset]: { colors: [logColors.reset], logType: LogOutputType.Standard, }, [LogColorKey.Success]: { colors: [ logColors.success, logColors.bold, ], logType: LogOutputType.Standard, }, [LogColorKey.Error]: { colors: [ logColors.error, logColors.bold, ], logType: LogOutputType.Error, }, [LogColorKey.Warning]: { colors: [logColors.warning], logType: LogOutputType.Error, }, };