Package Exports
- default-values
- default-values/dist/commonjs/index.js
- default-values/dist/module/index.js
- default-values/src/index.ts
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (default-values) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🫡 Default Values 🫡
This library aims to provide the most necessary default values. Stop creating variables all over the code!
Installation
For npm
npm install default-values
For yarn
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:
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.
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:
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
🎯 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.