json-function
Version:
It allows you to use methods such as where, limit, select, orderBy on JSON data.
1 lines • 1 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var _typeCheck=require("../../utils/type-check"),_getObjDeepProp=require("../../utils/get-obj-deep-prop"),_getObjDeepProp2=_interopRequireDefault(_getObjDeepProp),_callback=require("./tool/callback"),_callback2=_interopRequireDefault(_callback);function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var where=function(a,b,c){if(!(0,_typeCheck.isArray)(a))return[];var d;if((0,_typeCheck.isObject)(b))d=[b];else if((0,_typeCheck.isArrayOfObject)(b))d=b;else if((0,_typeCheck.isFunction)(b))d=b(_callback2.default),(0,_typeCheck.isArrayOfObject)(d)||(d=[d]);else return a;var e=[];return d.forEach(function(b){a.forEach(function(a){var d=Object.keys(b),f=1<d.length,g=[];d.forEach(function(d){var e=!1,h=a[d],i=b[d];c&&c.deep&&(h=(0,_getObjDeepProp2.default)(d)(a)),(0,_typeCheck.isFunction)(i)&&(e=i(h)),h===i&&(e=h===i),f?g.push(e):g=[e]}),g.every(function(a){return a})&&(e.push(a),g=[])})}),e};exports.default=where;
;