@solid-primitives/utils
v6.2.3
Published
A bunch of reactive utility types and functions, for building primitives with Solid.js
Downloads
528,769
Readme
@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
# or
pnpm add @solid-primitives/utils
# or
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; // { foo: 123, bar: "baz" }
newObj; // { foo: 123 }
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-mutatingArray.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
- standaloneArray.prototype.filter()
that filters out passed itemfilter
- standaloneArray.prototype.filter()
sort
- non-mutatingArray.prototype.sort()
as a standalone functionsortBy
- Sort an array by object key, or multiple keysmap
- standaloneArray.prototype.map()
functionslice
- standaloneArray.prototype.slice()
functionsplice
- non-mutatingArray.prototype.splice()
as a standalone functionfill
- non-mutatingArray.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