1 | import _ from '../wrap/lodash'
|
2 | import isMatcher from '../matchers/is-matcher'
|
3 | import * as stringifyObject from 'stringify-object-es5'
|
4 |
|
5 | export default (anything) => {
|
6 | if (_.isString(anything)) {
|
7 | return stringifyString(anything)
|
8 | } else if (isMatcher(anything)) {
|
9 | return anything.__name
|
10 | } else {
|
11 | return stringifyObject(anything, {
|
12 | indent: ' ',
|
13 | singleQuotes: false,
|
14 | inlineCharacterLimit: 65,
|
15 | transform (obj, prop, originalResult) {
|
16 | if (isMatcher(obj[prop])) {
|
17 | return obj[prop].__name
|
18 | } else {
|
19 | return originalResult
|
20 | }
|
21 | }
|
22 | })
|
23 | }
|
24 | }
|
25 |
|
26 | var stringifyString = (string) =>
|
27 | _.includes(string, '\n')
|
28 | ? `"""\n${string}\n"""`
|
29 | : `"${string.replace(new RegExp('"', 'g'), '\\"')}"`
|