UNPKG

default-values

Version:
77 lines (64 loc) 2.5 kB
[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.