0.0.21 • Published 4 years ago
imez v0.0.21
imez
Small, fast, easy to use immutable helper
push(value1, value2, value3, ...)
import imez from "imez";
imez([1, 2, 3])
.push(4)
.value(); // => [1, 2, 3, 4]
pop()
import imez from "imez";
imez([1, 2, 3])
.pop()
.value(); // => [1, 2]
unshift(value1, value2, value3, ...)
import imez from "imez";
imez([1, 2, 3])
.unshift(4)
.value(); // => [4, 1, 2, 3]
splice(index, count, ...newItems)
import imez from "imez";
imez([1, 2, 3])
.splice(0, 2, 4, 5)
.value(); // => [3, 4, 5]
shift()
import imez from "imez";
imez([1, 2, 3])
.shift()
.value(); // => [2, 3]
set(prop, value)
import imez from "imez";
imez({})
.set("name", "Peter")
.value(); // => { name: 'Peter' }
set(prop, modifier)
import imez from "imez";
imez({ counter: 1 })
.set("counter", current => current + 1)
.value(); // => { counter: 2 }
prop(propLevel1, propLevel2, propLevel3, ...)
import imez from "imez";
imez({})
.prop("level1", "level2")
.set("value", 1)
.value(); // => { level1: { level2: { value: 1 } } }
Batch processing
import imez from "imez";
imez({
value1: 1,
value2: 2
})
.batch([
x => x.set("value1", 2),
x => x.set("value2", 3),
x => x.set("value3", 4)
])
.value(); // { value1: 2, value2: 3 }
Complexity updating
import imez from "imez";
imez({
name: "Peter",
age: 30,
birthday: "1989-12-01",
wife: { name: "Kate", age: 30 },
children: [
{ name: "Tom", age: 5 },
{ name: "Mary", age: 1 }
]
})
.set("name", "Peter Parker")
.add("birthday", { years: 1 })
.update("children", $children =>
$children
.update(0, $tom => $tom.set("age", current => current + 1))
.update(1, $mary => $mary.add("age", 2))
)
.update("wife", $wife => $wife.keep("name"))
.value();
/*
{
name: "Peter Parker",
age: 30,
birthday: new Date("1990-12-01"),
wife: { name: "Kate" },
children: [
{ name: "Tom", age: 6 },
{ name: "Mary", age: 3 }
]
}
*/
Shorthands
import imez from "imez";
const state = { name: "Peter" };
const updater = x => x.set("name", "Peter Parker");
imez(state, updater); // { name: 'Peter Parker' }
const reducer = imez(updater);
reducer(state); // { name: 'Peter Parker' }
0.0.20
4 years ago
0.0.21
4 years ago
0.0.18
4 years ago
0.0.19
4 years ago
0.0.17
4 years ago
0.0.16
4 years ago
0.0.15
4 years ago
0.0.14
4 years ago
0.0.11
4 years ago
0.0.12
4 years ago
0.0.13
4 years ago
0.0.10
4 years ago
0.0.9
4 years ago
0.0.8
4 years ago
0.0.7
4 years ago
0.0.5
4 years ago
0.0.6
4 years ago
0.0.4
4 years ago
0.0.3
4 years ago
0.0.2
4 years ago
0.0.1
4 years ago