

# Devlander JavaScript Utilities Collection



<br/>
<img src="https://github.com/Devlander-Software/utils/raw/main/media/images/javascript-utils-devlander-github-header-photo.png" alt="Devlander Utils Header">


<br/>

<a href="https://bit.ly/devlander-discord-invite">
  <img src="https://img.shields.io/badge/Discord-Devlander-%235865F2" alt="Join Devlander on Discord">
</a>

<br/>



<a href="https://www.npmjs.com/package/@devlander/utils">
  <img src="https://img.shields.io/npm/dm/@devlander/utils.svg" alt="npm downloads">
</a>
<br/>

<a href="https://github.com/orgs/Devlander-Software/discussions">
  <img src="https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue" alt="Join the discussion on Github">
</a>
<br/>

<a href="https://bit.ly/devlander-twitch">
  <img src="https://img.shields.io/twitch/status/devlander" alt="Join Devlander on Twitch">
</a>
<br/>

<a href="https://bit.ly/landonwjohnson-on-twitter">
  <img src="https://img.shields.io/twitter/follow/landonwjohnson.svg?style=social&label=Follow" alt="Follow Landon Johnson On Twitter">
</a>
<br/>

<a href="https://bit.ly/landonwjohnson-on-twitter">
  <img src="https://wakatime.com/badge/user/bd50b6c5-e0ca-4937-83b3-ab2d13adbc73/project/018d49ad-1c41-4ee7-9a6b-5387db501fcb.svg" alt="Wakatime stats for utils">
</a>

![Netlify Status](https://api.netlify.com/api/v1/badges/60806e06-d614-4a90-8a77-a39f065d65c2/deploy-status)

<br/>
<br/>

<a href="https://github.com/Devlander-Software/utils/coverage/index.html">
See testing results
</a>

<br/>

Enhance your JavaScript projects with the Devlander JavaScript Utils Collection - a meticulously curated set of utility functions to streamline your coding workflow. Join our vibrant community on Discord, engage in discussions on GitHub, and stay updated with our latest streams on Twitch. Boost your project's efficiency today!

- **Discord:** Join the Devlander community [here](https://bit.ly/devlander-discord-invite).
- **npm downloads:** Get our package [@devlander/utils](https://www.npmjs.com/package/@devlander/utils).
- **GitHub Discussions:** Engage in discussions and get support [here](https://github.com/orgs/Devlander-Software/discussions).
- **Twitch:** Catch our live coding sessions [here](https://bit.ly/devlander-twitch).
- **Twitter:** Follow Landon Johnson [@landonwjohnson](https://bit.ly/landonwjohnson-on-twitter).
- **Wakatime stats:** Track our progress [here](https://bit.ly/landonwjohnson-on-twitter).

## About This Project

The Devlander JavaScript Utils Collection is an evolving library of JavaScript utilities developed by Landon Johnson. These utilities address everyday coding tasks, reducing the need for repetitive code and enhancing productivity. Open to community input for naming and improvements, this project aims to be a go-to resource for developers.

## Utilities Overview

### JSON Utilities

- **`isDeepEqual(obj1, obj2)`**: Deeply compares two objects for equality.
- **`isJson(value)`**: Validates if a value is a legitimate JSON string or object.
- **`mergeObjects(oldObj, newObj)`**: Merges two nested objects into one.

### Filter Utilities

- **`hasItemByLetterAndFilter(array, key, value)`**: Filters various objects based on a specified letter and additional filter criteria.

### Conversion Utilities

- **`abbreviateNumber(value)`**: Abbreviates numbers with appropriate suffixes (k, m, b, t) for readability.

### Timeout Utilities

- **`waitFor(value, timeUnits?: ms | s, logDuration?: boolean)`**: Delays the execution of a function by a specified time.

## Quick Start and Documentation

Dive into our utility functions with ease. Each utility is documented with parameters, return values, and usage examples to get you started quickly. Whether you're merging objects, checking JSON validity, or filtering data, our collection is designed to enhance your development process with minimal effort.

- **Installation**: `npm install @devlander/utils`
- **Usage**: Import utilities as needed in your project. Example usage is provided for each function to illustrate its application.

## Changelog

For a full list of changes, check the [CHANGELOG.md](./CHANGELOG.md) file.

## Engage and Contribute

We welcome contributions, feedback, and suggestions! Join our discussions on GitHub, or connect with us on Discord and Twitter. Your input helps us improve the Devlander JavaScript Utils Collection for the developer community.

### [Become a Sponsor!](https://bit.ly/sponsor-landonjohnson-github/)
