Comparing version 2.0.1 to 2.1.0
@@ -9,2 +9,9 @@ # Changelog | ||
## 2.1.0 | ||
* `FEAT`: add `merge(target, ...sources)` util | ||
* `FEAT`: add `size(obj)` util | ||
* `FEAT`: add `has(obj, property)` util | ||
* `DOCS`: improve utils documentation | ||
## 2.0.0 | ||
@@ -11,0 +18,0 @@ |
@@ -6,2 +6,3 @@ 'use strict'; | ||
var nativeToString = Object.prototype.toString; | ||
var nativeHasOwnProperty = Object.prototype.hasOwnProperty; | ||
@@ -51,2 +52,14 @@ function isUndefined(obj) { | ||
/** | ||
* Return true, if target owns a property with the given key. | ||
* | ||
* @param {Object} target | ||
* @param {String} key | ||
* | ||
* @return {Boolean} | ||
*/ | ||
function has(target, key) { | ||
return nativeHasOwnProperty.call(target, key); | ||
} | ||
/** | ||
* Find element in collection. | ||
@@ -141,3 +154,3 @@ * | ||
if (collection.hasOwnProperty(key)) { | ||
if (has(collection, key)) { | ||
var val = collection[key]; | ||
@@ -257,2 +270,13 @@ | ||
/** | ||
* Shorthand for `keys(o).length`. | ||
* | ||
* @param {Object|Array} collection | ||
* | ||
* @return {Number} | ||
*/ | ||
function size(collection) { | ||
return keys(collection).length; | ||
} | ||
/** | ||
* Get the values in the collection. | ||
@@ -380,4 +404,4 @@ * | ||
return !find(pattern, function (val, key) { | ||
return el[key] !== val; | ||
return every(pattern, function (val, key) { | ||
return el[key] === val; | ||
}); | ||
@@ -409,2 +433,10 @@ }; | ||
/** | ||
* Convenience wrapper for `Object.assign`. | ||
* | ||
* @param {Object} target | ||
* @param {...Object} others | ||
* | ||
* @return {Object} the target | ||
*/ | ||
function assign(target) { | ||
@@ -418,2 +450,10 @@ for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
/** | ||
* Pick given properties from the target object. | ||
* | ||
* @param {Object} target | ||
* @param {Collection} properties | ||
* | ||
* @return {Object} target | ||
*/ | ||
function pick(target, properties) { | ||
@@ -435,2 +475,49 @@ | ||
/** | ||
* Recursively merge `...sources` into given target. | ||
* | ||
* Does support merging objects; does not support merging arrays. | ||
* | ||
* @param {Object} target | ||
* @param {...Object} sources | ||
* | ||
* @return {Object} the target | ||
*/ | ||
function merge(target) { | ||
for (var _len2 = arguments.length, sources = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
sources[_key2 - 1] = arguments[_key2]; | ||
} | ||
if (!sources.length) { | ||
return target; | ||
} | ||
forEach(sources, function (source) { | ||
// skip non-obj sources, i.e. null | ||
if (!source || !isObject(source)) { | ||
return; | ||
} | ||
forEach(source, function (sourceVal, key) { | ||
var targetVal = target[key]; | ||
if (isObject(sourceVal)) { | ||
if (!isObject(targetVal)) { | ||
// override target[key] with object | ||
targetVal = {}; | ||
} | ||
target[key] = merge(targetVal, sourceVal); | ||
} else { | ||
target[key] = sourceVal; | ||
} | ||
}); | ||
}); | ||
return target; | ||
} | ||
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); } } | ||
@@ -489,2 +576,3 @@ | ||
exports.keys = keys; | ||
exports.size = size; | ||
exports.values = values; | ||
@@ -504,5 +592,7 @@ exports.groupBy = groupBy; | ||
exports.ensureArray = ensureArray; | ||
exports.has = has; | ||
exports.assign = assign; | ||
exports.pick = pick; | ||
exports.merge = merge; | ||
exports.debounce = debounce; | ||
exports.bind = bind; |
@@ -8,2 +8,3 @@ (function (global, factory) { | ||
var nativeToString = Object.prototype.toString; | ||
var nativeHasOwnProperty = Object.prototype.hasOwnProperty; | ||
@@ -53,2 +54,14 @@ function isUndefined(obj) { | ||
/** | ||
* Return true, if target owns a property with the given key. | ||
* | ||
* @param {Object} target | ||
* @param {String} key | ||
* | ||
* @return {Boolean} | ||
*/ | ||
function has(target, key) { | ||
return nativeHasOwnProperty.call(target, key); | ||
} | ||
/** | ||
* Find element in collection. | ||
@@ -143,3 +156,3 @@ * | ||
if (collection.hasOwnProperty(key)) { | ||
if (has(collection, key)) { | ||
var val = collection[key]; | ||
@@ -259,2 +272,13 @@ | ||
/** | ||
* Shorthand for `keys(o).length`. | ||
* | ||
* @param {Object|Array} collection | ||
* | ||
* @return {Number} | ||
*/ | ||
function size(collection) { | ||
return keys(collection).length; | ||
} | ||
/** | ||
* Get the values in the collection. | ||
@@ -382,4 +406,4 @@ * | ||
return !find(pattern, function (val, key) { | ||
return el[key] !== val; | ||
return every(pattern, function (val, key) { | ||
return el[key] === val; | ||
}); | ||
@@ -411,2 +435,10 @@ }; | ||
/** | ||
* Convenience wrapper for `Object.assign`. | ||
* | ||
* @param {Object} target | ||
* @param {...Object} others | ||
* | ||
* @return {Object} the target | ||
*/ | ||
function assign(target) { | ||
@@ -420,2 +452,10 @@ for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
/** | ||
* Pick given properties from the target object. | ||
* | ||
* @param {Object} target | ||
* @param {Collection} properties | ||
* | ||
* @return {Object} target | ||
*/ | ||
function pick(target, properties) { | ||
@@ -437,2 +477,49 @@ | ||
/** | ||
* Recursively merge `...sources` into given target. | ||
* | ||
* Does support merging objects; does not support merging arrays. | ||
* | ||
* @param {Object} target | ||
* @param {...Object} sources | ||
* | ||
* @return {Object} the target | ||
*/ | ||
function merge(target) { | ||
for (var _len2 = arguments.length, sources = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { | ||
sources[_key2 - 1] = arguments[_key2]; | ||
} | ||
if (!sources.length) { | ||
return target; | ||
} | ||
forEach(sources, function (source) { | ||
// skip non-obj sources, i.e. null | ||
if (!source || !isObject(source)) { | ||
return; | ||
} | ||
forEach(source, function (sourceVal, key) { | ||
var targetVal = target[key]; | ||
if (isObject(sourceVal)) { | ||
if (!isObject(targetVal)) { | ||
// override target[key] with object | ||
targetVal = {}; | ||
} | ||
target[key] = merge(targetVal, sourceVal); | ||
} else { | ||
target[key] = sourceVal; | ||
} | ||
}); | ||
}); | ||
return target; | ||
} | ||
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); } } | ||
@@ -491,2 +578,3 @@ | ||
exports.keys = keys; | ||
exports.size = size; | ||
exports.values = values; | ||
@@ -506,4 +594,6 @@ exports.groupBy = groupBy; | ||
exports.ensureArray = ensureArray; | ||
exports.has = has; | ||
exports.assign = assign; | ||
exports.pick = pick; | ||
exports.merge = merge; | ||
exports.debounce = debounce; | ||
@@ -510,0 +600,0 @@ exports.bind = bind; |
@@ -1,1 +0,1 @@ | ||
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.MinDash={})}(this,function(n){"use strict";var r=Object.prototype.toString;function t(n){return null===n||void 0===n}function u(n){return"[object Array]"===r.call(n)}function e(n){return"[object Function]"===r.call(n)}function i(n){if(!u(n))throw new Error("must supply array")}function o(n,r){var t;return r=p(r),c(n,function(n,u){if(r(n,u))return t=n,!1}),t}function c(n,r){if(!t(n)){var e=u(n)?b:d;for(var i in n){if(n.hasOwnProperty(i))if(!1===r(n[i],e(i)))return}}}function f(n,r,t){return c(n,function(n,u){t=r(t,n,u)}),t}function a(n,r){var t=[];return c(n,function(n,u){t.push(r(n,u))}),t}function l(n,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r=y(r),c(n,function(n){var u=r(n)||"_",e=t[u];e||(e=t[u]=[]),e.push(n)}),t}function s(n){n=y(n);for(var r={},t=arguments.length,u=Array(t>1?t-1:0),e=1;e<t;e++)u[e-1]=arguments[e];return c(u,function(t){return l(t,n,r)}),a(r,function(n,r){return n[0]})}var v=s;function y(n){return e(n)?n:function(r){return r[n]}}function p(n){return e(n)?n:function(r){return r===n}}function d(n){return n}function b(n){return Number(n)}var h=Object.assign||function(n){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u])}return n};var j=Array.prototype.slice;n.find=o,n.findIndex=function(n,r){r=p(r);var t=u(n)?-1:void 0;return c(n,function(n,u){if(r(n,u))return t=u,!1}),t},n.filter=function(n,r){var t=[];return c(n,function(n,u){r(n,u)&&t.push(n)}),t},n.forEach=c,n.without=function(n,r){return t(n)?[]:(i(n),r=p(r),n.filter(function(n,t){return!r(n,t)}))},n.reduce=f,n.every=function(n,r){return f(n,function(n,t,u){return n&&r(t,u)},!0)},n.some=function(n,r){return!!o(n,r)},n.map=a,n.keys=function(n){return n&&Object.keys(n)||[]},n.values=function(n){return a(n,function(n){return n})},n.groupBy=l,n.uniqueBy=s,n.unionBy=v,n.sortBy=function(n,r){r=y(r);var t=[];return c(n,function(n,u){for(var e=r(n,u),i={d:e,v:n},o=0;o<t.length;o++)if(e<t[o].d)return void t.splice(o,0,i);t.push(i)}),a(t,function(n){return n.v})},n.matchPattern=function(n){return function(r){return!o(n,function(n,t){return r[t]!==n})}},n.isUndefined=t,n.isDefined=function(n){return null!==n||void 0!==n},n.isArray=u,n.isObject=function(n){return"[object Object]"===r.call(n)},n.isNumber=function(n){return"[object Number]"===r.call(n)},n.isFunction=e,n.isString=function(n){return"[object String]"===r.call(n)},n.ensureArray=i,n.assign=function(n){for(var r=arguments.length,t=Array(r>1?r-1:0),u=1;u<r;u++)t[u-1]=arguments[u];return h.apply(void 0,[n].concat(t))},n.pick=function(n,r){var t={},u=Object(n);return c(r,function(r){r in u&&(t[r]=n[r])}),t},n.debounce=function(n,r){var t;return function(){var u=j.call(arguments);t&&clearTimeout(t),t=setTimeout(function(){n.apply(void 0,function(n){if(Array.isArray(n)){for(var r=0,t=Array(n.length);r<n.length;r++)t[r]=n[r];return t}return Array.from(n)}(u))},r)}},n.bind=function(n,r){return n.bind(r)},Object.defineProperty(n,"__esModule",{value:!0})}); | ||
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.MinDash={})}(this,function(n){"use strict";var r=Object.prototype.toString,t=Object.prototype.hasOwnProperty;function u(n){return null===n||void 0===n}function e(n){return"[object Array]"===r.call(n)}function i(n){return"[object Object]"===r.call(n)}function o(n){return"[object Function]"===r.call(n)}function c(n){if(!e(n))throw new Error("must supply array")}function f(n,r){return t.call(n,r)}function a(n,r){var t;return r=j(r),l(n,function(n,u){if(r(n,u))return t=n,!1}),t}function l(n,r){if(!u(n)){var t=e(n)?A:m;for(var i in n){if(f(n,i))if(!1===r(n[i],t(i)))return}}}function s(n,r,t){return l(n,function(n,u){t=r(t,n,u)}),t}function v(n,r){return s(n,function(n,t,u){return n&&r(t,u)},!0)}function y(n,r){var t=[];return l(n,function(n,u){t.push(r(n,u))}),t}function p(n){return n&&Object.keys(n)||[]}function d(n,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r=g(r),l(n,function(n){var u=r(n)||"_",e=t[u];e||(e=t[u]=[]),e.push(n)}),t}function h(n){n=g(n);for(var r={},t=arguments.length,u=Array(t>1?t-1:0),e=1;e<t;e++)u[e-1]=arguments[e];return l(u,function(t){return d(t,n,r)}),y(r,function(n,r){return n[0]})}var b=h;function g(n){return o(n)?n:function(r){return r[n]}}function j(n){return o(n)?n:function(r){return r===n}}function m(n){return n}function A(n){return Number(n)}var O=Object.assign||function(n){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u])}return n};var w=Array.prototype.slice;n.find=a,n.findIndex=function(n,r){r=j(r);var t=e(n)?-1:void 0;return l(n,function(n,u){if(r(n,u))return t=u,!1}),t},n.filter=function(n,r){var t=[];return l(n,function(n,u){r(n,u)&&t.push(n)}),t},n.forEach=l,n.without=function(n,r){return u(n)?[]:(c(n),r=j(r),n.filter(function(n,t){return!r(n,t)}))},n.reduce=s,n.every=v,n.some=function(n,r){return!!a(n,r)},n.map=y,n.keys=p,n.size=function(n){return p(n).length},n.values=function(n){return y(n,function(n){return n})},n.groupBy=d,n.uniqueBy=h,n.unionBy=b,n.sortBy=function(n,r){r=g(r);var t=[];return l(n,function(n,u){for(var e=r(n,u),i={d:e,v:n},o=0;o<t.length;o++)if(e<t[o].d)return void t.splice(o,0,i);t.push(i)}),y(t,function(n){return n.v})},n.matchPattern=function(n){return function(r){return v(n,function(n,t){return r[t]===n})}},n.isUndefined=u,n.isDefined=function(n){return null!==n||void 0!==n},n.isArray=e,n.isObject=i,n.isNumber=function(n){return"[object Number]"===r.call(n)},n.isFunction=o,n.isString=function(n){return"[object String]"===r.call(n)},n.ensureArray=c,n.has=f,n.assign=function(n){for(var r=arguments.length,t=Array(r>1?r-1:0),u=1;u<r;u++)t[u-1]=arguments[u];return O.apply(void 0,[n].concat(t))},n.pick=function(n,r){var t={},u=Object(n);return l(r,function(r){r in u&&(t[r]=n[r])}),t},n.merge=function n(r){for(var t=arguments.length,u=Array(t>1?t-1:0),e=1;e<t;e++)u[e-1]=arguments[e];return u.length?(l(u,function(t){t&&i(t)&&l(t,function(t,u){var e=r[u];i(t)?(i(e)||(e={}),r[u]=n(e,t)):r[u]=t})}),r):r},n.debounce=function(n,r){var t;return function(){var u=w.call(arguments);t&&clearTimeout(t),t=setTimeout(function(){n.apply(void 0,function(n){if(Array.isArray(n)){for(var r=0,t=Array(n.length);r<n.length;r++)t[r]=n[r];return t}return Array.from(n)}(u))},r)}},n.bind=function(n,r){return n.bind(r)},Object.defineProperty(n,"__esModule",{value:!0})}); |
{ | ||
"name": "min-dash", | ||
"version": "2.0.1", | ||
"version": "2.1.0", | ||
"description": "Minimum utility toolbelt", | ||
@@ -10,2 +10,3 @@ "main": "dist/index.js", | ||
"bundle": "rollup -c", | ||
"dev": "npm test -- --watch", | ||
"lint": "eslint .", | ||
@@ -12,0 +13,0 @@ "prepublishOnly": "run-s bundle test:integration", |
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
40944
1400