mirror of
https://github.com/github/codeql-action.git
synced 2025-12-28 10:10:17 +08:00
103 lines
2.9 KiB
JavaScript
103 lines
2.9 KiB
JavaScript
import {inspect} from 'node:util';
|
|
|
|
import ansiStyles from 'ansi-styles';
|
|
import {Chalk} from 'chalk'; // eslint-disable-line unicorn/import-style
|
|
import stripAnsi from 'strip-ansi';
|
|
|
|
import {chalk} from './chalk.js';
|
|
|
|
const forceColor = new Chalk({level: Math.max(chalk.level, 1)});
|
|
|
|
const colorTheme = {
|
|
boolean: ansiStyles.yellow,
|
|
circular: forceColor.grey('[Circular]'),
|
|
date: {
|
|
invalid: forceColor.red('invalid'),
|
|
value: ansiStyles.blue,
|
|
},
|
|
diffGutters: {
|
|
actual: forceColor.red('-') + ' ',
|
|
expected: forceColor.green('+') + ' ',
|
|
padding: ' ',
|
|
},
|
|
error: {
|
|
ctor: {open: ansiStyles.grey.open + '(', close: ')' + ansiStyles.grey.close},
|
|
name: ansiStyles.magenta,
|
|
},
|
|
function: {
|
|
name: ansiStyles.blue,
|
|
stringTag: ansiStyles.magenta,
|
|
},
|
|
global: ansiStyles.magenta,
|
|
item: {after: forceColor.grey(',')},
|
|
list: {openBracket: forceColor.grey('['), closeBracket: forceColor.grey(']')},
|
|
mapEntry: {after: forceColor.grey(',')},
|
|
maxDepth: forceColor.grey('…'),
|
|
null: ansiStyles.yellow,
|
|
number: ansiStyles.yellow,
|
|
object: {
|
|
openBracket: forceColor.grey('{'),
|
|
closeBracket: forceColor.grey('}'),
|
|
ctor: ansiStyles.magenta,
|
|
stringTag: {open: ansiStyles.magenta.open + '@', close: ansiStyles.magenta.close},
|
|
secondaryStringTag: {open: ansiStyles.grey.open + '@', close: ansiStyles.grey.close},
|
|
},
|
|
property: {
|
|
after: forceColor.grey(','),
|
|
keyBracket: {open: forceColor.grey('['), close: forceColor.grey(']')},
|
|
valueFallback: forceColor.grey('…'),
|
|
},
|
|
regexp: {
|
|
source: {open: ansiStyles.blue.open + '/', close: '/' + ansiStyles.blue.close},
|
|
flags: ansiStyles.yellow,
|
|
},
|
|
stats: {separator: forceColor.grey('---')},
|
|
string: {
|
|
open: ansiStyles.blue.open,
|
|
close: ansiStyles.blue.close,
|
|
line: {open: forceColor.blue('\''), close: forceColor.blue('\'')},
|
|
multiline: {start: forceColor.blue('`'), end: forceColor.blue('`')},
|
|
controlPicture: ansiStyles.grey,
|
|
diff: {
|
|
insert: {
|
|
open: ansiStyles.bgGreen.open + ansiStyles.black.open,
|
|
close: ansiStyles.black.close + ansiStyles.bgGreen.close,
|
|
},
|
|
delete: {
|
|
open: ansiStyles.bgRed.open + ansiStyles.black.open,
|
|
close: ansiStyles.black.close + ansiStyles.bgRed.close,
|
|
},
|
|
equal: ansiStyles.blue,
|
|
insertLine: {
|
|
open: ansiStyles.green.open,
|
|
close: ansiStyles.green.close,
|
|
},
|
|
deleteLine: {
|
|
open: ansiStyles.red.open,
|
|
close: ansiStyles.red.close,
|
|
},
|
|
},
|
|
},
|
|
symbol: ansiStyles.yellow,
|
|
typedArray: {
|
|
bytes: ansiStyles.yellow,
|
|
},
|
|
undefined: ansiStyles.yellow,
|
|
};
|
|
|
|
const plainTheme = JSON.parse(JSON.stringify(colorTheme), (_name, value) => typeof value === 'string' ? stripAnsi(value) : value);
|
|
|
|
const theme = chalk.level > 0 ? colorTheme : plainTheme;
|
|
|
|
const concordanceOptions = {
|
|
// Use Node's object inspection depth, clamped to a minimum of 3
|
|
get maxDepth() {
|
|
return Math.max(3, inspect.defaultOptions.depth);
|
|
},
|
|
theme,
|
|
};
|
|
|
|
export default concordanceOptions;
|
|
|
|
export const snapshotManager = {theme: plainTheme};
|