diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/ava/lib/concordance-options.js | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) |
node_modules
Diffstat (limited to 'node_modules/ava/lib/concordance-options.js')
-rw-r--r-- | node_modules/ava/lib/concordance-options.js | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/node_modules/ava/lib/concordance-options.js b/node_modules/ava/lib/concordance-options.js new file mode 100644 index 000000000..18b4b0c77 --- /dev/null +++ b/node_modules/ava/lib/concordance-options.js @@ -0,0 +1,130 @@ +'use strict'; +const ansiStyles = require('ansi-styles'); +const chalk = require('chalk'); +const stripAnsi = require('strip-ansi'); +const cloneDeepWith = require('lodash.clonedeepwith'); +const reactPlugin = require('@concordance/react'); +const options = require('./globals').options; + +// Wrap Concordance's React plugin. Change the name to avoid collisions if in +// the future users can register plugins themselves. +const avaReactPlugin = Object.assign({}, reactPlugin, {name: 'ava-plugin-react'}); +const plugins = [avaReactPlugin]; + +const forceColor = new chalk.constructor({enabled: true}); + +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('…') + }, + react: { + functionType: forceColor.grey('\u235F'), + openTag: { + start: forceColor.grey('<'), + end: forceColor.grey('>'), + selfClose: forceColor.grey('/'), + selfCloseVoid: ' ' + forceColor.grey('/') + }, + closeTag: { + open: forceColor.grey('</'), + close: forceColor.grey('>') + }, + tagName: ansiStyles.magenta, + attribute: { + separator: '=', + value: { + openBracket: forceColor.grey('{'), + closeBracket: forceColor.grey('}'), + string: { + line: {open: forceColor.blue('"'), close: forceColor.blue('"'), escapeQuote: '"'} + } + } + }, + child: { + openBracket: forceColor.grey('{'), + closeBracket: 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 = cloneDeepWith(colorTheme, value => { + if (typeof value === 'string') { + return stripAnsi(value); + } +}); + +const theme = options.color === false ? plainTheme : colorTheme; +exports.default = {maxDepth: 3, plugins, theme}; +exports.diff = {maxDepth: 1, plugins, theme}; +exports.snapshotManager = {plugins, theme: plainTheme}; |