pure-fun
Version:
A collection of pure functions/helpers with 0 dependencies
3 lines (2 loc) • 5.72 kB
JavaScript
var n=function(t){return t.reduce(function(t,e){return t.concat(Array.isArray(e)?n(e):e)},[])},t=function(n,e,r,o){void 0===o&&(o=0),n[o]?e(n[o],function(){t(n,e,r,o+1)}):r(!1)},e=function(n){return n instanceof Promise},r=function(n){return"object"==typeof n&&"function"==typeof n.getMonth},o=function(n){return"object"!=typeof n||Array.isArray(n)?Array.isArray(n)?n.map(o):n:Object.keys(n).map(function(t){var e;return(e={})[t]=o(n[t]),e}).reduce(function(n,t){return Object.assign(n,t)},{})},u=function(n){return Object(n)===n&&"[object Object]"===Object.prototype.toString.call(n)},i=function(n){return u(n)&&!Object.isFrozen(n)},c=function(n){return Object.keys(n).map(function(n){return function(t){return n[t]}}(n)).filter(i).forEach(c),Object.freeze(n)};module.exports={arrays:{diff:function(n,t){return[].concat(new Set(n.filter(function(n){return!new Set(t).has(n)})))},duplicates:function(n){return t=n.reduce(function(n,t){var e;return Object.assign(n,((e={})[t]=(n[t]||0)+1,e))},{}),Object.keys(t).filter(function(n){return t[n]>1});var t},filterEven:function(n){return n.filter(function(n){return!("string"==typeof n)&&n%2==0})},filterFalsies:function(n){return n.filter(function(n){return n})},flatten:n,groupBy:function(n,t){return(n||[]).reduce(function(n,e){var r;return void 0===e&&(e={}),Object.assign({},n,((r={})[e[t]]=(n[e[t]]||[]).concat([e]),r))},{})},head:function(n){return n.slice(0,-1)},initial:function(n){return n[0]},intersect:function(n,t){return[].concat(new Set(n.filter(function(n){return new Set(t).has(n)})))},isEmpty:function(n){return n.length<1},join:function(){for(var n=[],t=arguments.length;t--;)n[t]=arguments[t];return[].concat(n)},last:function(n){return n.slice(-1)[0]},median:function(n){var t=[].concat(n.sort()),e=parseInt((t.length/2).toFixed(0));return t.length>1?t[e]:t[0]},pickRandom:function(n){return n[Math.floor(Math.random()*n.length)]},randomize:function(n,t){return void 0===t&&(t=0),[].concat(n.sort(function(){return 10*Math.random()%2}).slice(-t))},sortBy:function(n,t,e){if(void 0===e&&(e="ASC"),n&&null!=n&&n.length>0){var r=[].concat(n.sort(function(n,e){return n[t]<e[t]?-1:n[t]>e[t]?1:0}));return"ASC"===e.toUpperCase()?r:[].concat(r.reverse())}return n},tail:function(n){return n.slice(1)},total:function(n){return n.reduce(function(n,t){return n+t})},unique:function(n){return[].concat(new Set(n))},without:function(n){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return n.filter(function(n){return!t.some(function(t){return n===t})})},zip:function(n,t,e){return n.map(e?function(n,r){return e(n,t[r])}:function(n,e){return[n,t[e]]})}},async:{fetchJSON:function(n,t){void 0===t&&(t={});try{return Promise.resolve(fetch(n,Object.assign({},{headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}},t))).then(function(n){return n.json()})}catch(n){return Promise.reject(n)}},forEach:t,isPromise:e,map:function(n,t){var r=[];return n.forEach(function(n){return e(n)?r.push(n):r.push(t(n))}),Promise.all(r)},sleep:function(n){return void 0===n&&(n=0),new Promise(function(t){return setTimeout(t,n)})},throttle:function(n,t){return new Promise(function(e,r){try{var o=!1;function u(n){return o?n:function(n,r){try{var o=Promise.resolve(Promise.all([t,i])).then(function(n){return e(n[0])})}catch(n){return r(n)}return o&&o.then?o.then(void 0,r):o}(0,function(n){return r(n)})}var i=new Promise(function(t){return setTimeout(t,n)}),c=function(){if(!t)return o=!0,Promise.resolve(i).then(e)}();return Promise.resolve(c&&c.then?c.then(u):u(c))}catch(n){return Promise.reject(n)}})}},dates:{convertToDateIfNeeded:function(n){return r(n)?n:"string"==typeof n?Date.parse(n):void 0},getDays:function(n,t){return void 0===n&&(n="en-US"),void 0===t&&(t="long"),Array.from({length:7},function(e,r){return new Date(0,0,r).toLocaleDateString(n,{weekday:t})})},getMonths:function(n,t){return void 0===n&&(n="en-US"),void 0===t&&(t="long"),Array.from({length:12},function(e,r){return new Date(0,r).toLocaleDateString(n,{month:t})})},isDate:r},functions:{always:function(n){return function(){return n}},compose:function(){for(var n=[],t=arguments.length;t--;)n[t]=arguments[t];return function(t){return n.reduce(function(n,t){return t(n)},t)}},isFunction:function(n){return n instanceof Function},merge:function(n,t,e){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];return n(t.apply(void 0,r),e.apply(void 0,r))}},requireArgs:function(n){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.length<n.length?void 0:n.apply(void 0,t)}}},maps:{deepClone:function(n){return new Map(JSON.parse(JSON.stringify([].concat(n))))},isMap:function(n){return n instanceof Map}},objects:{deepCopy:o,deepMerge:function(){for(var n=[],t=arguments.length;t--;)n[t]=arguments[t];return Object.assign.apply(Object,n.map(function(n){return JSON.parse(JSON.stringify(n))}))},getMappedArray:function(n){return[].concat(new Map(Object.entries(n)))},getQueryString:function(n){return Object.keys(n).map(function(t){return Array.isArray(n[t])?n[t].map(function(n){return encodeURIComponent(t)+"[]="+encodeURIComponent(n)}).join("&"):encodeURIComponent(t)+"="+encodeURIComponent(n[t])}).join("&")},isEmpty:function(n){return Object.entries(n).length<1},isObject:u,makeImmutable:c,makeIterable:function(n){return console.log("\n This function is currently not implemented and will just return the original object.\n https://github.com/developit/microbundle/issues/319\n "),n},parseJSON:function(n){try{return JSON.parse(n)}catch(t){return u(n)?n:{}}},pluckDeep:function(n){return function(t){return n.split(".").reduce(function(n,t){return n[t]},t)}}}};
//# sourceMappingURL=pure-fun.js.map