UNPKG

assert-match

Version:
84 lines (54 loc) 2.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _create = require('babel-runtime/core-js/object/create'); var _create2 = _interopRequireDefault(_create); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _strict = require('./strict'); var _strict2 = _interopRequireDefault(_strict); var _utils = require('../util/utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var LooseMatcher = function (_StrictMatcher) { (0, _inherits3.default)(LooseMatcher, _StrictMatcher); function LooseMatcher() { (0, _classCallCheck3.default)(this, LooseMatcher); return (0, _possibleConstructorReturn3.default)(this, (LooseMatcher.__proto__ || (0, _getPrototypeOf2.default)(LooseMatcher)).apply(this, arguments)); } (0, _createClass3.default)(LooseMatcher, [{ key: '_getActual', value: function _getActual(actual, expected) { return pickMatching(actual, expected); } }]); return LooseMatcher; }(_strict2.default); exports.default = LooseMatcher; function pickMatching(actual, expected, iterator) { if (!iterator) { iterator = (0, _utils.iterateKeys)(); } if ((0, _utils.isMatcher)(expected)) { return undefined; } if (!(0, _utils.isObject)(actual) || !(0, _utils.isObject)(expected) || (0, _utils.isStandardObject)(actual)) { return actual; } var result = Array.isArray(expected) ? [] : (0, _create2.default)((0, _getPrototypeOf2.default)(expected)); iterator(expected, function (key) { if ((0, _utils.hasOwn)(actual, key) && (0, _utils.hasOwn)(expected, key) && !(0, _utils.isMatcher)(expected[key])) { result[key] = pickMatching(actual[key], expected[key], iterator); } }); return result; } module.exports = exports['default'];