A bunch of reactive utility types and functions, for building primitives with Solid.js
npm install @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.
``bash`
npm install @solid-primitives/utilsor
pnpm add @solid-primitives/utilsor
yarn add @solid-primitives/utils
Functional programming helpers for making non-mutating changes to data. Keeping it immutable. Useful for updating signals.
`ts
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:
`ts
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));
`
- shallowArrayCopy - make shallow copy of an array
- shallowObjectCopy - make shallow copy of an object
- shallowCopy - make shallow copy of an array/object
- withArrayCopy - apply mutations to the an array without changing the original
- withObjectCopy - apply mutations to the an object without changing the original
- withCopy - apply mutations to the an object/array without changing the original
- 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
- omit - Create a new subset object without the provided keys
- pick - Create a new subset object with only the provided keys
- split - Split object into multiple subset objects.
- merge - Merges multiple objects into a single one.
- 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.
- 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
-
See CHANGELOG.md