default-values
Version:
Frequent default values
77 lines (64 loc) • 2.5 kB
Markdown
[LICENSE]: https://github.com/rozhkovs/default-values/blob/HEAD/LICENSE
[AUTHOR]: https://github.com/rozhkovs
# 🫡 Default Values 🫡
<p>
<a href="https://github.com/rozhkovs/default-values/blob/HEAD/LICENSE">
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="Default Values is released under the MIT license." />
</a>
<a href="https://github.com/rozhkovs/default-values/actions/workflows/testing.yml">
<img src="https://github.com/rozhkovs/default-values/actions/workflows/testing.yml/badge.svg" alt="Default values passed the testing" />
</a>
<a href="https://www.npmjs.com/package/default-values">
<img src="https://img.shields.io/npm/v/default-values?color=brightgreen&label=npm%20package" alt="Current npm package version." />
</a>
</p>
This library aims to provide the most necessary default values. Stop creating variables all over the code!
## Installation
For **npm**
```shell
npm install default-values
```
For **yarn**
```shell
yarn add default-values
```
## Includes
- empty array: 'EMPTY_ARRAY' or 'E_ARR';
- empty object: 'EMPTY_OBJECT' or 'E_OBJ';
- empty callback: 'EMPTY_CALLBACK' or 'E_CB';
## What's the problem?
We all use some default values. And we can do it as follows:
```typescript
const myValue = someValue ?? {}; // {} - defualt value
// or
myValue ??= []; // [] - default value
// or ...
```
But sometimes we need to have a stable reference to the default value for some tasks. Let's look at the following React component.
```tsx
const ParentComponent = () => {
// ...
const list = listOrNull ?? [];
return <MemoHeavyList list={list} />
}
```
If the variable 'listOrNull' is null, then each time the Parent Component function is called, the variable 'list' will have a new reference to an empty array, which will cause the 'MemoHeavyList' component rerender.
We can solve this problem as follows:
```tsx
import {EMPTY_ARRAY} from 'default-values'
const ParentComponent = () => {
// ...
const list = listOrNull ?? EMPTY_ARRAY; // EMPTY_ARRAY instead of [];
return <MemoHeavyList list={list} />
}
```
For such cases, the library provides various typical variables that can be used as default values.
## 👨💻 Author
[Sergey Rozhkov][AUTHOR]
## 🎯 Was it helpful?
Do you like it and find it helpful? You can help this project in the following way:
- ⭐ Put the star.
- 💡 Suggest your ideas.
- 😉 Open a founded issue.
## 📄 License
Default Values is MIT licensed, as found in the [LICENSE] file.