Comparing version 1.5.2 to 1.6.0
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
@@ -10,138 +10,14 @@ exports.serialize = undefined; | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** | ||
* This file is part of spy4js which is released under MIT license. | ||
* | ||
* The LICENSE file can be found in the root directory of this project. | ||
* | ||
* | ||
*/ | ||
var _serializeAsCode = require('serialize-as-code'); | ||
var __serializeProp = function __serializeProp(key, value) { | ||
return typeof value === 'string' ? key + '="' + value + '"' : key + '={' + __serialize(value) + '}'; | ||
}; | ||
/** | ||
* This file is part of spy4js which is released under MIT license. | ||
* | ||
* The LICENSE file can be found in the root directory of this project. | ||
* | ||
* | ||
*/ | ||
var __serializeProps = function __serializeProps(o, key, ref) { | ||
var props = []; | ||
(0, _utils.forEach)(o, function (k, v) { | ||
if (v !== undefined && k !== 'children') props.push(__serializeProp(k, v)); | ||
}); | ||
if (key) props.push(__serializeProp('key', key)); | ||
if (ref) props.push(__serializeProp('ref', ref)); | ||
if (!props.length) return ''; | ||
return ' ' + props.join(' '); | ||
}; | ||
var __serializeChildren = function __serializeChildren(o) { | ||
var children = o.props.children; | ||
if (!children) return ''; | ||
if (typeof children === 'string') return children; | ||
return Array.isArray(children) ? children.map(function (v) { | ||
return __serialize(v); | ||
}).join('') : __serialize(children); | ||
}; | ||
var getTypeName = function getTypeName(type) { | ||
var typeType = Object.prototype.toString.call(type); | ||
switch (typeType) { | ||
case '[object Symbol]': | ||
if (Symbol.keyFor(type) === 'react.fragment') return 'Fragment'; | ||
return; | ||
case '[object String]': | ||
return type; | ||
case '[object Function]': | ||
return type.name; | ||
default: | ||
return; | ||
} | ||
}; | ||
var __serializeReactElement = function __serializeReactElement(o) { | ||
var type = getTypeName(o.type) || 'UNKNOWN'; | ||
// the following line would serialize custom react components deep instead of shallow (but its out-commented | ||
// because usually it is more helpful to see what was provided) | ||
// if (typeof o.type === 'function') return __serialize(new o.type(o.props).render()); | ||
var children = __serializeChildren(o); | ||
var firstPart = '<' + type + __serializeProps(o.props, o.key, o.ref); | ||
var lastPart = children ? '>' + children + '</' + type + '>' : ' />'; | ||
return firstPart + lastPart; | ||
}; | ||
var __serializeReact = function __serializeReact(o) { | ||
var symbolKey = Symbol.keyFor(o.$$typeof); | ||
switch (symbolKey) { | ||
case 'react.element': | ||
return __serializeReactElement(o); | ||
default: | ||
return; | ||
} | ||
}; | ||
var __serializeIfReact = function __serializeIfReact(o) { | ||
if (Object.prototype.toString.call(o.$$typeof) === '[object Symbol]') { | ||
var key = Symbol.keyFor(o.$$typeof); | ||
if (key && key.indexOf('react.') === 0) return __serializeReact(o); | ||
} | ||
}; | ||
var __serialize = function __serialize(o) { | ||
var alreadySerialized = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
if (o === _utils.IGNORE) { | ||
return '>IGNORED<'; | ||
} | ||
if (o === undefined) { | ||
return 'undefined'; | ||
} | ||
if (o === null) { | ||
return 'null'; | ||
} | ||
// check if its serializable as react jsx | ||
var react = __serializeIfReact(o); | ||
if (react) return react; // was serialized successful -> return it | ||
var oClass = Object.prototype.toString.call(o); | ||
switch (oClass) { | ||
case '[object RegExp]': | ||
return '/' + String(o) + '/'; | ||
case '[object String]': | ||
return '\'' + o + '\''; | ||
case '[object Function]': | ||
return o.name || 'Function'; | ||
case '[object Date]': | ||
return '>Date:' + Number(o) + '<'; | ||
case '[object Number]': | ||
case '[object Boolean]': | ||
return String(o); | ||
case '[object Symbol]': | ||
return 'Symbol.for(\'' + Symbol.keyFor(o) + '\')'; | ||
case '[object Error]': | ||
return 'new ' + o.name + '(\'' + o.message + '\')'; | ||
default: | ||
// nothing | ||
} | ||
if (alreadySerialized.indexOf(o) !== -1) { | ||
return '>CYCLOMATIC<'; | ||
} | ||
var serialized = [].concat(_toConsumableArray(alreadySerialized), [o]); | ||
if (oClass === '[object Array]') { | ||
var _results = []; | ||
for (var i = 0; i < o.length; i++) { | ||
_results.push(__serialize(o[i], serialized)); | ||
} | ||
return '[' + _results.join(', ') + ']'; | ||
} | ||
var oKeys = (0, _utils.objectKeys)(o); | ||
var results = []; | ||
for (var _i = 0; _i < oKeys.length; _i++) { | ||
var key = oKeys[_i]; | ||
results.push(key + ': ' + __serialize(o[key], serialized)); | ||
} | ||
var objectType = o.constructor.name; | ||
var displayedType = objectType === 'Object' ? '' : objectType; | ||
return displayedType + '{' + results.join(', ') + '}'; | ||
}; | ||
var serialize = exports.serialize = function serialize(o) { | ||
return __serialize(o); | ||
}; | ||
var serialize = exports.serialize = _serializeAsCode.Serializer.create(function (o) { | ||
return o === _utils.IGNORE && '>IGNORED<' || undefined; | ||
}); |
{ | ||
"name": "spy4js", | ||
"version": "1.5.2", | ||
"version": "1.6.0", | ||
"description": "Smart, compact and powerful spy test framework", | ||
@@ -26,3 +26,3 @@ "jest": { | ||
"scripts": { | ||
"build": "rm -rf dist && babel src --out-dir dist && for i in `ls src/`; do cp src/$i dist/$i.flow; done", | ||
"dist": "rm -rf dist && babel src --out-dir dist && for i in `ls src/`; do cp src/$i dist/$i.flow; done", | ||
"eslint": "eslint src/ test/", | ||
@@ -49,3 +49,5 @@ "flow": "flow --quiet", | ||
"license": "MIT", | ||
"dependencies": {}, | ||
"dependencies": { | ||
"serialize-as-code": "^1.0.1" | ||
}, | ||
"devDependencies": { | ||
@@ -71,4 +73,3 @@ "babel-cli": "^6.26.0", | ||
"jest": "^23.1.0", | ||
"prettier": "1.7.4", | ||
"react": "^16.4.1" | ||
"prettier": "1.7.4" | ||
}, | ||
@@ -75,0 +76,0 @@ "babel": { |
@@ -11,5 +11,5 @@ [![GitHub license][license-image]][license-url] | ||
- Flow | ||
- `flow` support out-of-the-box | ||
- Performance | ||
- No dependencies | ||
- No foreign dependencies | ||
- Optimized error messages | ||
@@ -16,0 +16,0 @@ - Customizable |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
20
86806
1
972
+ Addedserialize-as-code@^1.0.1
+ Addedserialize-as-code@1.3.1(transitive)