Common JS Utility Functions [Lodash]
Context
This project will take you into the realm of real a JavaScript library used by thousands (maybe millions) of developers across the world. You’ll have to think like an open-source software developer and learn the benefits and constraints of such a role.
In addition, your code may be used by other developers to make their jobs easier. Hopefully this project helps you better understand how to contribute to the open source community so that you can be an active member throughout your career.
The questions that this project will raise are:
What happens “under the hood” of the most common utility functions? How do we write packages that are easy to understand and simple to use out of the box? How to publish a package to NPM? (part of stretch goal) This goal is the sister goal of Common JS Utility Functions - Underscore.
Specifications
-
Tests and correct implementations exist for 64 (not all) utility functions from the Lodash library. ##Completed 26 Functions
-
Functions are organized into files with the same names as the function groups from Lodash (e.g. “Array”, “Collection”, “Lang”).
-
All code is written with ES2015.
-
Includes a README that describes each method and provides an example of use.
-
The artifact produced is properly licensed, preferably with the MIT license. ##Stretch
-
An additional 32 utility functions have tests and correct implementations.
-
Package is published to NPM.
-
All source code has inline documentation using JSDoc format.
-
Documentation is published a simple GitHub Pages site (hint: use a builder like the documentation package). Quality Rubric
Well formatted code
-Code uses a linter, which can be invoked with a command (e.g. npm run lint). [50 points] -Running the linter on all source code files generates no linting errors. [50 points] Clear and useful README
-Repository includes a README file with installation and setup instructions. [25 points] -Repository includes a README file with usage instructions and at least one example use case. [25 points] -Proper dependency management
-There is a command to install dependencies (e.g. npm install) and it is specified in the installation and setup instructions of the README. [50 points] Good project management
-Commit messages are concise and descriptive. [25 points] -All features are added via pull requests. [25 points] -Every pull request has a description summarizing the changes made. [25 points] -Every pull request has been reviewed by at least one other person. [25 points]