aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ava/lib/concordance-options.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/ava/lib/concordance-options.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/ava/lib/concordance-options.js')
-rw-r--r--node_modules/ava/lib/concordance-options.js130
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};