0.0.2 • Published 7 years ago

@kba/anno-util v0.0.2

Weekly downloads
1
License
ISC
Repository
github
Last release
7 years ago

anno-util

Utility functions

ensureArray(obj, k)

Ensure that obj[k] is an array.

  • If obj[k] is an array, return it.
  • If obj[k] is not defined or null, 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, set obj[k] to v.
  • Otherwise if obj[k] is an array, push v.
  • Otherwise set obj[k] to an array of the old value and v
  • If obj[k] is a single-value array, set obj[k] to this value.

remove(obj, k, v)

Unset a value v in field k of obj.

  • If obj[k] is an array, splice v out of the array
  • Otherwise if obj[k] is equal to v, set obj[k] to an empty array. NOTE Do not delete objk 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']