nightingale-formatter 14.1.0 → 14.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,18 @@
1
- # Change Log
1
+ # Changelog
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.2.0](https://github.com/christophehurpeau/nightingale/compare/v14.1.0...v14.2.0) (2023-11-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **nightingale-formatter:** fix duplicate name and message in error stack ([bf4faf6](https://github.com/christophehurpeau/nightingale/commit/bf4faf655afd80ae0040f8627ad1bff1ff558f90))
12
+ Version bump for dependency: nightingale-levels
13
+ Version bump for dependency: nightingale-types
14
+
15
+
6
16
  ## [14.1.0](https://github.com/christophehurpeau/nightingale/compare/v14.0.2...v14.1.0) (2023-07-27)
7
17
 
8
18
  **Note:** Version bump only for package nightingale-formatter
@@ -1 +1 @@
1
- {"version":3,"file":"formatObject.d.ts","sourceRoot":"","sources":["../../src/formatObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhE,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAya9E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,OAAmB,EAC5B,YAAY,CAAC,EAAE,YAAY,EAC3B,EAAE,OAAc,EAAE,QAAa,EAAE,GAAE,mBAAwB,GAC1D,MAAM,CAkBR"}
1
+ {"version":3,"file":"formatObject.d.ts","sourceRoot":"","sources":["../../src/formatObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhE,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AA2a9E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,OAAmB,EAC5B,YAAY,CAAC,EAAE,YAAY,EAC3B,EAAE,OAAc,EAAE,QAAa,EAAE,GAAE,mBAAwB,GAC1D,MAAM,CAkBR"}
@@ -212,7 +212,7 @@ function internalFormatValue(value, styleFn, styles, _ref) {
212
212
  }
213
213
  } else if (value instanceof Error) {
214
214
  stack = value.stack;
215
- stringValue = stack != null && stack.startsWith(value.message) ? stack : value.message + "\n" + (stack || '');
215
+ stringValue = stack != null && stack.startsWith(value.message) || stack != null && stack.startsWith(value.name + ": " + value.message) ? stack : value.message + "\n" + (stack || '');
216
216
  } else if (value instanceof Map) {
217
217
  name = value.constructor.name;
218
218
  if (depth >= maxDepth) {
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","_levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","_levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","_extends","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","_unused","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","_ref","padding","depth","maxDepth","objects","stack","name","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","startsWith","message","Map","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","_internalFormatValue","internalFormatIterator","values","objectStyles","_ref2","_ref3","prefix","suffix","_ref3$prefixSuffixSpa","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","_ref4","index","_formatKey","_internalFormatValue2","includes","v","fv","join","object","_ref5","has","keys","add","result","delete","_ref6","concat","get","array","_ref7","set","_ref8","formatObject","_temp","_ref9","_ref9$padding","_ref9$maxDepth","_internalFormatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue =\n stack?.startsWith(value.message) ||\n stack?.startsWith(`${value.name}: ${value.message}`)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","_levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","_levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","_extends","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","_unused","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","_ref","padding","depth","maxDepth","objects","stack","name","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","startsWith","message","Map","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","_internalFormatValue","internalFormatIterator","values","objectStyles","_ref2","_ref3","prefix","suffix","_ref3$prefixSuffixSpa","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","_ref4","index","_formatKey","_internalFormatValue2","includes","v","fv","join","object","_ref5","has","keys","add","result","delete","_ref6","concat","get","array","_ref7","set","_ref8","formatObject","_temp","_ref9","_ref9$padding","_ref9$maxDepth","_internalFormatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
@@ -222,7 +222,7 @@ function internalFormatValue(value, styleFn, styles, {
222
222
  }
223
223
  } else if (value instanceof Error) {
224
224
  const stack = value.stack;
225
- stringValue = stack?.startsWith(value.message) ? stack : `${value.message}\n${stack || ''}`;
225
+ stringValue = stack?.startsWith(value.message) || stack?.startsWith(`${value.name}: ${value.message}`) ? stack : `${value.message}\n${stack || ''}`;
226
226
  } else if (value instanceof Map) {
227
227
  const name = value.constructor.name;
228
228
  if (depth >= maxDepth) {
@@ -1 +1 @@
1
- {"version":3,"file":"index-browsermodern.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
1
+ {"version":3,"file":"index-browsermodern.es.js","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue =\n stack?.startsWith(value.message) ||\n stack?.startsWith(`${value.name}: ${value.message}`)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","name","Map","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
@@ -222,7 +222,7 @@ function internalFormatValue(value, styleFn, styles, {
222
222
  }
223
223
  } else if (value instanceof Error) {
224
224
  const stack = value.stack;
225
- stringValue = stack?.startsWith(value.message) ? stack : `${value.message}\n${stack || ''}`;
225
+ stringValue = stack?.startsWith(value.message) || stack?.startsWith(`${value.name}: ${value.message}`) ? stack : `${value.message}\n${stack || ''}`;
226
226
  } else if (value instanceof Map) {
227
227
  const name = value.constructor.name;
228
228
  if (depth >= maxDepth) {
@@ -1 +1 @@
1
- {"version":3,"file":"index-node18.mjs","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue = stack?.startsWith(value.message)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","Map","name","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
1
+ {"version":3,"file":"index-node18.mjs","sources":["../src/levelToStyles.ts","../src/levelToSymbol.ts","../src/styleToHexColor.ts","../src/styleToHtmlStyle.ts","../src/formatObject.ts","../src/formatRecordToString.ts"],"sourcesContent":["import { Level } from 'nightingale-levels';\n\nexport type LevelToStyles = Readonly<Record<number, string[]>>;\n\nexport const levelToStyles: LevelToStyles = {\n [Level.TRACE]: ['gray'],\n [Level.DEBUG]: ['gray'],\n // [Level.INFO]: ['gray'],\n [Level.WARN]: ['yellow'],\n [Level.ERROR]: ['red', 'bold'],\n [Level.CRITICAL]: ['red', 'bold'],\n [Level.FATAL]: ['bgRed', 'white'],\n [Level.EMERGENCY]: ['bgRed', 'white'],\n};\n","import { Level } from 'nightingale-levels';\n\nexport type LevelToSymbol = Readonly<Record<number, string>>;\n\nexport const levelToSymbol: LevelToSymbol = {\n [Level.TRACE]: '•',\n [Level.DEBUG]: '•',\n [Level.INFO]: '→',\n [Level.WARN]: '⚠',\n [Level.ERROR]: '✖',\n [Level.CRITICAL]: '!',\n [Level.FATAL]: '‼',\n [Level.EMERGENCY]: '‼',\n};\n","export type StyleToHexColor = Readonly<Record<string, string>>;\n\nexport const styleToHexColor: StyleToHexColor = {\n orange: 'ff5f00',\n grayLight: '808080',\n 'gray-light': '808080',\n};\n","import { styleToHexColor } from './styleToHexColor';\n\nexport interface HtmlStyle {\n readonly open: string;\n readonly close: string;\n}\n\nexport type StyleToHtmlStyle = Readonly<Record<string, HtmlStyle>>;\n\nexport const styleToHtmlStyleThemeLight: StyleToHtmlStyle = {\n // text style\n bold: { open: 'font-weight: bold', close: 'font-weight: normal' },\n italic: { open: 'font-style: italic', close: 'font-style: normal' },\n underline: {\n open: 'text-decoration: underline',\n close: 'text-decoration: none',\n },\n inverse: {\n open: 'unicode-bidi: bidi-override; direction: rtl',\n close: 'unicode-bidi: normal; direction: ltr',\n },\n strikethrough: {\n open: 'text-decoration: line-through',\n close: 'text-decoration: none',\n },\n\n black: { open: 'color: black', close: 'color: currentcolor' },\n red: { open: 'color: #ff0020', close: 'color: currentcolor' },\n green: { open: 'color: #00b317', close: 'color: currentcolor' },\n yellow: { open: 'color: #ffcc00', close: 'color: currentcolor' },\n blue: { open: 'color: #00a0ff', close: 'color: currentcolor' },\n magenta: { open: 'color: #ff00a0', close: 'color: currentcolor' },\n cyan: { open: 'color: #00cfd8', close: 'color: currentcolor' },\n white: { open: 'color: white', close: 'color: currentcolor' },\n gray: { open: 'color: gray', close: 'color: currentcolor' },\n\n bgBlack: { open: 'background: black', close: 'background: initial' },\n bgRed: { open: 'background: #ff0020', close: 'background: initial' },\n bgGreen: { open: 'background: #00b317', close: 'background: initial' },\n bgYellow: { open: 'background: #ffcc00', close: 'background: initial' },\n bgBlue: { open: 'background: #00a0ff', close: 'background: initial' },\n bgMagenta: { open: 'background: #ff00a0', close: 'background: initial' },\n bgCyan: { open: 'background: #00cfd8', close: 'background: initial' },\n bgWhite: { open: 'background: white', close: 'background: initial' },\n\n orange: {\n open: `color: #${styleToHexColor.orange}`,\n close: 'color: currentcolor',\n },\n grayLight: {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n 'gray-light': {\n open: `color: #${styleToHexColor.grayLight}`,\n close: 'color: currentcolor',\n },\n};\n\nexport const styleToHtmlStyleThemeDark: StyleToHtmlStyle = {\n ...styleToHtmlStyleThemeLight,\n black: styleToHtmlStyleThemeLight.white,\n bgBlack: styleToHtmlStyleThemeLight.bgWhite,\n white: styleToHtmlStyleThemeLight.black,\n bgWhite: styleToHtmlStyleThemeLight.bgBlack,\n gray: { open: 'color: lightgray', close: 'color: currentcolor' },\n};\n","/* eslint-disable max-lines, @typescript-eslint/no-use-before-define */\nimport type { Styles } from 'nightingale-types';\n\nexport interface FormatObjectOptions {\n padding?: string;\n maxDepth?: number;\n}\n\nexport type StyleFn = (styles: Styles, value: string) => string;\n\nexport type ObjectStyles<Keys extends string = string> = Record<Keys, Styles>;\n\nconst noStyleFn: StyleFn = (styles: Styles, value: string): string => value;\n\ninterface InternalFormatParams {\n padding: string;\n depth: number;\n maxDepth: number;\n objects: Set<unknown>;\n}\n\ninterface FormattedKey {\n stringKey: string;\n formattedKey: string;\n}\n\ntype FormatKey<Key> = (\n key: Key,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n) => FormattedKey;\n\ninterface Value<Key> {\n key: Key;\n value: unknown;\n}\n\ninterface FormattedValue {\n stringValue: string;\n formattedValue: string;\n}\n\ntype Values<Key> = Value<Key>[];\n\ninterface InternalFormatIteratorParams<Key> {\n prefix: string;\n suffix: string;\n formatKey: FormatKey<Key>;\n prefixSuffixSpace?: string;\n}\n\nfunction tryStringify(arg: unknown): string {\n try {\n return JSON.stringify(arg).replace(/\\\\n/g, '\\n');\n } catch {\n return '[Circular]';\n }\n}\n\nconst sameRawFormattedValue = (value: string): FormattedValue => ({\n stringValue: value,\n formattedValue: value,\n});\n\nfunction internalFormatValue(\n value: unknown,\n styleFn: StyleFn,\n styles: Styles,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n const typeofValue = typeof value;\n\n if (!styles) {\n if (value == null) {\n styles = ['cyan'];\n } else {\n switch (typeofValue) {\n case 'undefined':\n styles = ['cyan'];\n break;\n case 'boolean':\n styles = ['green'];\n break;\n case 'number':\n styles = ['yellow'];\n break;\n case 'bigint':\n styles = ['red'];\n break;\n case 'string':\n styles = ['orange'];\n break;\n case 'symbol':\n styles = ['magenta'];\n break;\n case 'object':\n case 'function':\n break;\n }\n }\n }\n\n let stringValue: string;\n if (value === null) {\n stringValue = 'null';\n } else if (value === undefined) {\n stringValue = 'undefined';\n } else if (typeofValue === 'boolean') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n stringValue = (value as any).toString() as string;\n } else if ((value as () => unknown).constructor === Object) {\n if (depth >= maxDepth) {\n stringValue = '{Object...}';\n } else {\n return internalFormatObject(\n value as Record<string, unknown>,\n styleFn,\n undefined,\n {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n },\n );\n }\n } else if (Array.isArray(value)) {\n if (depth >= maxDepth) {\n stringValue = '[Array...]';\n } else {\n return internalFormatArray(value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof Error) {\n const stack = value.stack;\n stringValue =\n stack?.startsWith(value.message) ||\n stack?.startsWith(`${value.name}: ${value.message}`)\n ? stack\n : `${value.message}\\n${stack || ''}`;\n } else if (value instanceof Map) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatMap(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (typeofValue === 'bigint') {\n stringValue = (value as bigint).toString();\n } else if (typeofValue === 'symbol') {\n stringValue = (value as symbol).toString();\n } else if (value instanceof Set) {\n const name = value.constructor.name;\n if (depth >= maxDepth) {\n stringValue = `{${name}...}`;\n } else {\n return internalFormatSet(name, value, styleFn, {\n padding,\n depth: depth + 1,\n maxDepth,\n objects,\n });\n }\n } else if (value instanceof WeakMap) {\n stringValue = '{WeakMap...}';\n } else if (value instanceof WeakSet) {\n stringValue = '{WeakSet...}';\n } else {\n stringValue = tryStringify(value);\n }\n\n const formattedValue = styleFn(styles, stringValue);\n\n return {\n stringValue,\n formattedValue,\n };\n}\n\nconst separator = ',';\n\nconst internalFormatKey: FormatKey<string> = (\n key: string,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return {\n stringKey: `${key}: `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${key}:`)} `,\n };\n};\n\nconst internalNoKey: FormatKey<undefined> = (\n key: string | undefined,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n return { stringKey: '', formattedKey: '' };\n};\n\nconst internalFormatMapKey: FormatKey<unknown> = (\n key: unknown,\n styleFn: StyleFn,\n internalFormatParams: InternalFormatParams,\n): FormattedKey => {\n const { stringValue, formattedValue } = internalFormatValue(\n key,\n noStyleFn,\n undefined,\n internalFormatParams,\n );\n return {\n stringKey: `${stringValue} => `,\n formattedKey: `${styleFn(['gray-light', 'bold'], `${formattedValue}:`)} `,\n };\n};\n\nconst internalFormatIterator = <Key>(\n values: Values<Key>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n {\n prefix,\n suffix,\n prefixSuffixSpace = ' ',\n formatKey,\n }: InternalFormatIteratorParams<Key>,\n): FormattedValue => {\n let breakLine = false;\n const formattedSeparator = (): string => styleFn(['gray'], separator);\n\n const valuesMaxIndex = values.length - 1;\n const formattedValues: FormattedValue[] = values.map(\n ({ key, value }, index: number) => {\n const nextDepth = depth + 1;\n const internalFormatParams = {\n padding,\n depth: nextDepth,\n maxDepth,\n objects,\n };\n\n // key must be formatted before value (browser-formatter needs order)\n const { stringKey, formattedKey } = formatKey(\n key,\n styleFn,\n internalFormatParams,\n );\n\n let { stringValue, formattedValue } = internalFormatValue(\n value,\n styleFn,\n key && objectStyles\n ? objectStyles[key as unknown as string]\n : undefined,\n internalFormatParams,\n );\n\n if (\n stringValue &&\n (stringValue.length > 80 || stringValue.includes('\\n'))\n ) {\n breakLine = true;\n stringValue = stringValue.replace(/\\n/g, `\\n${padding}`);\n formattedValue = formattedValue.replace(/\\n/g, `\\n${padding}`);\n }\n\n return {\n stringValue:\n stringKey + stringValue + (index === valuesMaxIndex ? '' : separator),\n formattedValue:\n formattedKey +\n formattedValue +\n (index === valuesMaxIndex ? '' : formattedSeparator()),\n // note: we need to format the separator for each values for browser-formatter\n };\n },\n );\n\n return {\n stringValue:\n prefix +\n formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.stringValue}`\n : (fv) => fv.stringValue,\n )\n .join(breakLine ? '\\n' : ' ') +\n suffix,\n formattedValue: `${prefix}${\n breakLine ? '' : prefixSuffixSpace\n }${formattedValues\n .map(\n breakLine\n ? (v) => `\\n${padding}${v.formattedValue}`\n : (v) => v.formattedValue,\n )\n .join(breakLine ? '' : ' ')}${\n breakLine ? ',\\n' : prefixSuffixSpace\n }${suffix}`,\n };\n};\n\nfunction internalFormatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn,\n objectStyles: ObjectStyles | undefined,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(object)) {\n return sameRawFormattedValue('{Circular Object}');\n }\n\n const keys: string[] = Object.keys(object);\n if (keys.length === 0) {\n return sameRawFormattedValue('{}');\n }\n\n objects.add(object);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: object[key] })),\n styleFn,\n objectStyles,\n { padding, depth, maxDepth, objects },\n { prefix: '{', suffix: '}', formatKey: internalFormatKey },\n );\n\n objects.delete(object);\n\n return result;\n}\n\nfunction internalFormatMap(\n name: string,\n map: Map<unknown, unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(map)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const keys = [...map.keys()];\n if (keys.length === 0) {\n return sameRawFormattedValue(`${name} {}`);\n }\n\n objects.add(map);\n\n const result = internalFormatIterator(\n keys.map((key) => ({ key, value: map.get(key) })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} {`, suffix: '}', formatKey: internalFormatMapKey },\n );\n\n objects.delete(map);\n\n return result;\n}\n\nfunction internalFormatArray(\n array: unknown[],\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(array)) {\n return sameRawFormattedValue('{Circular Array}');\n }\n\n if (array.length === 0) {\n return sameRawFormattedValue('[]');\n }\n\n objects.add(array);\n\n const result = internalFormatIterator(\n array.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n {\n prefix: '[',\n suffix: ']',\n prefixSuffixSpace: '',\n formatKey: internalNoKey,\n },\n );\n\n objects.delete(array);\n\n return result;\n}\n\nfunction internalFormatSet(\n name: string,\n set: Set<unknown>,\n styleFn: StyleFn,\n { padding, depth, maxDepth, objects }: InternalFormatParams,\n): FormattedValue {\n if (objects.has(set)) {\n return sameRawFormattedValue(`{Circular ${name}}`);\n }\n\n const values = [...set.values()];\n if (values.length === 0) {\n return sameRawFormattedValue(`${name} []`);\n }\n\n objects.add(set);\n\n const result = internalFormatIterator(\n values.map((value) => ({ key: undefined, value })),\n styleFn,\n undefined,\n { padding, depth, maxDepth, objects },\n { prefix: `${name} [`, suffix: ']', formatKey: internalNoKey },\n );\n\n objects.delete(set);\n\n return result;\n}\n\nexport function formatObject(\n object: Record<string, unknown>,\n styleFn: StyleFn = noStyleFn,\n objectStyles?: ObjectStyles,\n { padding = ' ', maxDepth = 10 }: FormatObjectOptions = {},\n): string {\n const { formattedValue: result } = internalFormatObject(\n object,\n styleFn,\n objectStyles,\n {\n padding,\n maxDepth,\n depth: 0,\n objects: new Set(),\n },\n );\n\n if (result === '{}') {\n return '';\n }\n\n return result;\n}\n","import type { LogRecord, Metadata } from 'nightingale-types';\nimport type { StyleFn, ObjectStyles } from './formatObject';\nimport { formatObject } from './formatObject';\nimport { levelToStyles } from './levelToStyles';\nimport { levelToSymbol } from './levelToSymbol';\n\nexport function formatRecordToString<T extends Metadata>(\n record: LogRecord<T>,\n style: StyleFn,\n): string {\n const parts: string[] = [];\n\n if (record.displayName) {\n parts.push(style(['gray-light'], record.displayName));\n } else if (record.key) {\n parts.push(style(['gray-light'], record.key));\n }\n\n if (record.datetime) {\n parts.push(\n style(['gray', 'bold'], record.datetime.toTimeString().split(' ')[0]),\n );\n /* new Date().toFormat('HH24:MI:SS') */\n }\n\n let message: string = record.symbol || levelToSymbol[record.level];\n const styles = record.styles || levelToStyles[record.level];\n\n if (record.message) {\n if (message) {\n message += ` ${record.message}`;\n } else {\n message = record.message;\n }\n }\n\n if (message) {\n if (styles) {\n message = style(styles, message);\n }\n parts.push(message);\n }\n\n const formatRecordObject = (\n key: string,\n object: Record<string, unknown> | undefined,\n objectStyles: ObjectStyles | undefined,\n ): void => {\n if (!object) {\n return;\n }\n\n const stringObject = formatObject(object, style, objectStyles);\n\n if (!stringObject) {\n return;\n }\n\n parts.push(stringObject);\n };\n\n formatRecordObject('metadata', record.metadata, record.metadataStyles);\n formatRecordObject('extra', record.extra, undefined);\n formatRecordObject('context', record.context, undefined);\n\n return parts.join(' ');\n}\n"],"names":["levelToStyles","Level","TRACE","DEBUG","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","levelToSymbol","INFO","styleToHexColor","orange","grayLight","styleToHtmlStyleThemeLight","bold","open","close","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","styleToHtmlStyleThemeDark","noStyleFn","styles","value","tryStringify","arg","JSON","stringify","replace","sameRawFormattedValue","stringValue","formattedValue","internalFormatValue","styleFn","padding","depth","maxDepth","objects","typeofValue","undefined","toString","constructor","Object","internalFormatObject","Array","isArray","internalFormatArray","Error","stack","startsWith","message","name","Map","internalFormatMap","Set","internalFormatSet","WeakMap","WeakSet","separator","internalFormatKey","key","stringKey","formattedKey","internalNoKey","internalFormatMapKey","internalFormatParams","internalFormatIterator","values","objectStyles","prefix","suffix","prefixSuffixSpace","formatKey","breakLine","formattedSeparator","valuesMaxIndex","length","formattedValues","map","index","includes","v","fv","join","object","has","keys","add","result","delete","get","array","set","formatObject","formatRecordToString","record","style","parts","displayName","push","datetime","toTimeString","split","symbol","level","formatRecordObject","stringObject","metadata","metadataStyles","extra","context"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale-formatter",
3
- "version": "14.1.0",
3
+ "version": "14.2.0",
4
4
  "description": "Nightingale formatter",
5
5
  "keywords": [
6
6
  "nightingale",
@@ -47,6 +47,10 @@
47
47
  }
48
48
  },
49
49
  "sideEffects": false,
50
+ "files": [
51
+ "src",
52
+ "dist"
53
+ ],
50
54
  "scripts": {
51
55
  "build": "yarn clean:build && rollup --config rollup.config.mjs && yarn run build:definitions",
52
56
  "build:definitions": "tsc -p tsconfig.json",
@@ -77,14 +81,13 @@
77
81
  ]
78
82
  },
79
83
  "dependencies": {
80
- "nightingale-levels": "14.1.0",
81
- "nightingale-types": "14.1.0"
84
+ "nightingale-levels": "14.2.0",
85
+ "nightingale-types": "14.2.0"
82
86
  },
83
87
  "devDependencies": {
84
- "@babel/core": "7.22.9",
85
- "@babel/preset-env": "7.22.9",
86
- "pob-babel": "36.2.0",
87
- "typescript": "5.1.6"
88
- },
89
- "gitHead": "fa6fa6109188db75b1b0e6a7ad5d6ae607a26711"
90
- }
88
+ "@babel/core": "7.23.2",
89
+ "@babel/preset-env": "7.23.2",
90
+ "pob-babel": "36.4.4",
91
+ "typescript": "5.2.2"
92
+ }
93
+ }
@@ -7,6 +7,9 @@
7
7
  "plugins": ["@typescript-eslint"],
8
8
  "extends": ["@pob/eslint-config-typescript"],
9
9
  "ignorePatterns": ["*.d.ts"],
10
+ "rules": {
11
+ "@typescript-eslint/max-params": "warn"
12
+ },
10
13
  "overrides": [
11
14
  {
12
15
  "files": ["**/*.test.ts", "__tests__/**/*.ts"],
@@ -137,9 +137,11 @@ function internalFormatValue(
137
137
  }
138
138
  } else if (value instanceof Error) {
139
139
  const stack = value.stack;
140
- stringValue = stack?.startsWith(value.message)
141
- ? stack
142
- : `${value.message}\n${stack || ''}`;
140
+ stringValue =
141
+ stack?.startsWith(value.message) ||
142
+ stack?.startsWith(`${value.name}: ${value.message}`)
143
+ ? stack
144
+ : `${value.message}\n${stack || ''}`;
143
145
  } else if (value instanceof Map) {
144
146
  const name = value.constructor.name;
145
147
  if (depth >= maxDepth) {
package/.editorconfig DELETED
@@ -1,13 +0,0 @@
1
- # EditorConfig helps developers define and maintain consistent
2
- # coding styles between different editors and IDEs
3
- # http://editorconfig.org
4
-
5
- root = true
6
-
7
- [*]
8
- indent_style = space
9
- indent_size = 2
10
- end_of_line = lf
11
- charset = utf-8
12
- trim_trailing_whitespace = true
13
- insert_final_newline = true
package/.eslintrc.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "root": true,
3
- "extends": ["@pob/eslint-config/root-module"],
4
- "ignorePatterns": ["*.d.ts", "/dist"]
5
- }
package/AUTHORS DELETED
@@ -1 +0,0 @@
1
- Christophe Hurpeau <christophe@hurpeau.com>