@kba/anno-util
v0.0.2
Published
Utility functions
Downloads
23
Readme
anno-util
Utility functions
ensureArray(obj, k)
add(obj, k, v)
remove(obj, k, v)
numberOf(obj, k)
filter(needle, match)
find(needle, match)
splitIdRepliesRev(str)
collectIds(listOfAnnotations)
ensureArray(obj, k)
Ensure that obj[k]
is an array.
- If
obj[k]
is an array, return it. - If
obj[k]
is not defined ornull
, return an empty array - Otherwise return an array consisting of
[obj[k]]
only
add(obj, k, v)
Add or set obj[k]
to v
- If
obj[k]
is not defined or null, setobj[k]
tov
. - Otherwise if
obj[k]
is an array, pushv
. - Otherwise set
obj[k]
to an array of the old value andv
- If
obj[k]
is a single-value array, setobj[k]
to this value.
remove(obj, k, v)
Unset a value v
in field k
of obj
.
- If
obj[k]
is an array, splicev
out of the array - Otherwise if
obj[k]
is equal tov
, setobj[k]
to an empty array. ** NOTE** Do notdelete
obj[k] to make reactive libs like Angular, Vue or React happy.
numberOf(obj, k)
Get the number of values for field k
of obj
.
filter(needle, match)
Array.filter
that works on non-array single values.
find(needle, match)
Array.find
that works on non-array single values.
splitIdRepliesRev(str)
Split a slug (last URI segment) into annotation ID, reply ID and revision ID.
collectIds(listOfAnnotations)
Get a list of IDs of all annotations in a tree.
collectIds([{id: 123}, {id: 'xyz', hasReply: [{id: 'foo'}]}])
// [123, 'xyz', 'foo']