diff --git a/.npmignore b/.npmignore
index fe315112..0da3d6a3 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,10 +1,12 @@
.travis.yml
rollup.config.js
rollup.split.js
-webpack.config.js
.eslintrc.js
.eslintignore
.gitignore
scripts
.nyc_output
-tests/
\ No newline at end of file
+tests/
+coverage
+.nyc_output
+.babelrc
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4cec76c2..364191d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# Changelog
+## v0.8.2
+
+### Fixed
+
+- No longer packaging unwanted items like coverage results
+
+### Improved
+
+- Slightly the build process of the module (pre-publish/release anyway)
+
## v0.8.1
### New
diff --git a/info.json b/info.json
index 6316134a..a24245f4 100644
--- a/info.json
+++ b/info.json
@@ -1 +1 @@
-{"name":"kyanite","version":"0.8.1","description":"A small library of pure functional utilities to make life easier and data better","docs":[{"since":"v0.1.0","deprecated":false,"category":"Array","title":"compact","desc":"Takes an array of items and removes all of the falsy values","examples":["compact([1, '', 0, 2]) // => [1, 2]\rcompact([1, '', false, 2, undefined, 3, null]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"The stripped array"}],"params":[{"type":{"names":["Array"]},"description":"The array to remove falsy values from","name":"arr"}],"syntax":"compact(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const compact = require('kyanite/compact')"},"standard":{"title":"Standard","code":"import compact from 'kyanite/compact'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"concat","desc":"Take an array and concats the values into a new array","examples":["concat([[1, 2], [3, 4], [5, 6]]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A newly created array of the concated values"}],"params":[{"type":{"names":["Array"]},"description":"The array to concat together","name":"arr"}],"syntax":"concat(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const concat = require('kyanite/concat')"},"standard":{"title":"Standard","code":"import concat from 'kyanite/concat'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"concatMap","desc":"Take an array and concats the values into a new array after applying the function","examples":["concatMap(x => [x, x], [1, 2, 3]) // => [1, 1, 2, 2, 3, 3]\n\n// It's also curried\n\nconst con = concatMap(x => [x, x])\n\ncon([1, 2, 3]) // => [1, 1, 2, 2, 3, 3]"],"returns":[{"type":{"names":["Array"]},"description":"A newly created array of the concated values"}],"params":[{"type":{"names":["function"]},"description":"The function to be applied to each value","name":"fn"},{"type":{"names":["Array"]},"description":"The array to concat together","name":"arr"}],"syntax":"concatMap(fn, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const concatMap = require('kyanite/concatMap')"},"standard":{"title":"Standard","code":"import concatMap from 'kyanite/concatMap'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"difference","desc":"Returns an array with the elements present in the first that are not in the second","examples":["difference([1, 2, 3], [1]) // => [2, 3]\r\r// It's also curried\rconst diff = difference([1, 2, 3])\r\rdiff([1]) // => [2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"An array of elements present in the first that are not in the second"}],"params":[{"type":{"names":["Array"]},"description":"The list to search through","name":"first"},{"type":{"names":["Array"]},"description":"The second list to compare against","name":"second"}],"syntax":"difference(first, second)","usage":{"commonjs":{"title":"CommonJs","code":"const difference = require('kyanite/difference')"},"standard":{"title":"Standard","code":"import difference from 'kyanite/difference'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"drop","desc":"Starts at a at desired index and pulls the values from that point until the end","examples":["drop(3, [1, 2, 3, 4, 5]) // => [4, 5]\n\n// It's also curried\n\nconst d = drop(3)\n\nd([1, 2, 3, 4, 5]) // => [4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array with the indicated values removed from the array"}],"params":[{"type":{"names":["Number"]},"description":"The index we want the slice to start at","name":"i"},{"type":{"names":["Array"]},"description":"The array we want to drop from","name":"list"}],"syntax":"drop(i, list)","usage":{"commonjs":{"title":"CommonJs","code":"const drop = require('kyanite/drop')"},"standard":{"title":"Standard","code":"import drop from 'kyanite/drop'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"ensureArray","desc":"Ensures that the value passed in is an array, if not it will make it an array or\rpass back an empty array if the value if undefined/null","examples":["ensureArray(1) // => [1]\rensureArray() // => []\rensureArray(null) // => []\rensureArray('test') // => ['test']"],"returns":[{"type":{"names":["Array"]},"description":"Returns a new array"}],"params":[{"type":{"names":["Any"]},"description":"The value to ensure","name":"x"}],"syntax":"ensureArray(x)","usage":{"commonjs":{"title":"CommonJs","code":"const ensureArray = require('kyanite/ensureArray')"},"standard":{"title":"Standard","code":"import ensureArray from 'kyanite/ensureArray'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"every","desc":"Loops through a provided list verifying that every value evaluates to a truthy value.","examples":["const data = [1, 2, 3, 4]\r\revery(x => x > 0, data) // => true\revery(x => x < 3, data) // => false\r\r// It is also curried\r\rconst run = every(x => x > 0)\r\rrun([1, 2, 3]) // => true\rrun([-1, 0, 1]) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"If all values passed will return true else false"}],"params":[{"type":{"names":["function"]},"description":"The function to send our values to for validation","name":"fn"},{"type":{"names":["Array"]},"description":"The list we are to loop through","name":"x"}],"syntax":"every(fn, x)","usage":{"commonjs":{"title":"CommonJs","code":"const every = require('kyanite/every')"},"standard":{"title":"Standard","code":"import every from 'kyanite/every'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"filter","desc":"Filter through a filterable data piece using the provided function","examples":["const isEven = n => n % 2 === 0\r\rfilter(isEven, [1, 2, 3, 4]) // => [2, 4]\r\r// Is also curried\r\rconst filterer = filter(isEven)\r\rfilterer([1, 2, 3, 4]) // => [2, 4]"],"returns":[{"type":{"names":["Array","Object"]},"description":"Returns a new Array or Object based on the type of list provided"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to run on our values","name":"fn"},{"type":{"names":["Array","Object"]},"description":"The filterable list to go through","name":"list"}],"syntax":"filter(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const filter = require('kyanite/filter')"},"standard":{"title":"Standard","code":"import filter from 'kyanite/filter'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"find","desc":"Find an item based on the function sent in and its list","examples":["find(v => v.val === 'test', [{val: 'test'}]) // => 'test'\rfind(v => v.val === 'none', [{val: 'test'}, {val: 'none'}]) // => { val: 'none' }\rfind(v => v > 2, [1, 2, 3, 4, 5]) // => 3\r\r// find is also curried\r\rconst finder = find(v => v.val === 'test')\r\rfinder([{val: 'test'}]) // => 'test'\rfinder([{val: 'test'}, {val: 'none'}]) // => { val: 'test' }"],"returns":[{"type":{"names":["Any"]},"description":"Returns either the found item, or false if nothing is found"}],"params":[{"type":{"names":["function"]},"description":"The function used/called during the find","name":"fn"},{"type":{"names":["Array"]},"description":"The list we want to search through","name":"list"}],"syntax":"find(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const find = require('kyanite/find')"},"standard":{"title":"Standard","code":"import find from 'kyanite/find'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"findIndex","desc":"Runs through an array of values, until it finds the index of one that passes the function, else returns undefined","examples":["findIndex(x => x > 5, [1, 3, 4, 5, 6]) // => 4\nfindIndex(x => x < 0, [1, 3, 4, 5, 6]) // => undefined\n\n// It's also curried\nconst f = findIndex(x => x > 5)\n\nf([1, 2, 3, 4, 5, 6]) // => 5"],"returns":[{"type":{"names":["Maybe"]},"description":"The index the passing value lives at or undefined if it's not found"}],"params":[{"type":{"names":["function"]},"description":"The function to test our value against","name":"fn"},{"type":{"names":["Array"]},"description":"The array to loop through","name":"list"}],"syntax":"findIndex(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const findIndex = require('kyanite/findIndex')"},"standard":{"title":"Standard","code":"import findIndex from 'kyanite/findIndex'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"first","desc":"Grabs the first index of a passed array or string","examples":["const arr = first([1, 3]) // => 1\rconst str = first('abc') // => 'a'"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever was the first piece of our array"}],"params":[{"type":{"names":["Array","String"]},"description":"The list or string we want to use","name":"x"}],"syntax":"first(x)","usage":{"commonjs":{"title":"CommonJs","code":"const first = require('kyanite/first')"},"standard":{"title":"Standard","code":"import first from 'kyanite/first'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Array","title":"groupBy","desc":"Groups values of an array based on the function passed in","examples":["groupBy(Math.floor, [4.2, 6.1, 6.4]) // => { '4': [4.2], '6': [6.1, 6.4] }\n\n// It's also curried\n\nconst g = groupBy(Math.floor)\n\ng([4.2, 6.1, 6.4]) // => { '4': [4.2], '6': [6.1, 6.4] }"],"returns":[{"type":{"names":["Object"]},"description":"An object with the grouped values"}],"params":[{"type":{"names":["function"]},"description":"The function to run our values through","name":"fn"},{"type":{"names":["Array"]},"description":"The array to go through","name":"list"}],"syntax":"groupBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const groupBy = require('kyanite/groupBy')"},"standard":{"title":"Standard","code":"import groupBy from 'kyanite/groupBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"includes","desc":"Checks to see if the provided list contains at at least 1 of the provided value within it","examples":["includes(3, [1, 2, 3]) // => true\r\r// It is also curried\r\rconst checker = includes(3)\r\rchecker([1, 2, 3]) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"A Boolean based on if the value is found or not"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to search the list for","name":"a"},{"type":{"names":["Array"]},"description":"The list we want to search through","name":"list"}],"syntax":"includes(a, list)","usage":{"commonjs":{"title":"CommonJs","code":"const includes = require('kyanite/includes')"},"standard":{"title":"Standard","code":"import includes from 'kyanite/includes'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"insert","desc":"Insert an item in a certain index of an array","examples":["insert(2, 'x', [1, 2, 3, 4]) // => [1, 2, 'x', 3, 4]\r\r// It's also curried\r\rconst ins = insert(2)\r\rins('x', [1, 2, 3, 4]) // => [1, 2, 'x', 3, 4]"],"returns":[{"type":{"names":["Array"]},"description":"A new array with the inserted data"}],"params":[{"type":{"names":["Number"]},"description":"The index number to remove from","name":"i"},{"type":{"names":["Any"]},"description":"The data we are going to be inserting","name":"d"},{"type":{"names":["Array"]},"description":"The array to insert into","name":"arr"}],"syntax":"insert(i, d, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const insert = require('kyanite/insert')"},"standard":{"title":"Standard","code":"import insert from 'kyanite/insert'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"intersection","desc":"Returns an array containing elements present in both arrays","examples":["intersection([1, 2, 3, 4], [3, 4, 5, 6]) // => [3, 4]\r\r// It's also curried\r\rconst inter = intersection([1, 2, 3, 4])\r\rinter([3, 4, 5, 6]) // => [3, 4]"],"returns":[{"type":{"names":["Array"]},"description":"A new array containing values that both arrays had"}],"params":[{"type":{"names":["Array"]},"description":"Our first array value to compare with","name":"a"},{"type":{"names":["Array"]},"description":"Our second array value to compare with","name":"b"}],"syntax":"intersection(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const intersection = require('kyanite/intersection')"},"standard":{"title":"Standard","code":"import intersection from 'kyanite/intersection'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"last","desc":"Grabs the last index of an array","examples":["const arr = last([1, 3]) // => 3\rconst str = last('abc') // => 'c'"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever was the last piece of our array"}],"params":[{"type":{"names":["Array","String"]},"description":"The list or string we want to use","name":"x"}],"syntax":"last(x)","usage":{"commonjs":{"title":"CommonJs","code":"const last = require('kyanite/last')"},"standard":{"title":"Standard","code":"import last from 'kyanite/last'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"length","desc":"Obtains the length of the passed array","examples":["length([1, 2, 3, 4]) // => 4\rlength([]) // => 0"],"returns":[{"type":{"names":["Number"]},"description":"The length of the array"}],"params":[{"type":{"names":["Array"]},"description":"The array to find the length of","name":"a"}],"syntax":"length(a)","usage":{"commonjs":{"title":"CommonJs","code":"const length = require('kyanite/length')"},"standard":{"title":"Standard","code":"import length from 'kyanite/length'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"map","desc":"Takes a function and applies it to all of the values within the provided list,\rand brings back a new list of the same type.","examples":["const dbl = n => n * 2\r\rmap(dbl, [1, 2, 3]) // => [2, 4, 6]\r\r// It's also curried\r\rconst dbler = map(dbl)\r\rdbler([1, 2, 3]) // => [2, 4, 6]"],"returns":[{"type":{"names":["Array","Object"]},"description":"The new Array or Object that was created"}],"params":[{"type":{"names":["function"]},"description":"The function to run against the values in our functor","name":"fn"},{"type":{"names":["Array","Object"]},"description":"The list to iterate through","name":"list"}],"syntax":"map(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const map = require('kyanite/map')"},"standard":{"title":"Standard","code":"import map from 'kyanite/map'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"max","desc":"Goes through an array of values and grabs the last value of the array when it's been sorted","examples":["max([1, 3, 2, 5, 4]) // => 5\rmax(['c', 'a', 'b', 'f']) // => 'f'"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the max"}],"params":[{"type":{"names":["Array"]},"description":"The Array search through","name":"list"}],"syntax":"max(list)","usage":{"commonjs":{"title":"CommonJs","code":"const max = require('kyanite/max')"},"standard":{"title":"Standard","code":"import max from 'kyanite/max'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"maxBy","desc":"Finds the max of an array by applying the provided function to the values provided and reducing it down","examples":["maxBy(x => x.size, [{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 6 }\nmaxBy(x => x.alpha, [{ alpha: 'b' }, { alpha: 'c' }, { alpha: 'a' }]) // => { alpha: 'c' }\n\n// It's also curried\n\nconst m = maxBy(x => x.size)\n\nm([{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 6 }"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the max"}],"params":[{"type":{"names":["function"]},"description":"The function to apply to each value of the array","name":"fn"},{"type":{"names":["Array"]},"description":"The Array to search through","name":"list"}],"syntax":"maxBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const maxBy = require('kyanite/maxBy')"},"standard":{"title":"Standard","code":"import maxBy from 'kyanite/maxBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"mean","desc":"Get the mean of a set of numbers","examples":["mean([1, 2, 3, 2]) // => 2\rmean([]) // => NaN\rmean() // => NaN"],"returns":[{"type":{"names":["Number"]},"description":"Returns the mean avg of the numbers"}],"params":[{"type":{"names":["Array"]},"description":"An amount of numbers to get the mean from","name":"x"}],"syntax":"mean(x)","usage":{"commonjs":{"title":"CommonJs","code":"const mean = require('kyanite/mean')"},"standard":{"title":"Standard","code":"import mean from 'kyanite/mean'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"min","desc":"Goes through an array of values and grabs the first value of the array when it's been sorted","examples":["min([1, 3, 2, 5, 4]) // => 1\rmin(['c', 'a', 'b', 'f']) // => 'a'"],"returns":[{"type":{"names":["Any"]},"description":"Returns the item at the start of an array based on what's passed in"}],"params":[{"type":{"names":["Array"]},"description":"The Array to sort and grab from","name":"list"}],"syntax":"min(list)","usage":{"commonjs":{"title":"CommonJs","code":"const min = require('kyanite/min')"},"standard":{"title":"Standard","code":"import min from 'kyanite/min'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"minBy","desc":"Finds the min of an array by applying the provided function to the values provided and reducing it down","examples":["minBy(x => x.size, [{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 2 }\nminBy(x => x.alpha, [{ alpha: 'b' }, { alpha: 'c' }, { alpha: 'a' }]) // => { alpha: 'a' }\n\n// It's also curried\n\nconst m = minBy(x => x.size)\n\nm([{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 2 }"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the min"}],"params":[{"type":{"names":["function"]},"description":"The function to apply to each value of the array","name":"fn"},{"type":{"names":["Array"]},"description":"The Array to search through","name":"list"}],"syntax":"minBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const minBy = require('kyanite/minBy')"},"standard":{"title":"Standard","code":"import minBy from 'kyanite/minBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"nth","desc":"Returns the nth element of the given list or string.","examples":["nth(3, [1, 2, 3, 4, 5, 6, 7]) // => 4\r\r// nth is curried\r\rconst third = nth(2)\r\rthird([1, 2, 3, 4, 5]) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"Returns the value of the found index"}],"params":[{"type":{"names":["Number"]},"description":"How much to offset the value","name":"o"},{"type":{"names":["Array"]},"description":"The Array or list to crawl through","name":"x"}],"syntax":"nth(o, x)","usage":{"commonjs":{"title":"CommonJs","code":"const nth = require('kyanite/nth')"},"standard":{"title":"Standard","code":"import nth from 'kyanite/nth'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"partition","desc":"Takes a predicate function and a list or filterable data object and returns the pair.\rOne contains the data which passed the predicate function, the other the values that did not.","examples":["partition(is(String), ['foo', 'bar', 100]) // => [ ['foo', 'bar'], [100] ]\r\r// Is curried as well\r\rconst part = partition(is(String))\r\rpart(['foo', 'bar', 100]) // => [ ['foo', 'bar'], [100] ]"],"returns":[{"type":{"names":["Array"]},"description":"An array containing the first set of elements that passed the predicate function,\rAnd a second that did not"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to determine which side an element belongs to","name":"fn"},{"type":{"names":["Array"]},"description":"The list or other filterable to partition through","name":"list"}],"syntax":"partition(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const partition = require('kyanite/partition')"},"standard":{"title":"Standard","code":"import partition from 'kyanite/partition'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"prepend","desc":"Returns a new list with the provided value at the front of the given list","examples":["prepend('testing', ['is', 'cool']) // => ['testing', 'is', 'cool']\n\n// It's curried\n\nconst pender = prepend('testing')\n\npender(['is', 'cool']) // => ['testing', 'is', 'cool']"],"returns":[{"type":{"names":["Array"]},"description":"A new array"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to put at the front of our list","name":"x"},{"type":{"names":["Array"]},"description":"The Array or list to prepend to","name":"list"}],"syntax":"prepend(x, list)","usage":{"commonjs":{"title":"CommonJs","code":"const prepend = require('kyanite/prepend')"},"standard":{"title":"Standard","code":"import prepend from 'kyanite/prepend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reduce","desc":"Accepts an array and runs a reduce based on the passed values","examples":["reduce((acc, n) => acc + n, 0, [1, 2, 3, 4, 5]) // => 15\rreduce((acc, n) => {\r\n if (typeof n === 'number') {\r\n acc.push(n)\r\n }\r\n\r\n return acc\r\n }, [], ['', 1, 2, '0', 3]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the original init parameter that is passed in"}],"params":[{"type":{"names":["function"]},"description":"The function to run with the reduce","name":"fn"},{"type":{"names":["Any"]},"description":"The empty initial state of the reduce accumulator","name":"init"},{"type":{"names":["Array"]},"description":"The list to run our reduce against","name":"list"}],"syntax":"reduce(fn, init, list)","usage":{"commonjs":{"title":"CommonJs","code":"const reduce = require('kyanite/reduce')"},"standard":{"title":"Standard","code":"import reduce from 'kyanite/reduce'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reject","desc":"Filter through a filterable data piece using the provided function returns only those that fail the function test","examples":["const isEven = n => n % 2 === 0\r\rreject(isEven, [1, 2, 3, 4]) // => [1, 3]\r\r// Is also curried\r\rconst rejecter = reject(isEven)\r\rrejecter([1, 2, 3, 4]) // => [1, 3]"],"returns":[{"type":{"names":["Array"]},"description":"Returns a new Array or Object based on the type of list provided"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to run on our values","name":"fn"},{"type":{"names":["Array"]},"description":"The filterable list to go through","name":"list"}],"syntax":"reject(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const reject = require('kyanite/reject')"},"standard":{"title":"Standard","code":"import reject from 'kyanite/reject'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"remove","desc":"Remove an item from a certain point in the index","examples":["const test = remove(2, [1, 2, 3, 4]) // => [1, 2, 4]\r\r// This is also a curried method\r\rconst remover = remove(2)\rconst test = remover([1, 2, 3, 4]) // => [1, 2, 4]"],"returns":[{"type":{"names":["Array"]},"description":"returns the modified array back"}],"params":[{"type":{"names":["Number"]},"description":"The index number to remove from","name":"i"},{"type":{"names":["Array"]},"description":"The array in question","name":"x"}],"syntax":"remove(i, x)","usage":{"commonjs":{"title":"CommonJs","code":"const remove = require('kyanite/remove')"},"standard":{"title":"Standard","code":"import remove from 'kyanite/remove'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reverse","desc":"Accepts an array and returns a brand new reversed array","examples":["reverse([1, 2, 3]) // => [3, 2, 1]\rreverse([]) // => []"],"returns":[{"type":{"names":["Array"]},"description":"A new reversed array"}],"params":[{"type":{"names":["Array"]},"description":"The array to reverse","name":"arr"}],"syntax":"reverse(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const reverse = require('kyanite/reverse')"},"standard":{"title":"Standard","code":"import reverse from 'kyanite/reverse'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"slice","desc":"Returns a subset of an array based on the provided indexes","examples":["slice(1, 3, [1, 2, 3, 4, 5]) // => [2, 3]\n\n// It is curried\n\nconst slicer = slice(1, 3)\n\nslicer([1, 2, 3, 4, 5]) // => [2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"The newly created subset Array"}],"params":[{"type":{"names":["Number"]},"description":"The index at which to begin extraction","name":"a"},{"type":{"names":["Number"]},"description":"The index for what the extraction goes to. However does not extract","name":"b"}],"syntax":"slice(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const slice = require('kyanite/slice')"},"standard":{"title":"Standard","code":"import slice from 'kyanite/slice'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"some","desc":"Loops through a provided list verifying that at least some values evaluates to a truthy value.","examples":["const data = [1, 2, 3, 4]\r\rsome(x => x > 0, data) // => true\rsome(x => x < 3) // => true\rsome(x => x < 0, data) // => false\r\r// It is also curried\r\rconst run = some(x => x > 0)\r\rrun([1, 2, 3]) // => true\rrun([-1, 0, 1]) // => true\rrun([-3, -2, -1]) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"If any values passed will return true else false"}],"params":[{"type":{"names":["function"]},"description":"The function to send our values to for validation","name":"fn"},{"type":{"names":["Array"]},"description":"The list we are to loop through","name":"x"}],"syntax":"some(fn, x)","usage":{"commonjs":{"title":"CommonJs","code":"const some = require('kyanite/some')"},"standard":{"title":"Standard","code":"import some from 'kyanite/some'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"sort","desc":"Uses a comparison function to sort an array","examples":["sort((a, b) => a - b, [99, 23, 10, 53, 1]) // => [1, 10, 23, 53, 99]\r\r// It's also curried\r\rconst sorter = sort((a, b) => a - b)\r\rsorter([99, 23, 10, 53, 1]) // => [1, 10, 23, 53, 99]\rsorter([5, 3, 4, 6, 2, 1]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A new sorted array"}],"params":[{"type":{"names":["function"]},"description":"The function used to sort the array","name":"fn"},{"type":{"names":["Array"]},"description":"The array to be sorted","name":"a"}],"syntax":"sort(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const sort = require('kyanite/sort')"},"standard":{"title":"Standard","code":"import sort from 'kyanite/sort'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Array","title":"sortBy","desc":"Sorts through an array of values using the provided function on each value","examples":["sortBy(x => x.name, [\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n]) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]\n\n// It's also curried\n\nconst sb = sortBy(x => x.name)\n\nsb([\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n]) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]"],"returns":[{"type":{"names":["Array"]},"description":"A newly sorted array"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Array"]},"description":"The array to run through","name":"list"}],"syntax":"sortBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const sortBy = require('kyanite/sortBy')"},"standard":{"title":"Standard","code":"import sortBy from 'kyanite/sortBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"sortWith","desc":"Sorts an array based on the functions passed it, will go through the functions in order\nand use ties to the next function in order to break ties","examples":["const data = [{name: 'alice', age: 40}, {name: 'bob', age: 30}, {name: 'clara', age: 40}]\nsortWith([\n descendBy(x => x.age),\n ascendBy(x => x.name)\n], data) // => [{name: 'alice', age: 40}, {name: 'clara', age: 40}, {name: 'bob', age: 30}]\n\n// It's also curried\n\nconst ageNameSort = sortWith([\n descendBy(x => x.age),\n ascendBy(x => x.name)\n])\n\nageNameSort(data) // =>[{name: 'alice', age: 40}, {name: 'clara', age: 40}, {name: 'bob', age: 30}]"],"returns":[{"type":{"names":["Array"]},"description":"A new and sorted array"}],"params":[{"type":{"names":["Array"]},"description":"An array of functions to sort with","name":"fns"},{"type":{"names":["Array"]},"description":"The array to be sorted","name":"arr"}],"syntax":"sortWith(fns, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const sortWith = require('kyanite/sortWith')"},"standard":{"title":"Standard","code":"import sortWith from 'kyanite/sortWith'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"take","desc":"Takes the values from an array up until the point specified, then brings those values back","examples":["take(3, [1, 2, 3, 4, 5]) // => [1, 2, 3]\n\n// It's also curried\n\nconst t = take(3)\n\nt([1, 2, 3, 4, 5]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of the values taken"}],"params":[{"type":{"names":["Number"]},"description":"The index we want our take to start at","name":"i"},{"type":{"names":["Array"]},"description":"The array we are taking from","name":"list"}],"syntax":"take(i, list)","usage":{"commonjs":{"title":"CommonJs","code":"const take = require('kyanite/take')"},"standard":{"title":"Standard","code":"import take from 'kyanite/take'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"union","desc":"Creates a union between two arrays, removing duplicates from each","examples":["union([1, 2, 3], [3, 4, 5]) // => [1, 2, 3, 4, 5]\runion([1, 2, 3], [[3, 4, 5], [4, 5, 6]]) // => [1, 2, 3, 4, 5, 6]\r\r// It's also curried\r\rconst un = union([1, 2, 3])\r\run([3, 4, 5]) // => [1, 2, 3, 4, 5]\run([[3, 4, 5], [4, 5, 6]]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of unique values from each of the passed in arrays"}],"params":[{"type":{"names":["Array"]},"description":"An array to put through combining","name":"a"},{"type":{"names":["Array"]},"description":"The rest of the arrays","name":"rest"}],"syntax":"union(a, rest)","usage":{"commonjs":{"title":"CommonJs","code":"const union = require('kyanite/union')"},"standard":{"title":"Standard","code":"import union from 'kyanite/union'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"uniq","desc":"Returns an array of unique values from the applied function","examples":["uniq([1, 2, 2, 3, 3, 4, 5]) // => [1, 2, 3, 4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array of uniq values from the provided function"}],"params":[{"type":{"names":["Array"]},"description":"The list to sift through","name":"list"}],"syntax":"uniq(list)","usage":{"commonjs":{"title":"CommonJs","code":"const uniq = require('kyanite/uniq')"},"standard":{"title":"Standard","code":"import uniq from 'kyanite/uniq'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"uniqBy","desc":"Returns an array of unique values from the applied function","examples":["uniqBy(x => x > 2, [1, 2, 3, 4, 5]) // => [3, 4, 5]\r\r// It is also curried\r\rconst uq = uniqBy(x => x > 2)\r\ruq([1, 2, 3, 4, 5]) // => [3, 4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array of unique values from the provided function"}],"params":[{"type":{"names":["function"]},"description":"The function to apply","name":"fn"},{"type":{"names":["Array"]},"description":"The list to sift through","name":"list"}],"syntax":"uniqBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const uniqBy = require('kyanite/uniqBy')"},"standard":{"title":"Standard","code":"import uniqBy from 'kyanite/uniqBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"update","desc":"Add an item to an array within a certain index of the array","examples":["update(2, 10, [1, 2, 3]) // => [1, 2, 10]\r\r// You can also use it as a curried method\r\rconst updater = update(2, 10)\r\rupdater([1, 2, 3]) // => [1, 2, 10]\r\r// This can be taken further like so\r\rconst index = update(2)\rconst val = index(10)\rval([1, 2, 3]) // => [1, 2, 10]"],"returns":[{"type":{"names":["Array"]},"description":"Returns the modified array"}],"params":[{"type":{"names":["Number"]},"description":"The index number to add at","name":"index"},{"type":{"names":["Any"]},"description":"What we want to add to our array","name":"val"},{"type":{"names":["Array"]},"description":"The array in question","name":"list"}],"syntax":"update(index, val, list)","usage":{"commonjs":{"title":"CommonJs","code":"const update = require('kyanite/update')"},"standard":{"title":"Standard","code":"import update from 'kyanite/update'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"zip","desc":"Takes two arrays and combines them into a key value pair object","examples":["zip(['a', 'b', 'c'], [1, 2, 3]) // => { a: 1, b: 2, c: 3 }\nzip(['a', 'b', 'c'], [1, 2, 3, 4]) // => { a: 1, b: 2, c: 3 }\nzip(['a', 'b', 'c'], [1, 2]) // => { a: 1, b: 2 }\n\n// It's also curried\n\nconst z = zip(['a', 'b', 'c'])\n\nz([1, 2, 3]) // => { a: 1, b: 2, c: 3 }\nz([1, 2, 3, 4]) // => { a: 1, b: 2, c: 3 }\nz([1, 2]) // => { a: 1, b: 2 }"],"returns":[{"type":{"names":["Object"]},"description":"The combined arrays key value pair"}],"params":[{"type":{"names":["Array"]},"description":"The array that will act as keys","name":"x"},{"type":{"names":["Array"]},"description":"The array that will act as values","name":"y"}],"syntax":"zip(x, y)","usage":{"commonjs":{"title":"CommonJs","code":"const zip = require('kyanite/zip')"},"standard":{"title":"Standard","code":"import zip from 'kyanite/zip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"and","desc":"Runs an and comparison on the two values passed in","examples":["and(true, true) // => true\nand(true, false) // => false\nand(false, false) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"The evaluated outcome of the parameters"}],"params":[{"type":{"names":["Boolean"]},"description":"The first boolean to compare","name":"a"},{"type":{"names":["Boolean"]},"description":"The second boolean to compare","name":"b"}],"syntax":"and(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const and = require('kyanite/and')"},"standard":{"title":"Standard","code":"import and from 'kyanite/and'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"ap","desc":"Takes an array of functions to be applied to an array of data, concating the results together","examples":["ap([x => x + 1, x => x * 2], [1, 2, 3]) // => [2, 3, 4, 2, 4, 6]\n\n// It's also curried\n\nconst a = ap([x => x + 1, x => x * 2])\n\na([1, 2, 3]) // => [2, 3, 4, 2, 4, 6]\na([3, 4, 5]) // => [4, 5, 6, 6, 8, 10]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of data modified by the functions concated together"}],"params":[{"type":{"names":["Array"]},"description":"The list of functions to apply","name":"fns"},{"type":{"names":["Array"]},"description":"The array of data to run the functions on","name":"list"}],"syntax":"ap(fns, list)","usage":{"commonjs":{"title":"CommonJs","code":"const ap = require('kyanite/ap')"},"standard":{"title":"Standard","code":"import ap from 'kyanite/ap'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"ascend","desc":"Determiens which of the two passed in values should be ascended","examples":["[4, 10, 1, 6, 7, 12].sort(ascend) // => [1, 4, 6, 7, 10, 12]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on which value should ascend"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"ascend(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const ascend = require('kyanite/ascend')"},"standard":{"title":"Standard","code":"import ascend from 'kyanite/ascend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Function","title":"ascendBy","desc":"Can be used with sort to ascend an array based on the function passed in","examples":["[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(ascendBy(x => x.name)) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]\n\n// It's also curried\n\nconst desc = ascendBy(x => x.name)\n\n[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(desc) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on where it falls when compared with the other value"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"ascendBy(fn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const ascendBy = require('kyanite/ascendBy')"},"standard":{"title":"Standard","code":"import ascendBy from 'kyanite/ascendBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"both","desc":"Validates that the same value passed into two different functions returns truthy for both","examples":["both(x => x > 10, x => x < 20, 15) // => true\n\n// It's also curried\n\nconst b = both(x => x > 10, x => x < 20)\n\nb(15) // => true\nb(9) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on if both functions return a truthy value when ran"}],"params":[{"type":{"names":["function"]},"description":"The first function to test the value in","name":"f"},{"type":{"names":["function"]},"description":"The second function to test the value in","name":"g"},{"type":{"names":["Any"]},"description":"The value to run in the previous two functions","name":"a"}],"syntax":"both(f, g, a)","usage":{"commonjs":{"title":"CommonJs","code":"const both = require('kyanite/both')"},"standard":{"title":"Standard","code":"import both from 'kyanite/both'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"branch","desc":"Takes 3 functions and a value, and will run either the 2nd or 3rd function based on if the first passes","examples":["branch(\n x => x < 10,\n x => x + 1,\n x => x - 1,\n 0\n) // => 1\n\n// It's also curried\nconst b = branch(\n x => x < 10,\n x => x + 1,\n x => x - 1\n)\n\nb(0) // => 1\nb(12) // => 11"],"returns":[{"type":{"names":["Any"]},"description":"The result of the branch function used"}],"params":[{"type":{"names":["function"]},"description":"The first function to determine the path of our branch","name":"p"},{"type":{"names":["function"]},"description":"The function to run if the first passes","name":"f"},{"type":{"names":["function"]},"description":"The function to run if the first fails","name":"g"},{"type":{"names":["Any"]},"description":"The data to pass long our functions","name":"a"}],"syntax":"branch(p, f, g, a)","usage":{"commonjs":{"title":"CommonJs","code":"const branch = require('kyanite/branch')"},"standard":{"title":"Standard","code":"import branch from 'kyanite/branch'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"complement","desc":"Takes a function and returns a new function that when called returns the opposite truthy/falsy value of\rwhat was passed in.","examples":["const isNot = complement(is(String))\r\risNot(1) // => true\risNot('test') // => false"],"returns":[{"type":{"names":["function"]},"description":"Returns the opposite function back"}],"params":[{"type":{"names":["function"]},"description":"The function we want to apply the complement of","name":"fn"},{"type":{"names":["Any"]},"description":"The value our functionality is being ran against","name":"a"}],"syntax":"complement(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const complement = require('kyanite/complement')"},"standard":{"title":"Standard","code":"import complement from 'kyanite/complement'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"curry","desc":"Create a curried function","examples":["const add = curry((a, b) => a + b)\r\radd(1)(2) // => 3\radd(1, 2) // => 3\r\rconst add1 = add(1)\r\radd1(2) // => 3"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the function sent in"}],"params":[{"type":{"names":["function"]},"description":"The function we will be running","name":"f"},{"type":{"names":["Any"]},"description":"extra args to apply if needed","name":"args"}],"syntax":"curry(f, args)","usage":{"commonjs":{"title":"CommonJs","code":"const curry = require('kyanite/curry')"},"standard":{"title":"Standard","code":"import curry from 'kyanite/curry'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"Unknown","deprecated":false,"category":"Function","title":"curryN","desc":"Acts like curry but this one expects you to tell it how many arguments to expect\rthis allows it to work well with rest parameters and default params.","examples":["const add = curryN(2, (a, b) => a + b)\r\radd(1)(2) // => 3\radd(1, 2) // => 3\r\rconst sum = add(1)\r\rsum(2) // => 3\rsum(4) // => 5\r\rconst add2 = curryN(2, (a, b = 1) => a + b)\rconst sum1 = add(1)\r\rsum1(4) // => 5\rsum1(undefined) // => 2"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the results of the function passed in"}],"params":[{"type":{"names":["Number"]},"description":"The number of arguments the function is expecting","name":"n"},{"type":{"names":["function"]},"description":"The function we are going to be running with said arguments","name":"f"},{"type":{"names":["Any"]},"description":"The arguments to apply to said function curry wont execute until this length matches n","name":"args"}],"syntax":"curryN(n, f, args)","usage":{"commonjs":{"title":"CommonJs","code":"const curryN = require('kyanite/curryN')"},"standard":{"title":"Standard","code":"import curryN from 'kyanite/curryN'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":"Since v0.8.0 -- Use clone","category":"Function","title":"deepClone","desc":"Clones the object sent in (Hard Clone)","examples":["const data = { test: 1 }\rconst cloned = deepClone(data) // => { test: 1 }\r\rcloned.test = 2\r\rconsole.log(data) // => { test: 1 }\rconsole.log(cloned) // => { test: 2 }"],"returns":[{"type":{"names":["Any"]},"description":"The newly cloned value"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to get cloned","name":"x"}],"syntax":"deepClone(x)","usage":{"commonjs":{"title":"CommonJs","code":"const deepClone = require('kyanite/deepClone')"},"standard":{"title":"Standard","code":"import deepClone from 'kyanite/deepClone'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"descend","desc":"Determiens which of the two passed in values should be descended","examples":["[4, 10, 1, 6, 7, 12].sort(descend) // => [12, 10, 7, 6, 4, 1]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on which value should descend"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"descend(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const descend = require('kyanite/descend')"},"standard":{"title":"Standard","code":"import descend from 'kyanite/descend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Function","title":"descendBy","desc":"Can be used with sort to descend an array based on the function passed in","examples":["[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(descendBy(x => x.name)) // => [{ name: 'carl' }, { name: 'bob' }, { name: 'amanda' }, { name: 'amanda' }]\n\n// It's also curried\n\nconst desc = descendBy(x => x.name)\n\n[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(desc) // => [{ name: 'carl' }, { name: 'bob' }, { name: 'amanda' }, { name: 'amanda' }]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on where it falls when compared with the other value"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"descendBy(fn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const descendBy = require('kyanite/descendBy')"},"standard":{"title":"Standard","code":"import descendBy from 'kyanite/descendBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"empty","desc":"Empties out the items of the sent value","examples":["empty({ test: 1 }) // => {}\rempty([1, 2, 3]) // => []\rempty('test') // => ''"],"returns":[{"type":{"names":["*"]},"description":"Returns the empty item"}],"params":[{"type":{"names":["*"]},"description":"The item to empty","name":"x"}],"syntax":"empty(x)","usage":{"commonjs":{"title":"CommonJs","code":"const empty = require('kyanite/empty')"},"standard":{"title":"Standard","code":"import empty from 'kyanite/empty'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Function","title":"encase","desc":"Encase the provided function in a try catch which if the function errors will give back an undefined","examples":["encase(x => x.a.b.c, {a: 0}) // => undefined\nencase(x => x.a.b.c, {a: {b: {c: 0}}}) // => 0\n\n// It's also curried\nconst getter = x => x.a.b.c\nconst en = encase(getter)\n\nen({a: 0}) // => undefined\nen(a: {b: {c: 0}}}) // => 0"],"returns":[{"type":{"names":["Any"]},"description":"The return of the provided function"}],"params":[{"type":{"names":["function"]},"description":"The function to encase before running","name":"fn"},{"type":{"names":["Any"]},"description":"The value we want to pass into the given function","name":"a"}],"syntax":"encase(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const encase = require('kyanite/encase')"},"standard":{"title":"Standard","code":"import encase from 'kyanite/encase'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"gt","desc":"Checks if a value is greater than the other","examples":["gt(2, 1) // => true\ngt('b', 'a') // => true\n\n// It's also curried\n\nconst g = gt(2)\n\ng(1) // => true\ng(2) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than the other","name":"b"}],"syntax":"gt(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gt = require('kyanite/gt')"},"standard":{"title":"Standard","code":"import gt from 'kyanite/gt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"gte","desc":"Checks if a value is greater than or equal to the other","examples":["gte(2, 1) // => true\ngte(1, 1) // => true\ngte('b', 'a') // => true\n\n// It's also curried\n\nconst g = gte(2)\n\ng(1) // => true\ng(2) // => true\ng(3) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than or equal to the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than or equal to the other","name":"b"}],"syntax":"gte(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gte = require('kyanite/gte')"},"standard":{"title":"Standard","code":"import gte from 'kyanite/gte'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"identical","desc":"Performs a check to see if the items are identical in the sense that they reference the same memory","examples":["identical(NaN, NaN) // => true\ridentical([1], [1]) // => false\r\rconst o = {}\r\ridentical({}, {}) // => false\ridentical(o, o) // => true\r\r// Identical is also curried\r\rconst test = identical(NaN)\rtest(NaN) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean based on the check"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"identical(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const identical = require('kyanite/identical')"},"standard":{"title":"Standard","code":"import identical from 'kyanite/identical'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"identity","desc":"A function that returns the value passed to it","examples":["identity(10) // => 10\r\rconst test = identity(10)\r\rconsole.log(typeof test.constructor) // => 'function'\rconsole.log(10.constructor) // => error\r\rfilter(identity, [0, 'cool', null, 1]) // => ['cool', 1]"],"returns":[{"type":{"names":["Any"]},"description":"The value"}],"params":[{"type":{"names":["Any"]},"description":"The value to return","name":"a"}],"syntax":"identity(a)","usage":{"commonjs":{"title":"CommonJs","code":"const identity = require('kyanite/identity')"},"standard":{"title":"Standard","code":"import identity from 'kyanite/identity'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"is","desc":"See if an object is an instance of the supplied constructor, this will also check up the inheritence chain","examples":["is(Object, {}) // => true\nis(Array, []) // => true\nis(String, '') // => true\nis(Number, 0) // => true\nis(Boolean, true) // => true\nis(Function, a => a) // => true\nis(RegExp, /[0-9]/g) // => true\n\n// It is curried as well\n\nconst isObject = is(Object)\n\nisObject({}) // => true\n\n// Since almost everything in JS can also be related to an object you will get:\nconst isObj = is(Object)\n\nisObj({}) // => true\nisObj([]) // => true\nisObj(function () { }) // => true\nisObj(new Boolean(true)) // => true\nisObj(new Number(0)) // => true\nisObj(/(?:)/) // => true\nisObj(1) // => false\nisObj('') // => false\nisObj(false) // => false"],"returns":[{"type":{"names":["Boolean"]}}],"params":[{"type":{"names":["Object"]},"description":"A Constructor","name":"Ctor"},{"type":{"names":["*"]},"description":"The value to test","name":"x"}],"syntax":"is(Ctor, x)","usage":{"commonjs":{"title":"CommonJs","code":"const is = require('kyanite/is')"},"standard":{"title":"Standard","code":"import is from 'kyanite/is'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isEmpty","desc":"Determines if the entered value is empty or not","examples":["isEmpty([]) // => true\risEmpty({}) // => true\risEmpty('') // => true\risEmpty(NaN) // => true\risEmpty(null) // => true\risEmpty(undefined) // => true\risEmpty(true) // => true\risEmpty(false) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns the boolean after running our check"}],"params":[{"type":{"names":["Any"]},"description":"Value to check against","name":"x"}],"syntax":"isEmpty(x)","usage":{"commonjs":{"title":"CommonJs","code":"const isEmpty = require('kyanite/isEmpty')"},"standard":{"title":"Standard","code":"import isEmpty from 'kyanite/isEmpty'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isEqual","desc":"Takes and compares two items. Capable of handling cyclical data structures","examples":["const obj = isEqual({}, {}) // => true\rconst arr = isEqual([], []) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns the boolean after running our comparison check"}],"params":[{"type":{"names":["Any"]},"description":"First item to compare","name":"a"},{"type":{"names":["Any"]},"description":"Second item to compare","name":"b"}],"syntax":"isEqual(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const isEqual = require('kyanite/isEqual')"},"standard":{"title":"Standard","code":"import isEqual from 'kyanite/isEqual'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isNil","desc":"Checks if the value is a null value","examples":["isNill(null) // => true\risNill() // => true\risNill(1) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean based on the check"}],"params":[{"type":{"names":["Any"]},"description":"The value to run our test against","name":"x"}],"syntax":"isNil(x)","usage":{"commonjs":{"title":"CommonJs","code":"const isNil = require('kyanite/isNil')"},"standard":{"title":"Standard","code":"import isNil from 'kyanite/isNil'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"juxt","desc":"Applies the provided function and turns them into a single function you can use on a value","examples":["const getRange = juxt([Math.min, Math.max])\r\rgetRange(3, 4, 9, -3) // => [-3, 9]"],"returns":[{"type":{"names":["function"]},"description":"The function you can use on your data value"}],"params":[{"type":{"names":["Array"]},"description":"An array of functions to apply","name":"fns"}],"syntax":"juxt(fns)","usage":{"commonjs":{"title":"CommonJs","code":"const juxt = require('kyanite/juxt')"},"standard":{"title":"Standard","code":"import juxt from 'kyanite/juxt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"lt","desc":"Checks if a value is less than the other","examples":["lt(1, 2) // => true\nlt('a', 'b') // => true\n\n// It's also curried\n\nconst g = lt(2)\n\ng(1) // => false\ng(2) // => false\ng(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than the other","name":"b"}],"syntax":"lt(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lt = require('kyanite/lt')"},"standard":{"title":"Standard","code":"import lt from 'kyanite/lt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"lte","desc":"Checks if a value is less than or equal to the other","examples":["lte(1, 2) // => true\nlte(1, 1) // => true\nlte('a', 'b') // => true\n\n// It's also curried\n\nconst g = lte(2)\n\ng(1) // => false\ng(2) // => true\ng(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than or equal to the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than or equal to the other","name":"b"}],"syntax":"lte(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lte = require('kyanite/lte')"},"standard":{"title":"Standard","code":"import lte from 'kyanite/lte'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"not","desc":"Returns boolean based on if the value is not","examples":["const reverse = not(true) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns boolean back based on the results"}],"params":[{"type":{"names":["Boolean"]},"description":"The values to compare against","name":"x"}],"syntax":"not(x)","usage":{"commonjs":{"title":"CommonJs","code":"const not = require('kyanite/not')"},"standard":{"title":"Standard","code":"import not from 'kyanite/not'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"on","desc":"Applies the second function to the values passed in, and then runs the first function against those new values","examples":["on((x, y) => x === y, x => x.length, 'you', 'are') // => true\n\n// It's also curried\n\nconst f = on((x, y) => x === y)\n\nf(x => x.length, 'you', 'are') // => true\n\nconst g = f(x => x.length)\n\ng('you', 'are') // => true\n\nconst h = f('you')\n\nh('are') // => true"],"returns":[{"type":{"names":["Any"]},"description":"A value based on the first functions return"}],"params":[{"type":{"names":["function"]},"description":"The first function being ran against the values from the second","name":"fn"},{"type":{"names":["function"]},"description":"The function to be applied to the two values passed in","name":"gn"},{"type":{"names":["Any"]},"description":"The first value to use","name":"a"},{"type":{"names":["Any"]},"description":"The second value we want to use","name":"b"}],"syntax":"on(fn, gn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const on = require('kyanite/on')"},"standard":{"title":"Standard","code":"import on from 'kyanite/on'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"or","desc":"Runs an or comparison on the two values passed in","examples":["or(true, true) // => true\nor(true, false) // => true\nor(false, false) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"The evaluated outcome of the parameters"}],"params":[{"type":{"names":["Boolean"]},"description":"The first boolean to compare","name":"a"},{"type":{"names":["Boolean"]},"description":"The second boolean to compare","name":"b"}],"syntax":"or(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const or = require('kyanite/or')"},"standard":{"title":"Standard","code":"import or from 'kyanite/or'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"pipe","desc":"Applies a sequence of transformations over a value.","examples":["pipe([add(2), mul(2)], 10) // => 24\r\r// It's also curried\r\rconst piper = pipe([add(2), mul(2)])\r\rpiper(10) // => 24"],"returns":[{"type":{"names":["Any"]},"description":"The transformed value"}],"params":[{"type":{"names":["Array"]},"description":"The array of functions to apply to our value","name":"list"},{"type":{"names":["Any"]},"description":"The value to apply our functions too","name":"a"}],"syntax":"pipe(list, a)","usage":{"commonjs":{"title":"CommonJs","code":"const pipe = require('kyanite/pipe')"},"standard":{"title":"Standard","code":"import pipe from 'kyanite/pipe'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"range","desc":"Create an array range from start to end","examples":["const test = range(3, 7) // => [3, 4, 5, 6]\rconst test = range(3) // => [0, 1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"Returns an array of numbers consisting of the range"}],"params":[{"type":{"names":["Number"]},"description":"Starting number for the range","name":"from"},{"type":{"names":["Number"]},"description":"Number to end on for the range","name":"to"}],"syntax":"range(from, to)","usage":{"commonjs":{"title":"CommonJs","code":"const range = require('kyanite/range')"},"standard":{"title":"Standard","code":"import range from 'kyanite/range'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"type","desc":"Finds the type of the sent value","examples":["type({}) // => 'Object'\rtype([]) // => 'Array'\rtype(null) // => 'Null'\rtype(undefined) // => 'Undefined'\rtype('hi') // => 'String'\rtype(1) // => 'Number'\rtype(/1/g) // => 'RegExp'\rtype(new Date()) // => 'Date'\rtype(true) // => 'Boolean'"],"returns":[{"type":{"names":["String"]},"description":"A string based on the type of the value passed in"}],"params":[{"type":{"names":["Any"]},"description":"The value to test","name":"x"}],"syntax":"type(x)","usage":{"commonjs":{"title":"CommonJs","code":"const type = require('kyanite/type')"},"standard":{"title":"Standard","code":"import type from 'kyanite/type'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"when","desc":"Takes a value and if it passes the check function (1st param) then it will apply the action function (2nd param) otherwise undefined is given back","examples":["when(x => x > 2, x => x * 2, 5) // => 10\nwhen(x => x > 5, x => x * 2, 5) // => undefined\n\n// It's also curried\n\nconst w = when(x => x > 2, x => x * 2)\n\nw(5) // => 10\nw(1) // => undefined"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever the action function returns, or undefined"}],"params":[{"type":{"names":["function"]},"description":"The check function that when passed if returns a truthy value trigger the action","name":"fn"},{"type":{"names":["function"]},"description":"The action function which is fired when the logic passes","name":"act"},{"type":{"names":["Any"]},"description":"The arguments to pass to both functions","name":"args"}],"syntax":"when(fn, act, args)","usage":{"commonjs":{"title":"CommonJs","code":"const when = require('kyanite/when')"},"standard":{"title":"Standard","code":"import when from 'kyanite/when'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"add","desc":"Adds the provided items together","examples":["add(1, 2) // => 3\r\r// It's also curried\r\rconst adder = add(2)\r\radder(3) // => 5\radder(2) // => 4"],"returns":[{"type":{"names":["Number"]},"description":"The sum of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first number to add","name":"a"},{"type":{"names":["Number"]},"description":"The second number to add","name":"b"}],"syntax":"add(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const add = require('kyanite/add')"},"standard":{"title":"Standard","code":"import add from 'kyanite/add'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"between","desc":"Checks to see if a number is between two other provided numbers","examples":["between(1, 3, 2) // => true\nbetween(1, 10, 7) // => true\nbetween(1, 10, 11) // => false\n\n// It's also curried\nconst b = between(1)\n\nb(10, 9) // => true\n\n// A step further\nconst c = b(10)\n// OR\n// const c = between(1, 10)\n\nc(9) // => true\nc(11) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the provided number is between the other two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The number our value should be greater than or equal too","name":"a"},{"type":{"names":["Number"]},"description":"The number our value should be less than or equal too","name":"b"},{"type":{"names":["Number"]},"description":"The value to compare with","name":"n"}],"syntax":"between(a, b, n)","usage":{"commonjs":{"title":"CommonJs","code":"const between = require('kyanite/between')"},"standard":{"title":"Standard","code":"import between from 'kyanite/between'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"div","desc":"Divides the provided items","examples":["div(2, 1) // => 2\r\r// It's also curried\r\rconst divide = div(15)\r\rdivide(3) // => 5\rdivide(5) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"The quotient of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The divisor which the dividend will be divided by","name":"a"},{"type":{"names":["Number"]},"description":"The dividend of the division problem","name":"b"}],"syntax":"div(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const div = require('kyanite/div')"},"standard":{"title":"Standard","code":"import div from 'kyanite/div'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"gcd","desc":"Determines the greatest common denominator of the numbers passed in","examples":["gcd(80, 90) // => 10\rgcd(20, 600) // => 20\r\r// It's also curried\r\rconst a = gcd(80)\r\ra(90) // => 10\ra(93) // => 1"],"returns":[{"type":{"names":["Number"]},"description":"The Greatest Common Denominator"}],"params":[{"type":{"names":["Number"]},"description":"The First number to use","name":"a"},{"type":{"names":["Number"]},"description":"The Second number to use","name":"b"}],"syntax":"gcd(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gcd = require('kyanite/gcd')"},"standard":{"title":"Standard","code":"import gcd from 'kyanite/gcd'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"isEven","desc":"Checks if the provided number is even or not","examples":["isEven(2) // => true\nisEven(12) // => true\nisEven(1) // => false\nisEven(NaN) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the provided number is even"}],"params":[{"type":{"names":["Number"]},"description":"The number to check if its even","name":"n"}],"syntax":"isEven(n)","usage":{"commonjs":{"title":"CommonJs","code":"const isEven = require('kyanite/isEven')"},"standard":{"title":"Standard","code":"import isEven from 'kyanite/isEven'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"isOdd","desc":"Checks if the provided number is odd or not","examples":["isOdd(2) // => false\nisOdd(NaN) // => false\nisOdd(1) // => true\nisOdd(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the number is odd"}],"params":[{"type":{"names":["Number"]},"description":"The number to check against","name":"n"}],"syntax":"isOdd(n)","usage":{"commonjs":{"title":"CommonJs","code":"const isOdd = require('kyanite/isOdd')"},"standard":{"title":"Standard","code":"import isOdd from 'kyanite/isOdd'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"lcm","desc":"Finds the least common multiple of the provided numbers","examples":["lcm(90, 70) // => 630\rlcm(91, 4) // => 364\r\r// It's also curried\r\rconst a = lcm(90)\r\ra(70) // => 630\ra(4) // => 180"],"returns":[{"type":{"names":["Number"]},"description":"The least common multiple of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first number to use","name":"a"},{"type":{"names":["Number"]},"description":"The second number to use","name":"b"}],"syntax":"lcm(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lcm = require('kyanite/lcm')"},"standard":{"title":"Standard","code":"import lcm from 'kyanite/lcm'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"mul","desc":"Multiplies the provided items","examples":["mul(2, 1) // => 2\r\r// It's also curried\r\rconst multiply = mul(5)\r\rmultiply(3) // => 15\rmultiply(2) // => 10"],"returns":[{"type":{"names":["Number"]},"description":"The product of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first factor to multiply with","name":"a"},{"type":{"names":["Number"]},"description":"The second factor to multiply with","name":"b"}],"syntax":"mul(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const mul = require('kyanite/mul')"},"standard":{"title":"Standard","code":"import mul from 'kyanite/mul'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"pow","desc":"Take a base number and brings it to the value of base^exponent","examples":["pow(3, 7) // => 343\npow(0.5, 4) // => 2\n\n// It's also curried\nconst p = pow(3)\n\np(7) // => 343"],"returns":[{"type":{"names":["Number"]},"description":"A number representing the given base taken to the power of the given exponent"}],"params":[{"type":{"names":["Number"]},"description":"The exponent used to raise the base number","name":"a"},{"type":{"names":["Number"]},"description":"The base Number","name":"b"}],"syntax":"pow(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const pow = require('kyanite/pow')"},"standard":{"title":"Standard","code":"import pow from 'kyanite/pow'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"rem","desc":"Takes two numbers and gets the remainder from the division","examples":["rem(5, 12) // => 2\nrem(2, -1) // => -1\nrem(2, NaN) // => NaN\n\n// It's also curried\nconst r = rem(5)\n\nr(12) // => 2"],"returns":[{"type":{"names":["Number"]},"description":"The remainder of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The dividend of the division problem","name":"a"},{"type":{"names":["Number"]},"description":"The divisor which the dividend will be divided by","name":"b"}],"syntax":"rem(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const rem = require('kyanite/rem')"},"standard":{"title":"Standard","code":"import rem from 'kyanite/rem'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"round","desc":"Round a number using exponent rounding","examples":["round(2, 112.336) // => 112.34\rround(3, 112.3354) // => 112.335\r\r// It is curried\rconst rounder = round(3)\r\rrounder(122.4456) // => 112.446\rrounder(122.332) // => 122.332"],"returns":[{"type":{"names":["Number"]},"description":"The rounded number to the desired precision"}],"params":[{"type":{"names":["Number"]},"description":"The precision we want the number to be rounded to","name":"precision"},{"type":{"names":["Number"]},"description":"The number we are going to round","name":"num"}],"syntax":"round(precision, num)","usage":{"commonjs":{"title":"CommonJs","code":"const round = require('kyanite/round')"},"standard":{"title":"Standard","code":"import round from 'kyanite/round'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"sub","desc":"Subtracts the provided items","examples":["sub(2, 1) // => 1\r\r// It's also curried\r\rconst subtract = sub(5)\r\rsubtract(3) // => 2\rsubtract(2) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"The difference of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The number to subtract from","name":"a"},{"type":{"names":["Number"]},"description":"The number to subtract with","name":"b"}],"syntax":"sub(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const sub = require('kyanite/sub')"},"standard":{"title":"Standard","code":"import sub from 'kyanite/sub'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"any","desc":"Works a lot like every for array, but for the object data type. Returns whether every key matches the predicate or not","examples":["const run = any({\r a: x => x === 'foo',\r b: x => x !== 'bar'\r})\r\rrun({ a: 'foo', b: 'xxx', x: 11, y: 19 }) // => true\rrun({ a: 'xxx', b: 'bar' }) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"A boolean dependent on whether or not any values passed"}],"params":[{"type":{"names":["Object"]},"description":"An Object schema containing the matching properties and the function to run","name":"schema"},{"type":{"names":["Object"]},"description":"The object to run through","name":"obj"}],"syntax":"any(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const any = require('kyanite/any')"},"standard":{"title":"Standard","code":"import any from 'kyanite/any'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"assign","desc":"Create a new object from the provided objects in the parameters defaults to Object.assign if able","examples":["assign({ a: 1 }) // => { a: 1 }\rassign({ test: 1 }, { thing: 2 }) // => { test: 1, thing: 2 }\rassign({ a: 1, b: 2, c: 3 }, { c: 5, d: 3 }) // => { a: 1, b: 2, c: 5, d: 3 }\rassign({ a: 1 }, { b: 2 }, { c: 5 }, { c: 3 }, { d: 4 }) // => { a: 1, b: 2, c: 3, d: 4 }"],"returns":[{"type":{"names":["Object"]},"description":"A new Object"}],"params":[{"type":{"names":["Object"]},"description":"The object(s) we want to combine","name":"args"}],"syntax":"assign(args)","usage":{"commonjs":{"title":"CommonJs","code":"const assign = require('kyanite/assign')"},"standard":{"title":"Standard","code":"import assign from 'kyanite/assign'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.8.0","deprecated":false,"category":"Object","title":"clone","desc":"Creates either a shallow or deep clone of the provided object","examples":["clone({ a: 1 }) // => { a: 1 }\nclone({ a: 1 }, true) // => { a: 1 }\n\n// Using deep clone would technically work on arrays too\nclone([1, 2, 3], true) // => [1, 2, 3]\n\nconst obj = { a: 1 }\nconst tst = clone(obj)\n\ntst.a = 2\n\nconsole.log(tst) // => { a: 2 }\nconsole.log(obj) // => { a: 1 }"],"returns":[{"type":{"names":["Object"]},"description":"A clone of the provided object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to create a clone of","name":"x"},{"type":{"names":["Boolean"]},"description":"Whether or not we want to create a shallow or deep clone of the object","name":"deep"}],"syntax":"clone(x, deep)","usage":{"commonjs":{"title":"CommonJs","code":"const clone = require('kyanite/clone')"},"standard":{"title":"Standard","code":"import clone from 'kyanite/clone'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"compress","desc":"Takes an object and compresses it down removing undefined or null values","examples":["compress({ thing: '', test: 1, other: undefined }) // => { thing: '', test: 1 }\rcompress({ thing: '', test: 1, other: null }) // => { thing: '', test: 1 }"],"returns":[{"type":{"names":["Object"]},"description":"Returns a new object without the unwanted values"}],"params":[{"type":{"names":["Object"]},"description":"The Object to compress","name":"obj"}],"syntax":"compress(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const compress = require('kyanite/compress')"},"standard":{"title":"Standard","code":"import compress from 'kyanite/compress'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"defaults","desc":"Applies default properties to an object that does not contain the smae or contains falsey values on those properties","examples":["defaults({ test: 1, thing: 2 }, { thing: 4 }) // => { test: 1, thing: 4 }\r\r// It's also curried\r\rconst def = defaults({ test: 1, thing: 2 })\r\rdef({ thing: 4 }) // => { test: 1, thing: 4 }"],"returns":[{"type":{"names":["Object"]},"description":"A New object"}],"params":[{"type":{"names":["Object"]},"description":"The default object to reference","name":"def"},{"type":{"names":["Object"]},"description":"The data object to loop through","name":"data"}],"syntax":"defaults(def, data)","usage":{"commonjs":{"title":"CommonJs","code":"const defaults = require('kyanite/defaults')"},"standard":{"title":"Standard","code":"import defaults from 'kyanite/defaults'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.6.0","deprecated":false,"category":"Object","title":"draft","desc":"Runs a provided function against all of the values that are within the provided object","examples":["draft(x => x * 2, { a: 1, b: 2, c: 3 }) // => { a: 2, b: 4, c: 6 }\n\n// It's also curried\n\nconst d = draft(x => x * 2)\n\nd({ a: 1, b: 2, c: 3 }) // => { a: 2, b: 4, c: 6 }"],"returns":[{"type":{"names":["Object"]},"description":"A new object with the updated data from our applied function"}],"params":[{"type":{"names":["function"]},"description":"The Function we want to apply to all of the data values","name":"fn"},{"type":{"names":["Object"]},"description":"The object to apply our functions too","name":"obj"}],"syntax":"draft(fn, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const draft = require('kyanite/draft')"},"standard":{"title":"Standard","code":"import draft from 'kyanite/draft'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"entries","desc":"Creates an array of arrays with the key value pairs of an object","examples":["entries({ a: 1, b: 2, c: 3 }) // => [['a', 1], ['b', 2], ['c', 3]]"],"returns":[{"type":{"names":["Array"]},"description":"An array of arrays with the key value pairs from the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to grab our data from","name":"obj"}],"syntax":"entries(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const entries = require('kyanite/entries')"},"standard":{"title":"Standard","code":"import entries from 'kyanite/entries'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"has","desc":"Determines if the object has a property","examples":["const obj = has('thing', { test: 1, thing: 2 }) // => true\r\r// has is also curried\r\rconst propSet = has('thing')\r\rpropSet({ test: 1, thing: 2 }) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns based on if the prop is found or not"}],"params":[{"type":{"names":["String"]},"description":"The prop to look for","name":"prop"},{"type":{"names":["Object"]},"description":"The Object we are searching","name":"obj"}],"syntax":"has(prop, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const has = require('kyanite/has')"},"standard":{"title":"Standard","code":"import has from 'kyanite/has'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Object","title":"head","desc":"Returns the first value from an object","examples":["head({ a: 1, b: 2, c: 3 }) // => 1\nhead({ a: { b: 2, c: 3 }, d: 1 }) // => { b: 2, c: 3 }"],"returns":[{"type":{"names":["Any"]},"description":"The first value within the object"}],"params":[{"type":{"names":["Object"]},"description":"The object to retrieve the value from","name":"obj"}],"syntax":"head(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const head = require('kyanite/head')"},"standard":{"title":"Standard","code":"import head from 'kyanite/head'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"height","desc":"Works a lot like length for arrays, but allows you to get the length of an object","examples":["height({ a: 1, b: 2 }) // => 2"],"returns":[{"type":{"names":["Number"]},"description":"The length of the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to read the length of","name":"obj"}],"syntax":"height(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const height = require('kyanite/height')"},"standard":{"title":"Standard","code":"import height from 'kyanite/height'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"omit","desc":"Create a new Array/Object by omitting the requested values","examples":["const obj = omit('test', { test: '3432', thing: 123 }) // => { thing: 123 }\rconst arr = omit(['a', 'b'], { a: 1, b: 2, c: 3}) // => { c: 3 }\r\r// omit is curried\r\rconst omitKeys = omit('test')\r\romitKeys({ test: '3432', thing: 123 }) // => { thing: 123 }"],"returns":[{"type":{"names":["Object"]},"description":"Returns the newly created data without the omitted values"}],"params":[{"type":{"names":["Array"]},"description":"The key(s) in which to omit from the data","name":"key"},{"type":{"names":["Object"]},"description":"The object to search through and filter","name":"x"}],"syntax":"omit(key, x)","usage":{"commonjs":{"title":"CommonJs","code":"const omit = require('kyanite/omit')"},"standard":{"title":"Standard","code":"import omit from 'kyanite/omit'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"path","desc":"Find an item based on the function sent in and its list","examples":["path(['a', 'b'], { a: { b: 3 } }) // => 3\npath(['a', 'b', 'c'], { a: 3 }) // => undefined\n\n// Is also curried\n\nconst safetyPath = path(['a', 'b'])\n\nsafetyPath({ a: { b: 2 } }) // => 2"],"returns":[{"type":{"names":["Any"]},"description":"Returns Maybe Data if found, undefined if not"}],"params":[{"type":{"names":["Array"]},"description":"The path to safely traverse the object with","name":"keys"},{"type":{"names":["Object"]},"description":"The object to traverse","name":"obj"}],"syntax":"path(keys, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const path = require('kyanite/path')"},"standard":{"title":"Standard","code":"import path from 'kyanite/path'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"plan","desc":"Uses a schema to allow you to plan out functions being ran against values within your object","examples":["const testFns = {\n a: x => x * 2,\n b: x => x + 10\n }\n\nplan(testFns, { a: 5, b: 10 }) // => { a: 10, b: 20 }\n\n// It's also curried\n\nconst p = plan(testFns)\n\np({ a: 5, b: 10 }) // => { a: 10, b: 20 }"],"returns":[{"type":{"names":["Object"]},"description":"A new object with the updated data from our applied functions"}],"params":[{"type":{"names":["Object"]},"description":"The object of functions we want to apply","name":"schema"},{"type":{"names":["Object"]},"description":"The object to apply our functions too","name":"obj"}],"syntax":"plan(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const plan = require('kyanite/plan')"},"standard":{"title":"Standard","code":"import plan from 'kyanite/plan'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"pluck","desc":"Recursively digs through objects to create a new list of values based on the provided property name and provided object","examples":["pluck('val', { a: { val: 3 }, b: { val: 5 } }) // => [3, 5]\n\n// It is also curried\nconst plucker = pluck('a')\n\nplucker([{ a: 1 }, { a: 2 }]) // => [1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"The new list which will be the same type as the list provided"}],"params":[{"type":{"names":["String"]},"description":"The property to look for","name":"p"},{"type":{"names":["Array","Object"]},"description":"An array of objects or a single object to pluck through","name":"list"}],"syntax":"pluck(p, list)","usage":{"commonjs":{"title":"CommonJs","code":"const pluck = require('kyanite/pluck')"},"standard":{"title":"Standard","code":"import pluck from 'kyanite/pluck'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"prop","desc":"Brings back the indicated property of an object if it exists","examples":["prop('thing', { thing: 'test' }) // => 'test'\rprop('thing', {}) // => undefined\rmap(prop('a'), [{ a: 1 }, { a: 2 }, { a: 3 }]) // => [1, 2, 3]\r\r// It is also curried\r\rconst proper = prop('a')\r\rproper({ a: 1, b: 2 }) // => 1"],"returns":[{"type":{"names":["Any"]},"description":"The value that exists at 'obj.p'"}],"params":[{"type":{"names":["Array"]},"description":"The array path of the property we are looking for","name":"p"},{"type":{"names":["Object"]},"description":"The object to search through","name":"obj"}],"syntax":"prop(p, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const prop = require('kyanite/prop')"},"standard":{"title":"Standard","code":"import prop from 'kyanite/prop'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Object","title":"props","desc":"Pulls a list of values from an object and returns them as an array","examples":["props(['a', 'b'], { a: 1, b: 2, c: 3 }) // => [1, 2]\n\n// It's also curried\n\nconst g = props(['a', 'b'])\n\ng({ a: 1, b: 2, c: 3 }) // => [1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"An array of values pulled from the object"}],"params":[{"type":{"names":["Array"]},"description":"The list of properties to get values from","name":"keys"},{"type":{"names":["Object"]},"description":"The object to map through","name":"obj"}],"syntax":"props(keys, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const props = require('kyanite/props')"},"standard":{"title":"Standard","code":"import props from 'kyanite/props'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"sift","desc":"Works a lot like an array filter, but for the object data type\rAccepts a function and an object, it then runs the function against each value","examples":["sift(x => typeof x === 'string', {\r id: 44,\r thing: 'test',\r other: 'cool'\r}) // => { thing: 'test', other: 'cool' }\r\r// It's also curried\r\rconst sifter = sift(x => typeof x === 'string')\r\rsifter({ id: 44, thing: 'test', other: 'cool' }) // => { thing: 'test', other: 'cool' }"],"returns":[{"type":{"names":["Object"]},"description":"A new filtered out object"}],"params":[{"type":{"names":["function"]},"description":"A function to run against the values within the object","name":"fn"},{"type":{"names":["Object"]},"description":"The object to sift through","name":"obj"}],"syntax":"sift(fn, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const sift = require('kyanite/sift')"},"standard":{"title":"Standard","code":"import sift from 'kyanite/sift'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Object","title":"tail","desc":"Returns the last value from an object","examples":["last({ a: 1, b: 2, c: 3 }) // => 3\nlast({ a: 1, d: { b: 2, c: 3 } }) // => { b: 2, c: 3 }"],"returns":[{"type":{"names":["Any"]},"description":"The last value within the object"}],"params":[{"type":{"names":["Object"]},"description":"The object to retrieve the value from","name":"obj"}],"syntax":"tail(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const tail = require('kyanite/tail')"},"standard":{"title":"Standard","code":"import tail from 'kyanite/tail'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.8.0","deprecated":false,"category":"Object","title":"unzip","desc":"Takes an object and breaks it down into two arrays one being the keys, the other being the values","examples":["unzip({ a: 1, b: 2, c: 3 }) // => [['a', 'b', 'c'], [1, 2, 3]]"],"returns":[{"type":{"names":["Array"]},"description":"An array of 2 arrays, the first being an array of keys, the second being an array of values"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to unzip into arrays","name":"obj"}],"syntax":"unzip(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const unzip = require('kyanite/unzip')"},"standard":{"title":"Standard","code":"import unzip from 'kyanite/unzip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"values","desc":"Grabs the values from a key value pair object","examples":["value({ a: 1, b: 2, c: 3 }) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"An array of values from the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to grab our values from","name":"obj"}],"syntax":"values(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const values = require('kyanite/values')"},"standard":{"title":"Standard","code":"import values from 'kyanite/values'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"whole","desc":"Works a lot like every for array, but for the object data type. Returns whether every key matches the predicate or not","examples":["const run = whole({ a: x => x === 'foo', b: x => x !== 'bar', x: x => x > 10, y: x => x < 20 })\r\rrun({ a: 'foo', b: 'xxx', x: 11, y: 19 }) // => true\rrun({ a: 'xxx', b: 'xxx', x: 11, y: 19 }) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"A boolean dependent on whether or not all values passed"}],"params":[{"type":{"names":["Object"]},"description":"An Object schema containing the matching properties and the function to run","name":"schema"},{"type":{"names":["Object"]},"description":"The object to sift through","name":"obj"}],"syntax":"whole(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const whole = require('kyanite/whole')"},"standard":{"title":"Standard","code":"import whole from 'kyanite/whole'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"capitalize","desc":"Capitalizes the first letter of a string","examples":["capitalize('test') // => 'Test'\rcapitalize('small brown cow') // => 'Small brown cow'"],"returns":[{"type":{"names":["String"]},"description":"The capitalized string"}],"params":[{"type":{"names":["String"]},"description":"The string we want to capitalize","name":"str"}],"syntax":"capitalize(str)","usage":{"commonjs":{"title":"CommonJs","code":"const capitalize = require('kyanite/capitalize')"},"standard":{"title":"Standard","code":"import capitalize from 'kyanite/capitalize'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"contains","desc":"Goes through a provided string and attempts to find the provided value within it","examples":["contains('cow', 'small brown cow') // => true\rcontains('cow', 'Small Brown Cow') // => true\r\rconst x = 'cow'\r\rcontains('cow', `small brown ${x}`) // => true\r\r// It's also curried\r\rconst checker = contains('cow')\r\rchecker('small brown cow') // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on if the string is found or not"}],"params":[{"type":{"names":["String"]},"description":"The string we want to search through","name":"str"},{"type":{"names":["String"]},"description":"The string we want to find","name":"a"}],"syntax":"contains(str, a)","usage":{"commonjs":{"title":"CommonJs","code":"const contains = require('kyanite/contains')"},"standard":{"title":"Standard","code":"import contains from 'kyanite/contains'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"fuzzySearch","desc":"Fuzzy search setup to look find things fast and effective","examples":["fuzzySearch('te', 'test') // => true\nfuzzySearch('dog', 'testing') // => false\n\n// search is also curried\n\nconst search = fuzzySearch('te')\nsearch('test') // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean determined by if the value is found or not by the search"}],"params":[{"type":{"names":["String"]},"description":"The Item to search","name":"needle"},{"type":{"names":["String"]},"description":"The value to search for","name":"haystack"}],"syntax":"fuzzySearch(needle, haystack)","usage":{"commonjs":{"title":"CommonJs","code":"const fuzzySearch = require('kyanite/fuzzySearch')"},"standard":{"title":"Standard","code":"import fuzzySearch from 'kyanite/fuzzySearch'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"String","title":"join","desc":"Joins together an array of strings with whatever string was passed in","examples":["join(' ', ['test', 'this', 'thing']) // => 'test this thing'\njoin('aaa', ['test', 'that', 'thing']) // => 'testaaathataaathing'\n\n// It's also curried\nconst j = join(' ')\n\nj(['test', 'this', 'thing]) // => 'test this thing'\nj(['test', 'that', 'thing']) // => 'test that thing'"],"returns":[{"type":{"names":["String"]},"description":"The joined string"}],"params":[{"type":{"names":["String"]},"description":"The string we want to use for the join","name":"str"},{"type":{"names":["Array"]},"description":"The array to join","name":"list"}],"syntax":"join(str, list)","usage":{"commonjs":{"title":"CommonJs","code":"const join = require('kyanite/join')"},"standard":{"title":"Standard","code":"import join from 'kyanite/join'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"String","title":"strip","desc":"Accepts a string value and removes all whitespace from it","examples":["strip('I am squished') // => 'Iamsquished'"],"returns":[{"type":{"names":["String"]},"description":"The stripped string"}],"params":[{"type":{"names":["String"]},"description":"The string to strip down","name":"a"}],"syntax":"strip(a)","usage":{"commonjs":{"title":"CommonJs","code":"const strip = require('kyanite/strip')"},"standard":{"title":"Standard","code":"import strip from 'kyanite/strip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"String","title":"toLower","desc":"Transform a provided string into an lowercase version","examples":["toLower('HI') // => 'hi'\ntoLower('TEST.123.HELLO') // => 'test.123.hello'"],"returns":[{"type":{"names":["String"]},"description":"The string in lower case format"}],"params":[{"type":{"names":["String"]},"description":"The string to lower case","name":"a"}],"syntax":"toLower(a)","usage":{"commonjs":{"title":"CommonJs","code":"const toLower = require('kyanite/toLower')"},"standard":{"title":"Standard","code":"import toLower from 'kyanite/toLower'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"String","title":"toUpper","desc":"Transform a provided string into an uppercase version","examples":["toUpper('hi') // => 'HI'\ntoUpper('test.123.hello') // => 'TEST.123.HELLO'"],"returns":[{"type":{"names":["String"]},"description":"The string in upper case format"}],"params":[{"type":{"names":["String"]},"description":"The string to upper case","name":"a"}],"syntax":"toUpper(a)","usage":{"commonjs":{"title":"CommonJs","code":"const toUpper = require('kyanite/toUpper')"},"standard":{"title":"Standard","code":"import toUpper from 'kyanite/toUpper'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"trim","desc":"Accepts a string value and trims it's white space","examples":["trim('my new cow ') // => 'my new cow'\rtrim(' new things ') // => 'new things'"],"returns":[{"type":{"names":["String"]},"description":"The trimmed string"}],"params":[{"type":{"names":["String"]},"description":"The string to trim","name":"str"}],"syntax":"trim(str)","usage":{"commonjs":{"title":"CommonJs","code":"const trim = require('kyanite/trim')"},"standard":{"title":"Standard","code":"import trim from 'kyanite/trim'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"words","desc":"Takes a string and breaks the words down into an array","examples":["words('my brown cow') // => ['my', 'brown', 'cow']"],"returns":[{"type":{"names":["Array"]},"description":"The words broken down into an array of strings"}],"params":[{"type":{"names":["String"]},"description":"The string we want to break down","name":"str"}],"syntax":"words(str)","usage":{"commonjs":{"title":"CommonJs","code":"const words = require('kyanite/words')"},"standard":{"title":"Standard","code":"import words from 'kyanite/words'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}}]}
\ No newline at end of file
+{"name":"kyanite","version":"0.8.2","description":"A small library of pure functional utilities to make life easier and data better","docs":[{"since":"v0.1.0","deprecated":false,"category":"Array","title":"compact","desc":"Takes an array of items and removes all of the falsy values","examples":["compact([1, '', 0, 2]) // => [1, 2]\rcompact([1, '', false, 2, undefined, 3, null]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"The stripped array"}],"params":[{"type":{"names":["Array"]},"description":"The array to remove falsy values from","name":"arr"}],"syntax":"compact(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const compact = require('kyanite/compact')"},"standard":{"title":"Standard","code":"import compact from 'kyanite/compact'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"concat","desc":"Take an array and concats the values into a new array","examples":["concat([[1, 2], [3, 4], [5, 6]]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A newly created array of the concated values"}],"params":[{"type":{"names":["Array"]},"description":"The array to concat together","name":"arr"}],"syntax":"concat(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const concat = require('kyanite/concat')"},"standard":{"title":"Standard","code":"import concat from 'kyanite/concat'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"concatMap","desc":"Take an array and concats the values into a new array after applying the function","examples":["concatMap(x => [x, x], [1, 2, 3]) // => [1, 1, 2, 2, 3, 3]\n\n// It's also curried\n\nconst con = concatMap(x => [x, x])\n\ncon([1, 2, 3]) // => [1, 1, 2, 2, 3, 3]"],"returns":[{"type":{"names":["Array"]},"description":"A newly created array of the concated values"}],"params":[{"type":{"names":["function"]},"description":"The function to be applied to each value","name":"fn"},{"type":{"names":["Array"]},"description":"The array to concat together","name":"arr"}],"syntax":"concatMap(fn, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const concatMap = require('kyanite/concatMap')"},"standard":{"title":"Standard","code":"import concatMap from 'kyanite/concatMap'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"difference","desc":"Returns an array with the elements present in the first that are not in the second","examples":["difference([1, 2, 3], [1]) // => [2, 3]\r\r// It's also curried\rconst diff = difference([1, 2, 3])\r\rdiff([1]) // => [2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"An array of elements present in the first that are not in the second"}],"params":[{"type":{"names":["Array"]},"description":"The list to search through","name":"first"},{"type":{"names":["Array"]},"description":"The second list to compare against","name":"second"}],"syntax":"difference(first, second)","usage":{"commonjs":{"title":"CommonJs","code":"const difference = require('kyanite/difference')"},"standard":{"title":"Standard","code":"import difference from 'kyanite/difference'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"drop","desc":"Starts at a at desired index and pulls the values from that point until the end","examples":["drop(3, [1, 2, 3, 4, 5]) // => [4, 5]\n\n// It's also curried\n\nconst d = drop(3)\n\nd([1, 2, 3, 4, 5]) // => [4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array with the indicated values removed from the array"}],"params":[{"type":{"names":["Number"]},"description":"The index we want the slice to start at","name":"i"},{"type":{"names":["Array"]},"description":"The array we want to drop from","name":"list"}],"syntax":"drop(i, list)","usage":{"commonjs":{"title":"CommonJs","code":"const drop = require('kyanite/drop')"},"standard":{"title":"Standard","code":"import drop from 'kyanite/drop'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"ensureArray","desc":"Ensures that the value passed in is an array, if not it will make it an array or\rpass back an empty array if the value if undefined/null","examples":["ensureArray(1) // => [1]\rensureArray() // => []\rensureArray(null) // => []\rensureArray('test') // => ['test']"],"returns":[{"type":{"names":["Array"]},"description":"Returns a new array"}],"params":[{"type":{"names":["Any"]},"description":"The value to ensure","name":"x"}],"syntax":"ensureArray(x)","usage":{"commonjs":{"title":"CommonJs","code":"const ensureArray = require('kyanite/ensureArray')"},"standard":{"title":"Standard","code":"import ensureArray from 'kyanite/ensureArray'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"every","desc":"Loops through a provided list verifying that every value evaluates to a truthy value.","examples":["const data = [1, 2, 3, 4]\r\revery(x => x > 0, data) // => true\revery(x => x < 3, data) // => false\r\r// It is also curried\r\rconst run = every(x => x > 0)\r\rrun([1, 2, 3]) // => true\rrun([-1, 0, 1]) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"If all values passed will return true else false"}],"params":[{"type":{"names":["function"]},"description":"The function to send our values to for validation","name":"fn"},{"type":{"names":["Array"]},"description":"The list we are to loop through","name":"x"}],"syntax":"every(fn, x)","usage":{"commonjs":{"title":"CommonJs","code":"const every = require('kyanite/every')"},"standard":{"title":"Standard","code":"import every from 'kyanite/every'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"filter","desc":"Filter through a filterable data piece using the provided function","examples":["const isEven = n => n % 2 === 0\r\rfilter(isEven, [1, 2, 3, 4]) // => [2, 4]\r\r// Is also curried\r\rconst filterer = filter(isEven)\r\rfilterer([1, 2, 3, 4]) // => [2, 4]"],"returns":[{"type":{"names":["Array","Object"]},"description":"Returns a new Array or Object based on the type of list provided"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to run on our values","name":"fn"},{"type":{"names":["Array","Object"]},"description":"The filterable list to go through","name":"list"}],"syntax":"filter(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const filter = require('kyanite/filter')"},"standard":{"title":"Standard","code":"import filter from 'kyanite/filter'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"find","desc":"Find an item based on the function sent in and its list","examples":["find(v => v.val === 'test', [{val: 'test'}]) // => 'test'\rfind(v => v.val === 'none', [{val: 'test'}, {val: 'none'}]) // => { val: 'none' }\rfind(v => v > 2, [1, 2, 3, 4, 5]) // => 3\r\r// find is also curried\r\rconst finder = find(v => v.val === 'test')\r\rfinder([{val: 'test'}]) // => 'test'\rfinder([{val: 'test'}, {val: 'none'}]) // => { val: 'test' }"],"returns":[{"type":{"names":["Any"]},"description":"Returns either the found item, or false if nothing is found"}],"params":[{"type":{"names":["function"]},"description":"The function used/called during the find","name":"fn"},{"type":{"names":["Array"]},"description":"The list we want to search through","name":"list"}],"syntax":"find(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const find = require('kyanite/find')"},"standard":{"title":"Standard","code":"import find from 'kyanite/find'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"findIndex","desc":"Runs through an array of values, until it finds the index of one that passes the function, else returns undefined","examples":["findIndex(x => x > 5, [1, 3, 4, 5, 6]) // => 4\nfindIndex(x => x < 0, [1, 3, 4, 5, 6]) // => undefined\n\n// It's also curried\nconst f = findIndex(x => x > 5)\n\nf([1, 2, 3, 4, 5, 6]) // => 5"],"returns":[{"type":{"names":["Maybe"]},"description":"The index the passing value lives at or undefined if it's not found"}],"params":[{"type":{"names":["function"]},"description":"The function to test our value against","name":"fn"},{"type":{"names":["Array"]},"description":"The array to loop through","name":"list"}],"syntax":"findIndex(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const findIndex = require('kyanite/findIndex')"},"standard":{"title":"Standard","code":"import findIndex from 'kyanite/findIndex'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"first","desc":"Grabs the first index of a passed array or string","examples":["const arr = first([1, 3]) // => 1\rconst str = first('abc') // => 'a'"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever was the first piece of our array"}],"params":[{"type":{"names":["Array","String"]},"description":"The list or string we want to use","name":"x"}],"syntax":"first(x)","usage":{"commonjs":{"title":"CommonJs","code":"const first = require('kyanite/first')"},"standard":{"title":"Standard","code":"import first from 'kyanite/first'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Array","title":"groupBy","desc":"Groups values of an array based on the function passed in","examples":["groupBy(Math.floor, [4.2, 6.1, 6.4]) // => { '4': [4.2], '6': [6.1, 6.4] }\n\n// It's also curried\n\nconst g = groupBy(Math.floor)\n\ng([4.2, 6.1, 6.4]) // => { '4': [4.2], '6': [6.1, 6.4] }"],"returns":[{"type":{"names":["Object"]},"description":"An object with the grouped values"}],"params":[{"type":{"names":["function"]},"description":"The function to run our values through","name":"fn"},{"type":{"names":["Array"]},"description":"The array to go through","name":"list"}],"syntax":"groupBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const groupBy = require('kyanite/groupBy')"},"standard":{"title":"Standard","code":"import groupBy from 'kyanite/groupBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"includes","desc":"Checks to see if the provided list contains at at least 1 of the provided value within it","examples":["includes(3, [1, 2, 3]) // => true\r\r// It is also curried\r\rconst checker = includes(3)\r\rchecker([1, 2, 3]) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"A Boolean based on if the value is found or not"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to search the list for","name":"a"},{"type":{"names":["Array"]},"description":"The list we want to search through","name":"list"}],"syntax":"includes(a, list)","usage":{"commonjs":{"title":"CommonJs","code":"const includes = require('kyanite/includes')"},"standard":{"title":"Standard","code":"import includes from 'kyanite/includes'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"insert","desc":"Insert an item in a certain index of an array","examples":["insert(2, 'x', [1, 2, 3, 4]) // => [1, 2, 'x', 3, 4]\r\r// It's also curried\r\rconst ins = insert(2)\r\rins('x', [1, 2, 3, 4]) // => [1, 2, 'x', 3, 4]"],"returns":[{"type":{"names":["Array"]},"description":"A new array with the inserted data"}],"params":[{"type":{"names":["Number"]},"description":"The index number to remove from","name":"i"},{"type":{"names":["Any"]},"description":"The data we are going to be inserting","name":"d"},{"type":{"names":["Array"]},"description":"The array to insert into","name":"arr"}],"syntax":"insert(i, d, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const insert = require('kyanite/insert')"},"standard":{"title":"Standard","code":"import insert from 'kyanite/insert'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"intersection","desc":"Returns an array containing elements present in both arrays","examples":["intersection([1, 2, 3, 4], [3, 4, 5, 6]) // => [3, 4]\r\r// It's also curried\r\rconst inter = intersection([1, 2, 3, 4])\r\rinter([3, 4, 5, 6]) // => [3, 4]"],"returns":[{"type":{"names":["Array"]},"description":"A new array containing values that both arrays had"}],"params":[{"type":{"names":["Array"]},"description":"Our first array value to compare with","name":"a"},{"type":{"names":["Array"]},"description":"Our second array value to compare with","name":"b"}],"syntax":"intersection(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const intersection = require('kyanite/intersection')"},"standard":{"title":"Standard","code":"import intersection from 'kyanite/intersection'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"last","desc":"Grabs the last index of an array","examples":["const arr = last([1, 3]) // => 3\rconst str = last('abc') // => 'c'"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever was the last piece of our array"}],"params":[{"type":{"names":["Array","String"]},"description":"The list or string we want to use","name":"x"}],"syntax":"last(x)","usage":{"commonjs":{"title":"CommonJs","code":"const last = require('kyanite/last')"},"standard":{"title":"Standard","code":"import last from 'kyanite/last'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"length","desc":"Obtains the length of the passed array","examples":["length([1, 2, 3, 4]) // => 4\rlength([]) // => 0"],"returns":[{"type":{"names":["Number"]},"description":"The length of the array"}],"params":[{"type":{"names":["Array"]},"description":"The array to find the length of","name":"a"}],"syntax":"length(a)","usage":{"commonjs":{"title":"CommonJs","code":"const length = require('kyanite/length')"},"standard":{"title":"Standard","code":"import length from 'kyanite/length'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"map","desc":"Takes a function and applies it to all of the values within the provided list,\rand brings back a new list of the same type.","examples":["const dbl = n => n * 2\r\rmap(dbl, [1, 2, 3]) // => [2, 4, 6]\r\r// It's also curried\r\rconst dbler = map(dbl)\r\rdbler([1, 2, 3]) // => [2, 4, 6]"],"returns":[{"type":{"names":["Array","Object"]},"description":"The new Array or Object that was created"}],"params":[{"type":{"names":["function"]},"description":"The function to run against the values in our functor","name":"fn"},{"type":{"names":["Array","Object"]},"description":"The list to iterate through","name":"list"}],"syntax":"map(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const map = require('kyanite/map')"},"standard":{"title":"Standard","code":"import map from 'kyanite/map'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"max","desc":"Goes through an array of values and grabs the last value of the array when it's been sorted","examples":["max([1, 3, 2, 5, 4]) // => 5\rmax(['c', 'a', 'b', 'f']) // => 'f'"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the max"}],"params":[{"type":{"names":["Array"]},"description":"The Array search through","name":"list"}],"syntax":"max(list)","usage":{"commonjs":{"title":"CommonJs","code":"const max = require('kyanite/max')"},"standard":{"title":"Standard","code":"import max from 'kyanite/max'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"maxBy","desc":"Finds the max of an array by applying the provided function to the values provided and reducing it down","examples":["maxBy(x => x.size, [{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 6 }\nmaxBy(x => x.alpha, [{ alpha: 'b' }, { alpha: 'c' }, { alpha: 'a' }]) // => { alpha: 'c' }\n\n// It's also curried\n\nconst m = maxBy(x => x.size)\n\nm([{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 6 }"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the max"}],"params":[{"type":{"names":["function"]},"description":"The function to apply to each value of the array","name":"fn"},{"type":{"names":["Array"]},"description":"The Array to search through","name":"list"}],"syntax":"maxBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const maxBy = require('kyanite/maxBy')"},"standard":{"title":"Standard","code":"import maxBy from 'kyanite/maxBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"mean","desc":"Get the mean of a set of numbers","examples":["mean([1, 2, 3, 2]) // => 2\rmean([]) // => NaN\rmean() // => NaN"],"returns":[{"type":{"names":["Number"]},"description":"Returns the mean avg of the numbers"}],"params":[{"type":{"names":["Array"]},"description":"An amount of numbers to get the mean from","name":"x"}],"syntax":"mean(x)","usage":{"commonjs":{"title":"CommonJs","code":"const mean = require('kyanite/mean')"},"standard":{"title":"Standard","code":"import mean from 'kyanite/mean'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"min","desc":"Goes through an array of values and grabs the first value of the array when it's been sorted","examples":["min([1, 3, 2, 5, 4]) // => 1\rmin(['c', 'a', 'b', 'f']) // => 'a'"],"returns":[{"type":{"names":["Any"]},"description":"Returns the item at the start of an array based on what's passed in"}],"params":[{"type":{"names":["Array"]},"description":"The Array to sort and grab from","name":"list"}],"syntax":"min(list)","usage":{"commonjs":{"title":"CommonJs","code":"const min = require('kyanite/min')"},"standard":{"title":"Standard","code":"import min from 'kyanite/min'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"minBy","desc":"Finds the min of an array by applying the provided function to the values provided and reducing it down","examples":["minBy(x => x.size, [{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 2 }\nminBy(x => x.alpha, [{ alpha: 'b' }, { alpha: 'c' }, { alpha: 'a' }]) // => { alpha: 'a' }\n\n// It's also curried\n\nconst m = minBy(x => x.size)\n\nm([{ size: 4 }, { size: 2 }, { size: 6 }, { size: 3 }]) // => { size: 2 }"],"returns":[{"type":{"names":["Any"]},"description":"The item that was deemed to be the min"}],"params":[{"type":{"names":["function"]},"description":"The function to apply to each value of the array","name":"fn"},{"type":{"names":["Array"]},"description":"The Array to search through","name":"list"}],"syntax":"minBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const minBy = require('kyanite/minBy')"},"standard":{"title":"Standard","code":"import minBy from 'kyanite/minBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"nth","desc":"Returns the nth element of the given list or string.","examples":["nth(3, [1, 2, 3, 4, 5, 6, 7]) // => 4\r\r// nth is curried\r\rconst third = nth(2)\r\rthird([1, 2, 3, 4, 5]) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"Returns the value of the found index"}],"params":[{"type":{"names":["Number"]},"description":"How much to offset the value","name":"o"},{"type":{"names":["Array"]},"description":"The Array or list to crawl through","name":"x"}],"syntax":"nth(o, x)","usage":{"commonjs":{"title":"CommonJs","code":"const nth = require('kyanite/nth')"},"standard":{"title":"Standard","code":"import nth from 'kyanite/nth'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"partition","desc":"Takes a predicate function and a list or filterable data object and returns the pair.\rOne contains the data which passed the predicate function, the other the values that did not.","examples":["partition(is(String), ['foo', 'bar', 100]) // => [ ['foo', 'bar'], [100] ]\r\r// Is curried as well\r\rconst part = partition(is(String))\r\rpart(['foo', 'bar', 100]) // => [ ['foo', 'bar'], [100] ]"],"returns":[{"type":{"names":["Array"]},"description":"An array containing the first set of elements that passed the predicate function,\rAnd a second that did not"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to determine which side an element belongs to","name":"fn"},{"type":{"names":["Array"]},"description":"The list or other filterable to partition through","name":"list"}],"syntax":"partition(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const partition = require('kyanite/partition')"},"standard":{"title":"Standard","code":"import partition from 'kyanite/partition'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"prepend","desc":"Returns a new list with the provided value at the front of the given list","examples":["prepend('testing', ['is', 'cool']) // => ['testing', 'is', 'cool']\n\n// It's curried\n\nconst pender = prepend('testing')\n\npender(['is', 'cool']) // => ['testing', 'is', 'cool']"],"returns":[{"type":{"names":["Array"]},"description":"A new array"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to put at the front of our list","name":"x"},{"type":{"names":["Array"]},"description":"The Array or list to prepend to","name":"list"}],"syntax":"prepend(x, list)","usage":{"commonjs":{"title":"CommonJs","code":"const prepend = require('kyanite/prepend')"},"standard":{"title":"Standard","code":"import prepend from 'kyanite/prepend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reduce","desc":"Accepts an array and runs a reduce based on the passed values","examples":["reduce((acc, n) => acc + n, 0, [1, 2, 3, 4, 5]) // => 15\rreduce((acc, n) => {\r\n if (typeof n === 'number') {\r\n acc.push(n)\r\n }\r\n\r\n return acc\r\n }, [], ['', 1, 2, '0', 3]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the original init parameter that is passed in"}],"params":[{"type":{"names":["function"]},"description":"The function to run with the reduce","name":"fn"},{"type":{"names":["Any"]},"description":"The empty initial state of the reduce accumulator","name":"init"},{"type":{"names":["Array"]},"description":"The list to run our reduce against","name":"list"}],"syntax":"reduce(fn, init, list)","usage":{"commonjs":{"title":"CommonJs","code":"const reduce = require('kyanite/reduce')"},"standard":{"title":"Standard","code":"import reduce from 'kyanite/reduce'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reject","desc":"Filter through a filterable data piece using the provided function returns only those that fail the function test","examples":["const isEven = n => n % 2 === 0\r\rreject(isEven, [1, 2, 3, 4]) // => [1, 3]\r\r// Is also curried\r\rconst rejecter = reject(isEven)\r\rrejecter([1, 2, 3, 4]) // => [1, 3]"],"returns":[{"type":{"names":["Array"]},"description":"Returns a new Array or Object based on the type of list provided"}],"params":[{"type":{"names":["function"]},"description":"The predicate function to run on our values","name":"fn"},{"type":{"names":["Array"]},"description":"The filterable list to go through","name":"list"}],"syntax":"reject(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const reject = require('kyanite/reject')"},"standard":{"title":"Standard","code":"import reject from 'kyanite/reject'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"remove","desc":"Remove an item from a certain point in the index","examples":["const test = remove(2, [1, 2, 3, 4]) // => [1, 2, 4]\r\r// This is also a curried method\r\rconst remover = remove(2)\rconst test = remover([1, 2, 3, 4]) // => [1, 2, 4]"],"returns":[{"type":{"names":["Array"]},"description":"returns the modified array back"}],"params":[{"type":{"names":["Number"]},"description":"The index number to remove from","name":"i"},{"type":{"names":["Array"]},"description":"The array in question","name":"x"}],"syntax":"remove(i, x)","usage":{"commonjs":{"title":"CommonJs","code":"const remove = require('kyanite/remove')"},"standard":{"title":"Standard","code":"import remove from 'kyanite/remove'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"reverse","desc":"Accepts an array and returns a brand new reversed array","examples":["reverse([1, 2, 3]) // => [3, 2, 1]\rreverse([]) // => []"],"returns":[{"type":{"names":["Array"]},"description":"A new reversed array"}],"params":[{"type":{"names":["Array"]},"description":"The array to reverse","name":"arr"}],"syntax":"reverse(arr)","usage":{"commonjs":{"title":"CommonJs","code":"const reverse = require('kyanite/reverse')"},"standard":{"title":"Standard","code":"import reverse from 'kyanite/reverse'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"slice","desc":"Returns a subset of an array based on the provided indexes","examples":["slice(1, 3, [1, 2, 3, 4, 5]) // => [2, 3]\n\n// It is curried\n\nconst slicer = slice(1, 3)\n\nslicer([1, 2, 3, 4, 5]) // => [2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"The newly created subset Array"}],"params":[{"type":{"names":["Number"]},"description":"The index at which to begin extraction","name":"a"},{"type":{"names":["Number"]},"description":"The index for what the extraction goes to. However does not extract","name":"b"}],"syntax":"slice(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const slice = require('kyanite/slice')"},"standard":{"title":"Standard","code":"import slice from 'kyanite/slice'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"some","desc":"Loops through a provided list verifying that at least some values evaluates to a truthy value.","examples":["const data = [1, 2, 3, 4]\r\rsome(x => x > 0, data) // => true\rsome(x => x < 3) // => true\rsome(x => x < 0, data) // => false\r\r// It is also curried\r\rconst run = some(x => x > 0)\r\rrun([1, 2, 3]) // => true\rrun([-1, 0, 1]) // => true\rrun([-3, -2, -1]) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"If any values passed will return true else false"}],"params":[{"type":{"names":["function"]},"description":"The function to send our values to for validation","name":"fn"},{"type":{"names":["Array"]},"description":"The list we are to loop through","name":"x"}],"syntax":"some(fn, x)","usage":{"commonjs":{"title":"CommonJs","code":"const some = require('kyanite/some')"},"standard":{"title":"Standard","code":"import some from 'kyanite/some'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"sort","desc":"Uses a comparison function to sort an array","examples":["sort((a, b) => a - b, [99, 23, 10, 53, 1]) // => [1, 10, 23, 53, 99]\r\r// It's also curried\r\rconst sorter = sort((a, b) => a - b)\r\rsorter([99, 23, 10, 53, 1]) // => [1, 10, 23, 53, 99]\rsorter([5, 3, 4, 6, 2, 1]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A new sorted array"}],"params":[{"type":{"names":["function"]},"description":"The function used to sort the array","name":"fn"},{"type":{"names":["Array"]},"description":"The array to be sorted","name":"a"}],"syntax":"sort(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const sort = require('kyanite/sort')"},"standard":{"title":"Standard","code":"import sort from 'kyanite/sort'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Array","title":"sortBy","desc":"Sorts through an array of values using the provided function on each value","examples":["sortBy(x => x.name, [\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n]) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]\n\n// It's also curried\n\nconst sb = sortBy(x => x.name)\n\nsb([\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n]) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]"],"returns":[{"type":{"names":["Array"]},"description":"A newly sorted array"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Array"]},"description":"The array to run through","name":"list"}],"syntax":"sortBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const sortBy = require('kyanite/sortBy')"},"standard":{"title":"Standard","code":"import sortBy from 'kyanite/sortBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"sortWith","desc":"Sorts an array based on the functions passed it, will go through the functions in order\nand use ties to the next function in order to break ties","examples":["const data = [{name: 'alice', age: 40}, {name: 'bob', age: 30}, {name: 'clara', age: 40}]\nsortWith([\n descendBy(x => x.age),\n ascendBy(x => x.name)\n], data) // => [{name: 'alice', age: 40}, {name: 'clara', age: 40}, {name: 'bob', age: 30}]\n\n// It's also curried\n\nconst ageNameSort = sortWith([\n descendBy(x => x.age),\n ascendBy(x => x.name)\n])\n\nageNameSort(data) // =>[{name: 'alice', age: 40}, {name: 'clara', age: 40}, {name: 'bob', age: 30}]"],"returns":[{"type":{"names":["Array"]},"description":"A new and sorted array"}],"params":[{"type":{"names":["Array"]},"description":"An array of functions to sort with","name":"fns"},{"type":{"names":["Array"]},"description":"The array to be sorted","name":"arr"}],"syntax":"sortWith(fns, arr)","usage":{"commonjs":{"title":"CommonJs","code":"const sortWith = require('kyanite/sortWith')"},"standard":{"title":"Standard","code":"import sortWith from 'kyanite/sortWith'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Array","title":"take","desc":"Takes the values from an array up until the point specified, then brings those values back","examples":["take(3, [1, 2, 3, 4, 5]) // => [1, 2, 3]\n\n// It's also curried\n\nconst t = take(3)\n\nt([1, 2, 3, 4, 5]) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of the values taken"}],"params":[{"type":{"names":["Number"]},"description":"The index we want our take to start at","name":"i"},{"type":{"names":["Array"]},"description":"The array we are taking from","name":"list"}],"syntax":"take(i, list)","usage":{"commonjs":{"title":"CommonJs","code":"const take = require('kyanite/take')"},"standard":{"title":"Standard","code":"import take from 'kyanite/take'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"union","desc":"Creates a union between two arrays, removing duplicates from each","examples":["union([1, 2, 3], [3, 4, 5]) // => [1, 2, 3, 4, 5]\runion([1, 2, 3], [[3, 4, 5], [4, 5, 6]]) // => [1, 2, 3, 4, 5, 6]\r\r// It's also curried\r\rconst un = union([1, 2, 3])\r\run([3, 4, 5]) // => [1, 2, 3, 4, 5]\run([[3, 4, 5], [4, 5, 6]]) // => [1, 2, 3, 4, 5, 6]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of unique values from each of the passed in arrays"}],"params":[{"type":{"names":["Array"]},"description":"An array to put through combining","name":"a"},{"type":{"names":["Array"]},"description":"The rest of the arrays","name":"rest"}],"syntax":"union(a, rest)","usage":{"commonjs":{"title":"CommonJs","code":"const union = require('kyanite/union')"},"standard":{"title":"Standard","code":"import union from 'kyanite/union'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"uniq","desc":"Returns an array of unique values from the applied function","examples":["uniq([1, 2, 2, 3, 3, 4, 5]) // => [1, 2, 3, 4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array of uniq values from the provided function"}],"params":[{"type":{"names":["Array"]},"description":"The list to sift through","name":"list"}],"syntax":"uniq(list)","usage":{"commonjs":{"title":"CommonJs","code":"const uniq = require('kyanite/uniq')"},"standard":{"title":"Standard","code":"import uniq from 'kyanite/uniq'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"uniqBy","desc":"Returns an array of unique values from the applied function","examples":["uniqBy(x => x > 2, [1, 2, 3, 4, 5]) // => [3, 4, 5]\r\r// It is also curried\r\rconst uq = uniqBy(x => x > 2)\r\ruq([1, 2, 3, 4, 5]) // => [3, 4, 5]"],"returns":[{"type":{"names":["Array"]},"description":"An array of unique values from the provided function"}],"params":[{"type":{"names":["function"]},"description":"The function to apply","name":"fn"},{"type":{"names":["Array"]},"description":"The list to sift through","name":"list"}],"syntax":"uniqBy(fn, list)","usage":{"commonjs":{"title":"CommonJs","code":"const uniqBy = require('kyanite/uniqBy')"},"standard":{"title":"Standard","code":"import uniqBy from 'kyanite/uniqBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Array","title":"update","desc":"Add an item to an array within a certain index of the array","examples":["update(2, 10, [1, 2, 3]) // => [1, 2, 10]\r\r// You can also use it as a curried method\r\rconst updater = update(2, 10)\r\rupdater([1, 2, 3]) // => [1, 2, 10]\r\r// This can be taken further like so\r\rconst index = update(2)\rconst val = index(10)\rval([1, 2, 3]) // => [1, 2, 10]"],"returns":[{"type":{"names":["Array"]},"description":"Returns the modified array"}],"params":[{"type":{"names":["Number"]},"description":"The index number to add at","name":"index"},{"type":{"names":["Any"]},"description":"What we want to add to our array","name":"val"},{"type":{"names":["Array"]},"description":"The array in question","name":"list"}],"syntax":"update(index, val, list)","usage":{"commonjs":{"title":"CommonJs","code":"const update = require('kyanite/update')"},"standard":{"title":"Standard","code":"import update from 'kyanite/update'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Array","title":"zip","desc":"Takes two arrays and combines them into a key value pair object","examples":["zip(['a', 'b', 'c'], [1, 2, 3]) // => { a: 1, b: 2, c: 3 }\nzip(['a', 'b', 'c'], [1, 2, 3, 4]) // => { a: 1, b: 2, c: 3 }\nzip(['a', 'b', 'c'], [1, 2]) // => { a: 1, b: 2 }\n\n// It's also curried\n\nconst z = zip(['a', 'b', 'c'])\n\nz([1, 2, 3]) // => { a: 1, b: 2, c: 3 }\nz([1, 2, 3, 4]) // => { a: 1, b: 2, c: 3 }\nz([1, 2]) // => { a: 1, b: 2 }"],"returns":[{"type":{"names":["Object"]},"description":"The combined arrays key value pair"}],"params":[{"type":{"names":["Array"]},"description":"The array that will act as keys","name":"x"},{"type":{"names":["Array"]},"description":"The array that will act as values","name":"y"}],"syntax":"zip(x, y)","usage":{"commonjs":{"title":"CommonJs","code":"const zip = require('kyanite/zip')"},"standard":{"title":"Standard","code":"import zip from 'kyanite/zip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"and","desc":"Runs an and comparison on the two values passed in","examples":["and(true, true) // => true\nand(true, false) // => false\nand(false, false) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"The evaluated outcome of the parameters"}],"params":[{"type":{"names":["Boolean"]},"description":"The first boolean to compare","name":"a"},{"type":{"names":["Boolean"]},"description":"The second boolean to compare","name":"b"}],"syntax":"and(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const and = require('kyanite/and')"},"standard":{"title":"Standard","code":"import and from 'kyanite/and'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"ap","desc":"Takes an array of functions to be applied to an array of data, concating the results together","examples":["ap([x => x + 1, x => x * 2], [1, 2, 3]) // => [2, 3, 4, 2, 4, 6]\n\n// It's also curried\n\nconst a = ap([x => x + 1, x => x * 2])\n\na([1, 2, 3]) // => [2, 3, 4, 2, 4, 6]\na([3, 4, 5]) // => [4, 5, 6, 6, 8, 10]"],"returns":[{"type":{"names":["Array"]},"description":"A new array of data modified by the functions concated together"}],"params":[{"type":{"names":["Array"]},"description":"The list of functions to apply","name":"fns"},{"type":{"names":["Array"]},"description":"The array of data to run the functions on","name":"list"}],"syntax":"ap(fns, list)","usage":{"commonjs":{"title":"CommonJs","code":"const ap = require('kyanite/ap')"},"standard":{"title":"Standard","code":"import ap from 'kyanite/ap'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"ascend","desc":"Determiens which of the two passed in values should be ascended","examples":["[4, 10, 1, 6, 7, 12].sort(ascend) // => [1, 4, 6, 7, 10, 12]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on which value should ascend"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"ascend(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const ascend = require('kyanite/ascend')"},"standard":{"title":"Standard","code":"import ascend from 'kyanite/ascend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Function","title":"ascendBy","desc":"Can be used with sort to ascend an array based on the function passed in","examples":["[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(ascendBy(x => x.name)) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]\n\n// It's also curried\n\nconst desc = ascendBy(x => x.name)\n\n[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(desc) // => [{ name: 'amanda' }, { name: 'amanda' }, { name: 'bob' }, { name: 'carl' }]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on where it falls when compared with the other value"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"ascendBy(fn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const ascendBy = require('kyanite/ascendBy')"},"standard":{"title":"Standard","code":"import ascendBy from 'kyanite/ascendBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"both","desc":"Validates that the same value passed into two different functions returns truthy for both","examples":["both(x => x > 10, x => x < 20, 15) // => true\n\n// It's also curried\n\nconst b = both(x => x > 10, x => x < 20)\n\nb(15) // => true\nb(9) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on if both functions return a truthy value when ran"}],"params":[{"type":{"names":["function"]},"description":"The first function to test the value in","name":"f"},{"type":{"names":["function"]},"description":"The second function to test the value in","name":"g"},{"type":{"names":["Any"]},"description":"The value to run in the previous two functions","name":"a"}],"syntax":"both(f, g, a)","usage":{"commonjs":{"title":"CommonJs","code":"const both = require('kyanite/both')"},"standard":{"title":"Standard","code":"import both from 'kyanite/both'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"branch","desc":"Takes 3 functions and a value, and will run either the 2nd or 3rd function based on if the first passes","examples":["branch(\n x => x < 10,\n x => x + 1,\n x => x - 1,\n 0\n) // => 1\n\n// It's also curried\nconst b = branch(\n x => x < 10,\n x => x + 1,\n x => x - 1\n)\n\nb(0) // => 1\nb(12) // => 11"],"returns":[{"type":{"names":["Any"]},"description":"The result of the branch function used"}],"params":[{"type":{"names":["function"]},"description":"The first function to determine the path of our branch","name":"p"},{"type":{"names":["function"]},"description":"The function to run if the first passes","name":"f"},{"type":{"names":["function"]},"description":"The function to run if the first fails","name":"g"},{"type":{"names":["Any"]},"description":"The data to pass long our functions","name":"a"}],"syntax":"branch(p, f, g, a)","usage":{"commonjs":{"title":"CommonJs","code":"const branch = require('kyanite/branch')"},"standard":{"title":"Standard","code":"import branch from 'kyanite/branch'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"complement","desc":"Takes a function and returns a new function that when called returns the opposite truthy/falsy value of\rwhat was passed in.","examples":["const isNot = complement(is(String))\r\risNot(1) // => true\risNot('test') // => false"],"returns":[{"type":{"names":["function"]},"description":"Returns the opposite function back"}],"params":[{"type":{"names":["function"]},"description":"The function we want to apply the complement of","name":"fn"},{"type":{"names":["Any"]},"description":"The value our functionality is being ran against","name":"a"}],"syntax":"complement(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const complement = require('kyanite/complement')"},"standard":{"title":"Standard","code":"import complement from 'kyanite/complement'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"curry","desc":"Create a curried function","examples":["const add = curry((a, b) => a + b)\r\radd(1)(2) // => 3\radd(1, 2) // => 3\r\rconst add1 = add(1)\r\radd1(2) // => 3"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the function sent in"}],"params":[{"type":{"names":["function"]},"description":"The function we will be running","name":"f"},{"type":{"names":["Any"]},"description":"extra args to apply if needed","name":"args"}],"syntax":"curry(f, args)","usage":{"commonjs":{"title":"CommonJs","code":"const curry = require('kyanite/curry')"},"standard":{"title":"Standard","code":"import curry from 'kyanite/curry'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"Unknown","deprecated":false,"category":"Function","title":"curryN","desc":"Acts like curry but this one expects you to tell it how many arguments to expect\rthis allows it to work well with rest parameters and default params.","examples":["const add = curryN(2, (a, b) => a + b)\r\radd(1)(2) // => 3\radd(1, 2) // => 3\r\rconst sum = add(1)\r\rsum(2) // => 3\rsum(4) // => 5\r\rconst add2 = curryN(2, (a, b = 1) => a + b)\rconst sum1 = add(1)\r\rsum1(4) // => 5\rsum1(undefined) // => 2"],"returns":[{"type":{"names":["Any"]},"description":"Returns based on the results of the function passed in"}],"params":[{"type":{"names":["Number"]},"description":"The number of arguments the function is expecting","name":"n"},{"type":{"names":["function"]},"description":"The function we are going to be running with said arguments","name":"f"},{"type":{"names":["Any"]},"description":"The arguments to apply to said function curry wont execute until this length matches n","name":"args"}],"syntax":"curryN(n, f, args)","usage":{"commonjs":{"title":"CommonJs","code":"const curryN = require('kyanite/curryN')"},"standard":{"title":"Standard","code":"import curryN from 'kyanite/curryN'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":"Since v0.8.0 -- Use clone","category":"Function","title":"deepClone","desc":"Clones the object sent in (Hard Clone)","examples":["const data = { test: 1 }\rconst cloned = deepClone(data) // => { test: 1 }\r\rcloned.test = 2\r\rconsole.log(data) // => { test: 1 }\rconsole.log(cloned) // => { test: 2 }"],"returns":[{"type":{"names":["Any"]},"description":"The newly cloned value"}],"params":[{"type":{"names":["Any"]},"description":"The value we want to get cloned","name":"x"}],"syntax":"deepClone(x)","usage":{"commonjs":{"title":"CommonJs","code":"const deepClone = require('kyanite/deepClone')"},"standard":{"title":"Standard","code":"import deepClone from 'kyanite/deepClone'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.0","deprecated":false,"category":"Function","title":"descend","desc":"Determiens which of the two passed in values should be descended","examples":["[4, 10, 1, 6, 7, 12].sort(descend) // => [12, 10, 7, 6, 4, 1]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on which value should descend"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"descend(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const descend = require('kyanite/descend')"},"standard":{"title":"Standard","code":"import descend from 'kyanite/descend'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"Function","title":"descendBy","desc":"Can be used with sort to descend an array based on the function passed in","examples":["[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(descendBy(x => x.name)) // => [{ name: 'carl' }, { name: 'bob' }, { name: 'amanda' }, { name: 'amanda' }]\n\n// It's also curried\n\nconst desc = descendBy(x => x.name)\n\n[\n { name: 'bob' },\n { name: 'amanda' },\n { name: 'carl' },\n { name: 'amanda' }\n].sort(desc) // => [{ name: 'carl' }, { name: 'bob' }, { name: 'amanda' }, { name: 'amanda' }]"],"returns":[{"type":{"names":["Number"]},"description":"A number based on where it falls when compared with the other value"}],"params":[{"type":{"names":["function"]},"description":"The function to use on values within our array","name":"fn"},{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"descendBy(fn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const descendBy = require('kyanite/descendBy')"},"standard":{"title":"Standard","code":"import descendBy from 'kyanite/descendBy'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"empty","desc":"Empties out the items of the sent value","examples":["empty({ test: 1 }) // => {}\rempty([1, 2, 3]) // => []\rempty('test') // => ''"],"returns":[{"type":{"names":["*"]},"description":"Returns the empty item"}],"params":[{"type":{"names":["*"]},"description":"The item to empty","name":"x"}],"syntax":"empty(x)","usage":{"commonjs":{"title":"CommonJs","code":"const empty = require('kyanite/empty')"},"standard":{"title":"Standard","code":"import empty from 'kyanite/empty'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.2","deprecated":false,"category":"Function","title":"encase","desc":"Encase the provided function in a try catch which if the function errors will give back an undefined","examples":["encase(x => x.a.b.c, {a: 0}) // => undefined\nencase(x => x.a.b.c, {a: {b: {c: 0}}}) // => 0\n\n// It's also curried\nconst getter = x => x.a.b.c\nconst en = encase(getter)\n\nen({a: 0}) // => undefined\nen(a: {b: {c: 0}}}) // => 0"],"returns":[{"type":{"names":["Any"]},"description":"The return of the provided function"}],"params":[{"type":{"names":["function"]},"description":"The function to encase before running","name":"fn"},{"type":{"names":["Any"]},"description":"The value we want to pass into the given function","name":"a"}],"syntax":"encase(fn, a)","usage":{"commonjs":{"title":"CommonJs","code":"const encase = require('kyanite/encase')"},"standard":{"title":"Standard","code":"import encase from 'kyanite/encase'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"gt","desc":"Checks if a value is greater than the other","examples":["gt(2, 1) // => true\ngt('b', 'a') // => true\n\n// It's also curried\n\nconst g = gt(2)\n\ng(1) // => true\ng(2) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than the other","name":"b"}],"syntax":"gt(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gt = require('kyanite/gt')"},"standard":{"title":"Standard","code":"import gt from 'kyanite/gt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"gte","desc":"Checks if a value is greater than or equal to the other","examples":["gte(2, 1) // => true\ngte(1, 1) // => true\ngte('b', 'a') // => true\n\n// It's also curried\n\nconst g = gte(2)\n\ng(1) // => true\ng(2) // => true\ng(3) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than or equal to the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than or equal to the other","name":"b"}],"syntax":"gte(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gte = require('kyanite/gte')"},"standard":{"title":"Standard","code":"import gte from 'kyanite/gte'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"identical","desc":"Performs a check to see if the items are identical in the sense that they reference the same memory","examples":["identical(NaN, NaN) // => true\ridentical([1], [1]) // => false\r\rconst o = {}\r\ridentical({}, {}) // => false\ridentical(o, o) // => true\r\r// Identical is also curried\r\rconst test = identical(NaN)\rtest(NaN) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean based on the check"}],"params":[{"type":{"names":["Any"]},"description":"The first value to compare","name":"a"},{"type":{"names":["Any"]},"description":"The second value to compare","name":"b"}],"syntax":"identical(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const identical = require('kyanite/identical')"},"standard":{"title":"Standard","code":"import identical from 'kyanite/identical'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"identity","desc":"A function that returns the value passed to it","examples":["identity(10) // => 10\r\rconst test = identity(10)\r\rconsole.log(typeof test.constructor) // => 'function'\rconsole.log(10.constructor) // => error\r\rfilter(identity, [0, 'cool', null, 1]) // => ['cool', 1]"],"returns":[{"type":{"names":["Any"]},"description":"The value"}],"params":[{"type":{"names":["Any"]},"description":"The value to return","name":"a"}],"syntax":"identity(a)","usage":{"commonjs":{"title":"CommonJs","code":"const identity = require('kyanite/identity')"},"standard":{"title":"Standard","code":"import identity from 'kyanite/identity'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"is","desc":"See if an object is an instance of the supplied constructor, this will also check up the inheritence chain","examples":["is(Object, {}) // => true\nis(Array, []) // => true\nis(String, '') // => true\nis(Number, 0) // => true\nis(Boolean, true) // => true\nis(Function, a => a) // => true\nis(RegExp, /[0-9]/g) // => true\n\n// It is curried as well\n\nconst isObject = is(Object)\n\nisObject({}) // => true\n\n// Since almost everything in JS can also be related to an object you will get:\nconst isObj = is(Object)\n\nisObj({}) // => true\nisObj([]) // => true\nisObj(function () { }) // => true\nisObj(new Boolean(true)) // => true\nisObj(new Number(0)) // => true\nisObj(/(?:)/) // => true\nisObj(1) // => false\nisObj('') // => false\nisObj(false) // => false"],"returns":[{"type":{"names":["Boolean"]}}],"params":[{"type":{"names":["Object"]},"description":"A Constructor","name":"Ctor"},{"type":{"names":["*"]},"description":"The value to test","name":"x"}],"syntax":"is(Ctor, x)","usage":{"commonjs":{"title":"CommonJs","code":"const is = require('kyanite/is')"},"standard":{"title":"Standard","code":"import is from 'kyanite/is'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isEmpty","desc":"Determines if the entered value is empty or not","examples":["isEmpty([]) // => true\risEmpty({}) // => true\risEmpty('') // => true\risEmpty(NaN) // => true\risEmpty(null) // => true\risEmpty(undefined) // => true\risEmpty(true) // => true\risEmpty(false) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns the boolean after running our check"}],"params":[{"type":{"names":["Any"]},"description":"Value to check against","name":"x"}],"syntax":"isEmpty(x)","usage":{"commonjs":{"title":"CommonJs","code":"const isEmpty = require('kyanite/isEmpty')"},"standard":{"title":"Standard","code":"import isEmpty from 'kyanite/isEmpty'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isEqual","desc":"Takes and compares two items. Capable of handling cyclical data structures","examples":["const obj = isEqual({}, {}) // => true\rconst arr = isEqual([], []) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns the boolean after running our comparison check"}],"params":[{"type":{"names":["Any"]},"description":"First item to compare","name":"a"},{"type":{"names":["Any"]},"description":"Second item to compare","name":"b"}],"syntax":"isEqual(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const isEqual = require('kyanite/isEqual')"},"standard":{"title":"Standard","code":"import isEqual from 'kyanite/isEqual'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"isNil","desc":"Checks if the value is a null value","examples":["isNill(null) // => true\risNill() // => true\risNill(1) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean based on the check"}],"params":[{"type":{"names":["Any"]},"description":"The value to run our test against","name":"x"}],"syntax":"isNil(x)","usage":{"commonjs":{"title":"CommonJs","code":"const isNil = require('kyanite/isNil')"},"standard":{"title":"Standard","code":"import isNil from 'kyanite/isNil'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"juxt","desc":"Applies the provided function and turns them into a single function you can use on a value","examples":["const getRange = juxt([Math.min, Math.max])\r\rgetRange(3, 4, 9, -3) // => [-3, 9]"],"returns":[{"type":{"names":["function"]},"description":"The function you can use on your data value"}],"params":[{"type":{"names":["Array"]},"description":"An array of functions to apply","name":"fns"}],"syntax":"juxt(fns)","usage":{"commonjs":{"title":"CommonJs","code":"const juxt = require('kyanite/juxt')"},"standard":{"title":"Standard","code":"import juxt from 'kyanite/juxt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"lt","desc":"Checks if a value is less than the other","examples":["lt(1, 2) // => true\nlt('a', 'b') // => true\n\n// It's also curried\n\nconst g = lt(2)\n\ng(1) // => false\ng(2) // => false\ng(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than the other","name":"b"}],"syntax":"lt(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lt = require('kyanite/lt')"},"standard":{"title":"Standard","code":"import lt from 'kyanite/lt'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"lte","desc":"Checks if a value is less than or equal to the other","examples":["lte(1, 2) // => true\nlte(1, 1) // => true\nlte('a', 'b') // => true\n\n// It's also curried\n\nconst g = lte(2)\n\ng(1) // => false\ng(2) // => true\ng(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on the outcome of the logic a Boolean"}],"params":[{"type":{"names":["Any"]},"description":"Value to determine if it is greater than or equal to the other","name":"a"},{"type":{"names":["Any"]},"description":"Value to compare to see if it is less than or equal to the other","name":"b"}],"syntax":"lte(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lte = require('kyanite/lte')"},"standard":{"title":"Standard","code":"import lte from 'kyanite/lte'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"not","desc":"Returns boolean based on if the value is not","examples":["const reverse = not(true) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns boolean back based on the results"}],"params":[{"type":{"names":["Boolean"]},"description":"The values to compare against","name":"x"}],"syntax":"not(x)","usage":{"commonjs":{"title":"CommonJs","code":"const not = require('kyanite/not')"},"standard":{"title":"Standard","code":"import not from 'kyanite/not'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Function","title":"on","desc":"Applies the second function to the values passed in, and then runs the first function against those new values","examples":["on((x, y) => x === y, x => x.length, 'you', 'are') // => true\n\n// It's also curried\n\nconst f = on((x, y) => x === y)\n\nf(x => x.length, 'you', 'are') // => true\n\nconst g = f(x => x.length)\n\ng('you', 'are') // => true\n\nconst h = f('you')\n\nh('are') // => true"],"returns":[{"type":{"names":["Any"]},"description":"A value based on the first functions return"}],"params":[{"type":{"names":["function"]},"description":"The first function being ran against the values from the second","name":"fn"},{"type":{"names":["function"]},"description":"The function to be applied to the two values passed in","name":"gn"},{"type":{"names":["Any"]},"description":"The first value to use","name":"a"},{"type":{"names":["Any"]},"description":"The second value we want to use","name":"b"}],"syntax":"on(fn, gn, a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const on = require('kyanite/on')"},"standard":{"title":"Standard","code":"import on from 'kyanite/on'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"or","desc":"Runs an or comparison on the two values passed in","examples":["or(true, true) // => true\nor(true, false) // => true\nor(false, false) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"The evaluated outcome of the parameters"}],"params":[{"type":{"names":["Boolean"]},"description":"The first boolean to compare","name":"a"},{"type":{"names":["Boolean"]},"description":"The second boolean to compare","name":"b"}],"syntax":"or(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const or = require('kyanite/or')"},"standard":{"title":"Standard","code":"import or from 'kyanite/or'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"pipe","desc":"Applies a sequence of transformations over a value.","examples":["pipe([add(2), mul(2)], 10) // => 24\r\r// It's also curried\r\rconst piper = pipe([add(2), mul(2)])\r\rpiper(10) // => 24"],"returns":[{"type":{"names":["Any"]},"description":"The transformed value"}],"params":[{"type":{"names":["Array"]},"description":"The array of functions to apply to our value","name":"list"},{"type":{"names":["Any"]},"description":"The value to apply our functions too","name":"a"}],"syntax":"pipe(list, a)","usage":{"commonjs":{"title":"CommonJs","code":"const pipe = require('kyanite/pipe')"},"standard":{"title":"Standard","code":"import pipe from 'kyanite/pipe'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"range","desc":"Create an array range from start to end","examples":["const test = range(3, 7) // => [3, 4, 5, 6]\rconst test = range(3) // => [0, 1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"Returns an array of numbers consisting of the range"}],"params":[{"type":{"names":["Number"]},"description":"Starting number for the range","name":"from"},{"type":{"names":["Number"]},"description":"Number to end on for the range","name":"to"}],"syntax":"range(from, to)","usage":{"commonjs":{"title":"CommonJs","code":"const range = require('kyanite/range')"},"standard":{"title":"Standard","code":"import range from 'kyanite/range'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"type","desc":"Finds the type of the sent value","examples":["type({}) // => 'Object'\rtype([]) // => 'Array'\rtype(null) // => 'Null'\rtype(undefined) // => 'Undefined'\rtype('hi') // => 'String'\rtype(1) // => 'Number'\rtype(/1/g) // => 'RegExp'\rtype(new Date()) // => 'Date'\rtype(true) // => 'Boolean'"],"returns":[{"type":{"names":["String"]},"description":"A string based on the type of the value passed in"}],"params":[{"type":{"names":["Any"]},"description":"The value to test","name":"x"}],"syntax":"type(x)","usage":{"commonjs":{"title":"CommonJs","code":"const type = require('kyanite/type')"},"standard":{"title":"Standard","code":"import type from 'kyanite/type'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Function","title":"when","desc":"Takes a value and if it passes the check function (1st param) then it will apply the action function (2nd param) otherwise undefined is given back","examples":["when(x => x > 2, x => x * 2, 5) // => 10\nwhen(x => x > 5, x => x * 2, 5) // => undefined\n\n// It's also curried\n\nconst w = when(x => x > 2, x => x * 2)\n\nw(5) // => 10\nw(1) // => undefined"],"returns":[{"type":{"names":["Any"]},"description":"Returns whatever the action function returns, or undefined"}],"params":[{"type":{"names":["function"]},"description":"The check function that when passed if returns a truthy value trigger the action","name":"fn"},{"type":{"names":["function"]},"description":"The action function which is fired when the logic passes","name":"act"},{"type":{"names":["Any"]},"description":"The arguments to pass to both functions","name":"args"}],"syntax":"when(fn, act, args)","usage":{"commonjs":{"title":"CommonJs","code":"const when = require('kyanite/when')"},"standard":{"title":"Standard","code":"import when from 'kyanite/when'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"add","desc":"Adds the provided items together","examples":["add(1, 2) // => 3\r\r// It's also curried\r\rconst adder = add(2)\r\radder(3) // => 5\radder(2) // => 4"],"returns":[{"type":{"names":["Number"]},"description":"The sum of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first number to add","name":"a"},{"type":{"names":["Number"]},"description":"The second number to add","name":"b"}],"syntax":"add(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const add = require('kyanite/add')"},"standard":{"title":"Standard","code":"import add from 'kyanite/add'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"between","desc":"Checks to see if a number is between two other provided numbers","examples":["between(1, 3, 2) // => true\nbetween(1, 10, 7) // => true\nbetween(1, 10, 11) // => false\n\n// It's also curried\nconst b = between(1)\n\nb(10, 9) // => true\n\n// A step further\nconst c = b(10)\n// OR\n// const c = between(1, 10)\n\nc(9) // => true\nc(11) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the provided number is between the other two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The number our value should be greater than or equal too","name":"a"},{"type":{"names":["Number"]},"description":"The number our value should be less than or equal too","name":"b"},{"type":{"names":["Number"]},"description":"The value to compare with","name":"n"}],"syntax":"between(a, b, n)","usage":{"commonjs":{"title":"CommonJs","code":"const between = require('kyanite/between')"},"standard":{"title":"Standard","code":"import between from 'kyanite/between'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"div","desc":"Divides the provided items","examples":["div(2, 1) // => 2\r\r// It's also curried\r\rconst divide = div(15)\r\rdivide(3) // => 5\rdivide(5) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"The quotient of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The divisor which the dividend will be divided by","name":"a"},{"type":{"names":["Number"]},"description":"The dividend of the division problem","name":"b"}],"syntax":"div(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const div = require('kyanite/div')"},"standard":{"title":"Standard","code":"import div from 'kyanite/div'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"gcd","desc":"Determines the greatest common denominator of the numbers passed in","examples":["gcd(80, 90) // => 10\rgcd(20, 600) // => 20\r\r// It's also curried\r\rconst a = gcd(80)\r\ra(90) // => 10\ra(93) // => 1"],"returns":[{"type":{"names":["Number"]},"description":"The Greatest Common Denominator"}],"params":[{"type":{"names":["Number"]},"description":"The First number to use","name":"a"},{"type":{"names":["Number"]},"description":"The Second number to use","name":"b"}],"syntax":"gcd(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const gcd = require('kyanite/gcd')"},"standard":{"title":"Standard","code":"import gcd from 'kyanite/gcd'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"isEven","desc":"Checks if the provided number is even or not","examples":["isEven(2) // => true\nisEven(12) // => true\nisEven(1) // => false\nisEven(NaN) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the provided number is even"}],"params":[{"type":{"names":["Number"]},"description":"The number to check if its even","name":"n"}],"syntax":"isEven(n)","usage":{"commonjs":{"title":"CommonJs","code":"const isEven = require('kyanite/isEven')"},"standard":{"title":"Standard","code":"import isEven from 'kyanite/isEven'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"isOdd","desc":"Checks if the provided number is odd or not","examples":["isOdd(2) // => false\nisOdd(NaN) // => false\nisOdd(1) // => true\nisOdd(3) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Whether or not the number is odd"}],"params":[{"type":{"names":["Number"]},"description":"The number to check against","name":"n"}],"syntax":"isOdd(n)","usage":{"commonjs":{"title":"CommonJs","code":"const isOdd = require('kyanite/isOdd')"},"standard":{"title":"Standard","code":"import isOdd from 'kyanite/isOdd'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"lcm","desc":"Finds the least common multiple of the provided numbers","examples":["lcm(90, 70) // => 630\rlcm(91, 4) // => 364\r\r// It's also curried\r\rconst a = lcm(90)\r\ra(70) // => 630\ra(4) // => 180"],"returns":[{"type":{"names":["Number"]},"description":"The least common multiple of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first number to use","name":"a"},{"type":{"names":["Number"]},"description":"The second number to use","name":"b"}],"syntax":"lcm(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const lcm = require('kyanite/lcm')"},"standard":{"title":"Standard","code":"import lcm from 'kyanite/lcm'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"mul","desc":"Multiplies the provided items","examples":["mul(2, 1) // => 2\r\r// It's also curried\r\rconst multiply = mul(5)\r\rmultiply(3) // => 15\rmultiply(2) // => 10"],"returns":[{"type":{"names":["Number"]},"description":"The product of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The first factor to multiply with","name":"a"},{"type":{"names":["Number"]},"description":"The second factor to multiply with","name":"b"}],"syntax":"mul(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const mul = require('kyanite/mul')"},"standard":{"title":"Standard","code":"import mul from 'kyanite/mul'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"pow","desc":"Take a base number and brings it to the value of base^exponent","examples":["pow(3, 7) // => 343\npow(0.5, 4) // => 2\n\n// It's also curried\nconst p = pow(3)\n\np(7) // => 343"],"returns":[{"type":{"names":["Number"]},"description":"A number representing the given base taken to the power of the given exponent"}],"params":[{"type":{"names":["Number"]},"description":"The exponent used to raise the base number","name":"a"},{"type":{"names":["Number"]},"description":"The base Number","name":"b"}],"syntax":"pow(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const pow = require('kyanite/pow')"},"standard":{"title":"Standard","code":"import pow from 'kyanite/pow'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"Number","title":"rem","desc":"Takes two numbers and gets the remainder from the division","examples":["rem(5, 12) // => 2\nrem(2, -1) // => -1\nrem(2, NaN) // => NaN\n\n// It's also curried\nconst r = rem(5)\n\nr(12) // => 2"],"returns":[{"type":{"names":["Number"]},"description":"The remainder of the two numbers"}],"params":[{"type":{"names":["Number"]},"description":"The dividend of the division problem","name":"a"},{"type":{"names":["Number"]},"description":"The divisor which the dividend will be divided by","name":"b"}],"syntax":"rem(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const rem = require('kyanite/rem')"},"standard":{"title":"Standard","code":"import rem from 'kyanite/rem'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"round","desc":"Round a number using exponent rounding","examples":["round(2, 112.336) // => 112.34\rround(3, 112.3354) // => 112.335\r\r// It is curried\rconst rounder = round(3)\r\rrounder(122.4456) // => 112.446\rrounder(122.332) // => 122.332"],"returns":[{"type":{"names":["Number"]},"description":"The rounded number to the desired precision"}],"params":[{"type":{"names":["Number"]},"description":"The precision we want the number to be rounded to","name":"precision"},{"type":{"names":["Number"]},"description":"The number we are going to round","name":"num"}],"syntax":"round(precision, num)","usage":{"commonjs":{"title":"CommonJs","code":"const round = require('kyanite/round')"},"standard":{"title":"Standard","code":"import round from 'kyanite/round'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Number","title":"sub","desc":"Subtracts the provided items","examples":["sub(2, 1) // => 1\r\r// It's also curried\r\rconst subtract = sub(5)\r\rsubtract(3) // => 2\rsubtract(2) // => 3"],"returns":[{"type":{"names":["Number"]},"description":"The difference of the numbers"}],"params":[{"type":{"names":["Number"]},"description":"The number to subtract from","name":"a"},{"type":{"names":["Number"]},"description":"The number to subtract with","name":"b"}],"syntax":"sub(a, b)","usage":{"commonjs":{"title":"CommonJs","code":"const sub = require('kyanite/sub')"},"standard":{"title":"Standard","code":"import sub from 'kyanite/sub'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"any","desc":"Works a lot like every for array, but for the object data type. Returns whether every key matches the predicate or not","examples":["const run = any({\r a: x => x === 'foo',\r b: x => x !== 'bar'\r})\r\rrun({ a: 'foo', b: 'xxx', x: 11, y: 19 }) // => true\rrun({ a: 'xxx', b: 'bar' }) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"A boolean dependent on whether or not any values passed"}],"params":[{"type":{"names":["Object"]},"description":"An Object schema containing the matching properties and the function to run","name":"schema"},{"type":{"names":["Object"]},"description":"The object to run through","name":"obj"}],"syntax":"any(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const any = require('kyanite/any')"},"standard":{"title":"Standard","code":"import any from 'kyanite/any'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"assign","desc":"Create a new object from the provided objects in the parameters defaults to Object.assign if able","examples":["assign({ a: 1 }) // => { a: 1 }\rassign({ test: 1 }, { thing: 2 }) // => { test: 1, thing: 2 }\rassign({ a: 1, b: 2, c: 3 }, { c: 5, d: 3 }) // => { a: 1, b: 2, c: 5, d: 3 }\rassign({ a: 1 }, { b: 2 }, { c: 5 }, { c: 3 }, { d: 4 }) // => { a: 1, b: 2, c: 3, d: 4 }"],"returns":[{"type":{"names":["Object"]},"description":"A new Object"}],"params":[{"type":{"names":["Object"]},"description":"The object(s) we want to combine","name":"args"}],"syntax":"assign(args)","usage":{"commonjs":{"title":"CommonJs","code":"const assign = require('kyanite/assign')"},"standard":{"title":"Standard","code":"import assign from 'kyanite/assign'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.8.0","deprecated":false,"category":"Object","title":"clone","desc":"Creates either a shallow or deep clone of the provided object","examples":["clone({ a: 1 }) // => { a: 1 }\nclone({ a: 1 }, true) // => { a: 1 }\n\n// Using deep clone would technically work on arrays too\nclone([1, 2, 3], true) // => [1, 2, 3]\n\nconst obj = { a: 1 }\nconst tst = clone(obj)\n\ntst.a = 2\n\nconsole.log(tst) // => { a: 2 }\nconsole.log(obj) // => { a: 1 }"],"returns":[{"type":{"names":["Object"]},"description":"A clone of the provided object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to create a clone of","name":"x"},{"type":{"names":["Boolean"]},"description":"Whether or not we want to create a shallow or deep clone of the object","name":"deep"}],"syntax":"clone(x, deep)","usage":{"commonjs":{"title":"CommonJs","code":"const clone = require('kyanite/clone')"},"standard":{"title":"Standard","code":"import clone from 'kyanite/clone'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"compress","desc":"Takes an object and compresses it down removing undefined or null values","examples":["compress({ thing: '', test: 1, other: undefined }) // => { thing: '', test: 1 }\rcompress({ thing: '', test: 1, other: null }) // => { thing: '', test: 1 }"],"returns":[{"type":{"names":["Object"]},"description":"Returns a new object without the unwanted values"}],"params":[{"type":{"names":["Object"]},"description":"The Object to compress","name":"obj"}],"syntax":"compress(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const compress = require('kyanite/compress')"},"standard":{"title":"Standard","code":"import compress from 'kyanite/compress'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"defaults","desc":"Applies default properties to an object that does not contain the smae or contains falsey values on those properties","examples":["defaults({ test: 1, thing: 2 }, { thing: 4 }) // => { test: 1, thing: 4 }\r\r// It's also curried\r\rconst def = defaults({ test: 1, thing: 2 })\r\rdef({ thing: 4 }) // => { test: 1, thing: 4 }"],"returns":[{"type":{"names":["Object"]},"description":"A New object"}],"params":[{"type":{"names":["Object"]},"description":"The default object to reference","name":"def"},{"type":{"names":["Object"]},"description":"The data object to loop through","name":"data"}],"syntax":"defaults(def, data)","usage":{"commonjs":{"title":"CommonJs","code":"const defaults = require('kyanite/defaults')"},"standard":{"title":"Standard","code":"import defaults from 'kyanite/defaults'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.6.0","deprecated":false,"category":"Object","title":"draft","desc":"Runs a provided function against all of the values that are within the provided object","examples":["draft(x => x * 2, { a: 1, b: 2, c: 3 }) // => { a: 2, b: 4, c: 6 }\n\n// It's also curried\n\nconst d = draft(x => x * 2)\n\nd({ a: 1, b: 2, c: 3 }) // => { a: 2, b: 4, c: 6 }"],"returns":[{"type":{"names":["Object"]},"description":"A new object with the updated data from our applied function"}],"params":[{"type":{"names":["function"]},"description":"The Function we want to apply to all of the data values","name":"fn"},{"type":{"names":["Object"]},"description":"The object to apply our functions too","name":"obj"}],"syntax":"draft(fn, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const draft = require('kyanite/draft')"},"standard":{"title":"Standard","code":"import draft from 'kyanite/draft'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"entries","desc":"Creates an array of arrays with the key value pairs of an object","examples":["entries({ a: 1, b: 2, c: 3 }) // => [['a', 1], ['b', 2], ['c', 3]]"],"returns":[{"type":{"names":["Array"]},"description":"An array of arrays with the key value pairs from the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to grab our data from","name":"obj"}],"syntax":"entries(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const entries = require('kyanite/entries')"},"standard":{"title":"Standard","code":"import entries from 'kyanite/entries'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"has","desc":"Determines if the object has a property","examples":["const obj = has('thing', { test: 1, thing: 2 }) // => true\r\r// has is also curried\r\rconst propSet = has('thing')\r\rpropSet({ test: 1, thing: 2 }) // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns based on if the prop is found or not"}],"params":[{"type":{"names":["String"]},"description":"The prop to look for","name":"prop"},{"type":{"names":["Object"]},"description":"The Object we are searching","name":"obj"}],"syntax":"has(prop, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const has = require('kyanite/has')"},"standard":{"title":"Standard","code":"import has from 'kyanite/has'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Object","title":"head","desc":"Returns the first value from an object","examples":["head({ a: 1, b: 2, c: 3 }) // => 1\nhead({ a: { b: 2, c: 3 }, d: 1 }) // => { b: 2, c: 3 }"],"returns":[{"type":{"names":["Any"]},"description":"The first value within the object"}],"params":[{"type":{"names":["Object"]},"description":"The object to retrieve the value from","name":"obj"}],"syntax":"head(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const head = require('kyanite/head')"},"standard":{"title":"Standard","code":"import head from 'kyanite/head'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"height","desc":"Works a lot like length for arrays, but allows you to get the length of an object","examples":["height({ a: 1, b: 2 }) // => 2"],"returns":[{"type":{"names":["Number"]},"description":"The length of the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to read the length of","name":"obj"}],"syntax":"height(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const height = require('kyanite/height')"},"standard":{"title":"Standard","code":"import height from 'kyanite/height'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"omit","desc":"Create a new Array/Object by omitting the requested values","examples":["const obj = omit('test', { test: '3432', thing: 123 }) // => { thing: 123 }\rconst arr = omit(['a', 'b'], { a: 1, b: 2, c: 3}) // => { c: 3 }\r\r// omit is curried\r\rconst omitKeys = omit('test')\r\romitKeys({ test: '3432', thing: 123 }) // => { thing: 123 }"],"returns":[{"type":{"names":["Object"]},"description":"Returns the newly created data without the omitted values"}],"params":[{"type":{"names":["Array"]},"description":"The key(s) in which to omit from the data","name":"key"},{"type":{"names":["Object"]},"description":"The object to search through and filter","name":"x"}],"syntax":"omit(key, x)","usage":{"commonjs":{"title":"CommonJs","code":"const omit = require('kyanite/omit')"},"standard":{"title":"Standard","code":"import omit from 'kyanite/omit'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"path","desc":"Find an item based on the function sent in and its list","examples":["path(['a', 'b'], { a: { b: 3 } }) // => 3\npath(['a', 'b', 'c'], { a: 3 }) // => undefined\n\n// Is also curried\n\nconst safetyPath = path(['a', 'b'])\n\nsafetyPath({ a: { b: 2 } }) // => 2"],"returns":[{"type":{"names":["Any"]},"description":"Returns Maybe Data if found, undefined if not"}],"params":[{"type":{"names":["Array"]},"description":"The path to safely traverse the object with","name":"keys"},{"type":{"names":["Object"]},"description":"The object to traverse","name":"obj"}],"syntax":"path(keys, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const path = require('kyanite/path')"},"standard":{"title":"Standard","code":"import path from 'kyanite/path'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"plan","desc":"Uses a schema to allow you to plan out functions being ran against values within your object","examples":["const testFns = {\n a: x => x * 2,\n b: x => x + 10\n }\n\nplan(testFns, { a: 5, b: 10 }) // => { a: 10, b: 20 }\n\n// It's also curried\n\nconst p = plan(testFns)\n\np({ a: 5, b: 10 }) // => { a: 10, b: 20 }"],"returns":[{"type":{"names":["Object"]},"description":"A new object with the updated data from our applied functions"}],"params":[{"type":{"names":["Object"]},"description":"The object of functions we want to apply","name":"schema"},{"type":{"names":["Object"]},"description":"The object to apply our functions too","name":"obj"}],"syntax":"plan(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const plan = require('kyanite/plan')"},"standard":{"title":"Standard","code":"import plan from 'kyanite/plan'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"pluck","desc":"Recursively digs through objects to create a new list of values based on the provided property name and provided object","examples":["pluck('val', { a: { val: 3 }, b: { val: 5 } }) // => [3, 5]\n\n// It is also curried\nconst plucker = pluck('a')\n\nplucker([{ a: 1 }, { a: 2 }]) // => [1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"The new list which will be the same type as the list provided"}],"params":[{"type":{"names":["String"]},"description":"The property to look for","name":"p"},{"type":{"names":["Array","Object"]},"description":"An array of objects or a single object to pluck through","name":"list"}],"syntax":"pluck(p, list)","usage":{"commonjs":{"title":"CommonJs","code":"const pluck = require('kyanite/pluck')"},"standard":{"title":"Standard","code":"import pluck from 'kyanite/pluck'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"prop","desc":"Brings back the indicated property of an object if it exists","examples":["prop('thing', { thing: 'test' }) // => 'test'\rprop('thing', {}) // => undefined\rmap(prop('a'), [{ a: 1 }, { a: 2 }, { a: 3 }]) // => [1, 2, 3]\r\r// It is also curried\r\rconst proper = prop('a')\r\rproper({ a: 1, b: 2 }) // => 1"],"returns":[{"type":{"names":["Any"]},"description":"The value that exists at 'obj.p'"}],"params":[{"type":{"names":["Array"]},"description":"The array path of the property we are looking for","name":"p"},{"type":{"names":["Object"]},"description":"The object to search through","name":"obj"}],"syntax":"prop(p, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const prop = require('kyanite/prop')"},"standard":{"title":"Standard","code":"import prop from 'kyanite/prop'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"Object","title":"props","desc":"Pulls a list of values from an object and returns them as an array","examples":["props(['a', 'b'], { a: 1, b: 2, c: 3 }) // => [1, 2]\n\n// It's also curried\n\nconst g = props(['a', 'b'])\n\ng({ a: 1, b: 2, c: 3 }) // => [1, 2]"],"returns":[{"type":{"names":["Array"]},"description":"An array of values pulled from the object"}],"params":[{"type":{"names":["Array"]},"description":"The list of properties to get values from","name":"keys"},{"type":{"names":["Object"]},"description":"The object to map through","name":"obj"}],"syntax":"props(keys, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const props = require('kyanite/props')"},"standard":{"title":"Standard","code":"import props from 'kyanite/props'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"sift","desc":"Works a lot like an array filter, but for the object data type\rAccepts a function and an object, it then runs the function against each value","examples":["sift(x => typeof x === 'string', {\r id: 44,\r thing: 'test',\r other: 'cool'\r}) // => { thing: 'test', other: 'cool' }\r\r// It's also curried\r\rconst sifter = sift(x => typeof x === 'string')\r\rsifter({ id: 44, thing: 'test', other: 'cool' }) // => { thing: 'test', other: 'cool' }"],"returns":[{"type":{"names":["Object"]},"description":"A new filtered out object"}],"params":[{"type":{"names":["function"]},"description":"A function to run against the values within the object","name":"fn"},{"type":{"names":["Object"]},"description":"The object to sift through","name":"obj"}],"syntax":"sift(fn, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const sift = require('kyanite/sift')"},"standard":{"title":"Standard","code":"import sift from 'kyanite/sift'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.5.0","deprecated":false,"category":"Object","title":"tail","desc":"Returns the last value from an object","examples":["last({ a: 1, b: 2, c: 3 }) // => 3\nlast({ a: 1, d: { b: 2, c: 3 } }) // => { b: 2, c: 3 }"],"returns":[{"type":{"names":["Any"]},"description":"The last value within the object"}],"params":[{"type":{"names":["Object"]},"description":"The object to retrieve the value from","name":"obj"}],"syntax":"tail(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const tail = require('kyanite/tail')"},"standard":{"title":"Standard","code":"import tail from 'kyanite/tail'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.8.0","deprecated":false,"category":"Object","title":"unzip","desc":"Takes an object and breaks it down into two arrays one being the keys, the other being the values","examples":["unzip({ a: 1, b: 2, c: 3 }) // => [['a', 'b', 'c'], [1, 2, 3]]"],"returns":[{"type":{"names":["Array"]},"description":"An array of 2 arrays, the first being an array of keys, the second being an array of values"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to unzip into arrays","name":"obj"}],"syntax":"unzip(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const unzip = require('kyanite/unzip')"},"standard":{"title":"Standard","code":"import unzip from 'kyanite/unzip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"values","desc":"Grabs the values from a key value pair object","examples":["value({ a: 1, b: 2, c: 3 }) // => [1, 2, 3]"],"returns":[{"type":{"names":["Array"]},"description":"An array of values from the object"}],"params":[{"type":{"names":["Object"]},"description":"The object we want to grab our values from","name":"obj"}],"syntax":"values(obj)","usage":{"commonjs":{"title":"CommonJs","code":"const values = require('kyanite/values')"},"standard":{"title":"Standard","code":"import values from 'kyanite/values'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"Object","title":"whole","desc":"Works a lot like every for array, but for the object data type. Returns whether every key matches the predicate or not","examples":["const run = whole({ a: x => x === 'foo', b: x => x !== 'bar', x: x => x > 10, y: x => x < 20 })\r\rrun({ a: 'foo', b: 'xxx', x: 11, y: 19 }) // => true\rrun({ a: 'xxx', b: 'xxx', x: 11, y: 19 }) // => false"],"returns":[{"type":{"names":["Boolean"]},"description":"A boolean dependent on whether or not all values passed"}],"params":[{"type":{"names":["Object"]},"description":"An Object schema containing the matching properties and the function to run","name":"schema"},{"type":{"names":["Object"]},"description":"The object to sift through","name":"obj"}],"syntax":"whole(schema, obj)","usage":{"commonjs":{"title":"CommonJs","code":"const whole = require('kyanite/whole')"},"standard":{"title":"Standard","code":"import whole from 'kyanite/whole'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"capitalize","desc":"Capitalizes the first letter of a string","examples":["capitalize('test') // => 'Test'\rcapitalize('small brown cow') // => 'Small brown cow'"],"returns":[{"type":{"names":["String"]},"description":"The capitalized string"}],"params":[{"type":{"names":["String"]},"description":"The string we want to capitalize","name":"str"}],"syntax":"capitalize(str)","usage":{"commonjs":{"title":"CommonJs","code":"const capitalize = require('kyanite/capitalize')"},"standard":{"title":"Standard","code":"import capitalize from 'kyanite/capitalize'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"contains","desc":"Goes through a provided string and attempts to find the provided value within it","examples":["contains('cow', 'small brown cow') // => true\rcontains('cow', 'Small Brown Cow') // => true\r\rconst x = 'cow'\r\rcontains('cow', `small brown ${x}`) // => true\r\r// It's also curried\r\rconst checker = contains('cow')\r\rchecker('small brown cow') // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Based on if the string is found or not"}],"params":[{"type":{"names":["String"]},"description":"The string we want to search through","name":"str"},{"type":{"names":["String"]},"description":"The string we want to find","name":"a"}],"syntax":"contains(str, a)","usage":{"commonjs":{"title":"CommonJs","code":"const contains = require('kyanite/contains')"},"standard":{"title":"Standard","code":"import contains from 'kyanite/contains'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"fuzzySearch","desc":"Fuzzy search setup to look find things fast and effective","examples":["fuzzySearch('te', 'test') // => true\nfuzzySearch('dog', 'testing') // => false\n\n// search is also curried\n\nconst search = fuzzySearch('te')\nsearch('test') // => true"],"returns":[{"type":{"names":["Boolean"]},"description":"Returns a boolean determined by if the value is found or not by the search"}],"params":[{"type":{"names":["String"]},"description":"The Item to search","name":"needle"},{"type":{"names":["String"]},"description":"The value to search for","name":"haystack"}],"syntax":"fuzzySearch(needle, haystack)","usage":{"commonjs":{"title":"CommonJs","code":"const fuzzySearch = require('kyanite/fuzzySearch')"},"standard":{"title":"Standard","code":"import fuzzySearch from 'kyanite/fuzzySearch'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.4.0","deprecated":false,"category":"String","title":"join","desc":"Joins together an array of strings with whatever string was passed in","examples":["join(' ', ['test', 'this', 'thing']) // => 'test this thing'\njoin('aaa', ['test', 'that', 'thing']) // => 'testaaathataaathing'\n\n// It's also curried\nconst j = join(' ')\n\nj(['test', 'this', 'thing]) // => 'test this thing'\nj(['test', 'that', 'thing']) // => 'test that thing'"],"returns":[{"type":{"names":["String"]},"description":"The joined string"}],"params":[{"type":{"names":["String"]},"description":"The string we want to use for the join","name":"str"},{"type":{"names":["Array"]},"description":"The array to join","name":"list"}],"syntax":"join(str, list)","usage":{"commonjs":{"title":"CommonJs","code":"const join = require('kyanite/join')"},"standard":{"title":"Standard","code":"import join from 'kyanite/join'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.2.1","deprecated":false,"category":"String","title":"strip","desc":"Accepts a string value and removes all whitespace from it","examples":["strip('I am squished') // => 'Iamsquished'"],"returns":[{"type":{"names":["String"]},"description":"The stripped string"}],"params":[{"type":{"names":["String"]},"description":"The string to strip down","name":"a"}],"syntax":"strip(a)","usage":{"commonjs":{"title":"CommonJs","code":"const strip = require('kyanite/strip')"},"standard":{"title":"Standard","code":"import strip from 'kyanite/strip'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"String","title":"toLower","desc":"Transform a provided string into an lowercase version","examples":["toLower('HI') // => 'hi'\ntoLower('TEST.123.HELLO') // => 'test.123.hello'"],"returns":[{"type":{"names":["String"]},"description":"The string in lower case format"}],"params":[{"type":{"names":["String"]},"description":"The string to lower case","name":"a"}],"syntax":"toLower(a)","usage":{"commonjs":{"title":"CommonJs","code":"const toLower = require('kyanite/toLower')"},"standard":{"title":"Standard","code":"import toLower from 'kyanite/toLower'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.7.0","deprecated":false,"category":"String","title":"toUpper","desc":"Transform a provided string into an uppercase version","examples":["toUpper('hi') // => 'HI'\ntoUpper('test.123.hello') // => 'TEST.123.HELLO'"],"returns":[{"type":{"names":["String"]},"description":"The string in upper case format"}],"params":[{"type":{"names":["String"]},"description":"The string to upper case","name":"a"}],"syntax":"toUpper(a)","usage":{"commonjs":{"title":"CommonJs","code":"const toUpper = require('kyanite/toUpper')"},"standard":{"title":"Standard","code":"import toUpper from 'kyanite/toUpper'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"trim","desc":"Accepts a string value and trims it's white space","examples":["trim('my new cow ') // => 'my new cow'\rtrim(' new things ') // => 'new things'"],"returns":[{"type":{"names":["String"]},"description":"The trimmed string"}],"params":[{"type":{"names":["String"]},"description":"The string to trim","name":"str"}],"syntax":"trim(str)","usage":{"commonjs":{"title":"CommonJs","code":"const trim = require('kyanite/trim')"},"standard":{"title":"Standard","code":"import trim from 'kyanite/trim'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}},{"since":"v0.1.0","deprecated":false,"category":"String","title":"words","desc":"Takes a string and breaks the words down into an array","examples":["words('my brown cow') // => ['my', 'brown', 'cow']"],"returns":[{"type":{"names":["Array"]},"description":"The words broken down into an array of strings"}],"params":[{"type":{"names":["String"]},"description":"The string we want to break down","name":"str"}],"syntax":"words(str)","usage":{"commonjs":{"title":"CommonJs","code":"const words = require('kyanite/words')"},"standard":{"title":"Standard","code":"import words from 'kyanite/words'"},"cdn":{"title":"CDN","code":""},"browser":{"title":"Browser","code":""}}}]}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 02b9de50..d85a7a40 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "kyanite",
- "version": "0.8.1",
+ "version": "0.8.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index a80c3b32..7e8560f8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "kyanite",
- "version": "0.8.1",
+ "version": "0.8.2",
"description": "A small library of pure functional utilities to make life easier and data better",
"main": "dist/kyanite.min.js",
"directories": {
diff --git a/rollup.split.js b/rollup.split.js
index cd48d027..8f8ee4e4 100644
--- a/rollup.split.js
+++ b/rollup.split.js
@@ -5,57 +5,33 @@ import path from 'path'
import { uglify } from 'rollup-plugin-uglify'
const buildEntry = () => {
- const results = []
+ const plugins = [babel(), uglify()]
+ const typesPaths = ['array', 'function', 'number', 'object', 'string']
+ .map(p => `./src/${p}/index.js`)
const paths = globby.sync(['src/**/*.js', '!src/**/index.js', '!src/_internals'])
- paths.forEach(p => {
- const { name } = path.parse(p)
+ return [...paths, ...typesPaths].map(p => {
+ const { name, dir } = path.parse(p)
- const config = {
+ const convert = {
+ array: 'KA',
+ function: 'KF',
+ number: 'KN',
+ object: 'KO',
+ string: 'KS'
+ }
+
+ return {
input: path.resolve(__dirname, p),
- plugins: [
- babel(),
- uglify()
- ],
+ plugins: name === 'index' ? [...plugins, filesize()] : plugins,
output: {
dir: './',
- file: `${name}.js`,
+ file: name === 'index' ? `${dir}.js` : `${name}.js`,
format: 'umd',
- name: name
+ name: convert[name] || name
}
}
-
- results.push(config)
-
- return true
})
-
- return results
-}
-
-const buildTypes = () => {
- const typeList = ['array', 'function', 'number', 'object', 'string']
- const names = {
- array: 'KA',
- function: 'KF',
- number: 'KN',
- object: 'KO',
- string: 'KS'
- }
-
- return typeList.map(t => ({
- input: `./src/${t}/index.js`,
- plugins: [
- babel(),
- uglify(),
- filesize()
- ],
- output: {
- file: `./${t}.js`,
- format: 'umd',
- name: names[t]
- }
- }))
}
-export default [...buildEntry(), ...buildTypes()]
+export default buildEntry()