{"_id":"@brenonparry/lotide","_rev":"1-8a01c4a4dee6641d380967396a9aecaf","name":"@brenonparry/lotide","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@brenonparry/lotide","version":"1.0.0","description":"LHL Lotide Project","main":"assertArraysEqual.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/brenonparry/lotide.git"},"keywords":["lotide"],"author":{"name":"@brenonparry"},"license":"ISC","bugs":{"url":"https://github.com/brenonparry/lotide/issues"},"homepage":"https://github.com/brenonparry/lotide#readme","devDependencies":{"chai":"^4.3.4","mocha":"^9.1.3"},"gitHead":"eb6c4fe601d7a342724f84e617fc142b2c4d3f5e","_id":"@brenonparry/lotide@1.0.0","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-qx/Q+a1nhaf1Su87h+O3yHqsnq1psN3R6lhHdDJvJsE0mDMdebTG6fJBjZSkHqOjwCiCihG5hk8V3xkbNjFjmQ==","shasum":"1913cbf58e0817e166d1ab2e7da7e0b0b8ca6509","tarball":"https://registry.npmjs.org/@brenonparry/lotide/-/lotide-1.0.0.tgz","fileCount":25,"unpackedSize":21130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpbBuCRA9TVsSAnZWagAAEj8P/RfW3FLmkyeI+Hz6TNZl\ncH3wHNugHUGIXFtFeD57TIiAiSbh1mIsJoJG7PaQOwBxk4LunSEzZnkSk+/e\n8dXmB8LT3Pec445cea57YgPvsV++7lpDaP3288UxujRYQ7eJJtNK9RhiJl0P\nn04UsbG+B/oqSNBOPGx0GfHsRE88FB+OBL1KbnRykAzTVKdPgFlS16lv0Gua\nLLXYYlvR6wC6SmWev3AFnkJRaJWgwfap9eJW57SQxQTcm9UgeEC/hHg9r67L\nCn4onH4pyYEcRHIED+4A1XKZ0V1biX1HMDvrpEUlq5rs9EaDsLZwvLoY5NZ3\ntYs6b3vYn393w8/rOZRhGpRGFUBkc5uL+gBPJB//OyzIzTeYDwFakIF8yffJ\nSL7hAgJJb0M+t5OnP8T1gbce4KXP9Ut5Nn5iXerCaHRLRUkksWrLlYmHT9V4\n9vMMCirzdA8KbA+MkZNLzB/yss6tmfFSsQwUQHlJAWNr256hUBPutKvH0jjn\ncq7266vffhBraosed/hOdiLyIDhKSt//tIUVqayyNDh5WwsjfOC/2lcKFUdt\naaUQ2uE/82hPmtraVKiQK0PNY5ayUWGGyQXwBJKLNSOjmjS1gJVranhT3YWe\njb3HRFMWQCow/e3Yu1ZGhdFC2GIF5GJsyWnmQYvjwzGDI3stHZWnHvfSMJ8R\nocsa\r\n=u6Lc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD44n4cPLFth/lQ3xvyU+xrA0xR/10Beypk8XnzQ4WBfwIhAOOqg92oyhmFW780pV0LkKEf7hEz8W8FujYaVu1gUWgr"}]},"_npmUser":{"name":"brenonparry","email":"brenonparry@gmail.com"},"maintainers":[{"name":"brenonparry","email":"brenonparry@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.0_1638248558172_0.21785249946234475"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-30T05:02:38.131Z","1.0.0":"2021-11-30T05:02:38.340Z","modified":"2022-04-04T20:31:26.044Z"},"maintainers":[{"name":"brenonparry","email":"brenonparry@gmail.com"}],"description":"LHL Lotide Project","homepage":"https://github.com/brenonparry/lotide#readme","keywords":["lotide"],"repository":{"type":"git","url":"git+https://github.com/brenonparry/lotide.git"},"author":{"name":"@brenonparry"},"bugs":{"url":"https://github.com/brenonparry/lotide/issues"},"license":"ISC","readme":"# Lotide\n\nA mini clone of the [Lodash](https://lodash.com) library.\n\n## Purpose\n\n**_BEWARE:_ This library was published for learning purposes. It is _not_ intended for use in production-grade software.**\n\nThis project was created and published by me as part of my learnings at Lighthouse Labs. \n\n## Usage\n\n**Install it:**\n\n`npm install @brenonparry/lotide`\n\n**Require it:**\n\n`const _ = require('@brenonparry/lotide');`\n\n**Call it:**\n\n`const results = _.tail([1, 2, 3]) // => [3]`\n\n## Documentation\n\nThe following functions are currently implemented:\n* `countLetters(...)`: Takes in a sentence (as a string) and returns a count of each of the letters in that sentence.\n* `eqArrays(...)`: Takes in two arrays as the parameters and evaluates to true if the arrays are identical, otherwise it evaluates false.\n* `assertEqual(...)`: Takes in a non-array or object value: 'actual', and compares its against 'expected' to return a boolean.\n* `eqObjects(...)`: Takes in two objects as the parameters and evaluates to true if the objects are identical, otherwise it evaluates false.\n* `findKey(...)`: Takes in an object and a callback. It scans the object and returns the first key for which the callback returns a truthy value. If no key is found, then it returns undefined.\n* `findKeyByValue(...)`: Takes in an object and the value of a desired key in the object. It will scan the values until it matched the value to the key, then return the key.\n* `head(...)`: Takes in an array and returns the first element.\n* `letterPositions(...)`: Takes in a sentance (as a string) and returns all the indices (zero-based positions) in the string where each character is found.\n* `tail(...)`: Takes in an array and returns the last element.\n* `middle(...)`: Takes in an array and returns the middle element. if the array.length is even, it will return the two most middle in a new array.\n* `takeUntil(...)`: Takes in an array and callback() and will return a \"slice\" of the array with elements taken from the beginning. It keeps going until the callback/predicate returns a truthy value.\n* `without(...)`: Takes in a source array and a itemsToRemove array. It returns a new array with only those elements from source that are not present in the itemsToRemove array.\n* `map(...)`: Takes in an array and callback(), it returns a new array based on the results of the callback function.\n* `countOnly(...)`: Takes in an array and an object. It will return an object containing counts of everything that the input object listed.\n* `assertArrayEqual(...)`: An asertion using eqArrays().\n* `assertObjectsEqual(...)`: An assertion using eqObjects().\n","readmeFilename":"README.md"}