@solid-primitives/utils
Solid Primitives Utilities is a support and helper package for a number of primitives in our library. Please free to augment or centralize useful utilities and methods in this package for sharing.
Installation
npm install @solid-primitives/utils
pnpm add @solid-primitives/utils
yarn add @solid-primitives/utils
Immutable helpers
Functional programming helpers for making non-mutating changes to data. Keeping it immutable. Useful for updating signals.
import { pick } from "@solid-primitives/utils/immutable";
const original = { foo: 123, bar: "baz" };
const newObj = pick(original, "foo");
original;
newObj;
Use it for changing signals:
import { push, update } from "@solid-primitives/utils/immutable";
const [list, setList] = createSignal([1, 2, 3]);
setList(p => push(p, 4));
const [user, setUser] = createSignal({
name: "John",
street: { name: "Kingston Cei", number: 24 },
});
setUser(p => update(p, "street", "number", 64));
List of functions:
Copying
shallowArrayCopy
- make shallow copy of an arrayshallowObjectCopy
- make shallow copy of an objectshallowCopy
- make shallow copy of an array/objectwithArrayCopy
- apply mutations to the an array without changing the originalwithObjectCopy
- apply mutations to the an object without changing the originalwithCopy
- apply mutations to the an object/array without changing the original
Array
push
- non-mutating Array.prototype.push()
drop
- non-mutating function that drops n items from the array startdropRight
- non-mutating function that drops n items from the array endfilterOut
- standalone Array.prototype.filter()
that filters out passed itemfilter
- standalone Array.prototype.filter()
sort
- non-mutating Array.prototype.sort()
as a standalone functionsortBy
- Sort an array by object key, or multiple keysmap
- standalone Array.prototype.map()
functionslice
- standalone Array.prototype.slice()
functionsplice
- non-mutating Array.prototype.splice()
as a standalone functionfill
- non-mutating Array.prototype.fill()
as a standalone functionconcat
- Creates a new array concatenating array with any additional arrays and/or values.remove
- Remove item from arrayremoveItems
- Remove multiple items from an arrayflatten
- Flattens a nested array into a one-level arrayfilterInstance
- Flattens a nested array into a one-level arrayfilterOutInstance
- Flattens a nested array into a one-level array
Object
omit
- Create a new subset object without the provided keyspick
- Create a new subset object with only the provided keyssplit
- Split object into multiple subset objects.merge
- Merges multiple objects into a single one.
Object/Array
get
- Get a single property value of an object by specifying a path to it.update
- Change single value in an object by key, or series of recursing keys.
Number
add
- a + b + c + ...
(works for numbers or strings)substract
- a - b - c - ...
multiply
- a * b * c * ...
divide
- a / b / c / ...
power
- a ** b ** c ** ...
clamp
- clamp a number value between two other values
Changelog
See CHANGELOG.md