UNPKG

768 BJavaScriptView Raw
1import _ from '../wrap/lodash'
2import isMatcher from '../matchers/is-matcher'
3import * as stringifyObject from 'stringify-object-es5'
4
5export 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
26var stringifyString = (string) =>
27 _.includes(string, '\n')
28 ? `"""\n${string}\n"""`
29 : `"${string.replace(new RegExp('"', 'g'), '\\"')}"`