debitoor / dot-prop-immutable

Immutable version of dot-prop with some extensions
571 stars 39 forks source link

Add increment() and decrement() #17

Open cwayfinder opened 6 years ago

cwayfinder commented 6 years ago

This is a feature request. There is toggle() for a boolean value and I would like to have similar stuff for numbers.

Example: the following code

const deadCount = state.players[playerIndex].commander.deadCount + 1;
state = dotProp.merge(state, `players.${playerIndex}.commander`, { deadCount });

could be replaced with

state = dotProp.increment(state, `players.${playerIndex}.commander.deadCount`);

I used merge instead of set because the property deadCount might be not initialized. In this case, we can treat it as 0.

Flamenco commented 6 years ago

How about an optional parameter for the delta, with default of 1

state = dotProp.increment(state, `players.${playerIndex}.commander.deadCount`); // default is 1
state = dotProp.increment(state, `players.${playerIndex}.commander.deadCount`, 10);
cwayfinder commented 6 years ago

Then the naming should be increase and decrease.