default-value-to
v1.0.1
Published
A tiny TypeScript utility to safely provide default values for optional chaining.
Maintainers
Readme
default-value-to
A tiny TypeScript utility to safely transform undefined or null values into predictable defaults — designed to simplify unit testing and improve branch coverage.
Why This Package?
When mapping API data into strongly typed objects, source data often returns:
string | undefinednumber | undefined
To make values safe, we usually write:
obj?.prop ?? ""or
obj?.count ?? 0However, in unit tests, using optional chaining (?.) creates additional branches that must be covered.
For example:
obj?.prop ?? ""To achieve full coverage, you must mock:
objundefinedobjdefined butpropundefinedobj.propdefined
That increases unnecessary test complexity.
The Solution
default-value-to centralizes that nullish handling into a single utility:
defaultTo(obj?.prop, "")Now your unit tests only need to test:
- value defined
- value undefined
No deep object mocking required.
Installation
npm install default-value-toUsage
import { defaultTo } from "default-value-to";
type User = {
name?: string;
age?: number;
};
const user = undefined;
const name = defaultTo(user?.name, "");
const age = defaultTo(user?.age, 0);Resulting Types
name: string
age: numberNever undefined.
API
defaultTo<T>(value: T, defaultValue: NonNullable<T>): NonNullable<T>
Returns:
valueif notnullorundefineddefaultValueotherwise
Example: Mapping API Data
Before:
const mapped = {
name: apiUser?.name ?? "",
age: apiUser?.age ?? 0
};After:
const mapped = {
name: defaultTo(apiUser?.name, ""),
age: defaultTo(apiUser?.age, 0)
};Cleaner.
More readable.
Less test boilerplate.
Designed For
- React projects
- TypeScript projects
- Clean unit test coverage
- API data transformation layers
License
MIT
