@oada/list-lib
A library for handling lists of items in OADA for TypeScript and JavaScript.
The library takes callbacks for events like
new items, removed items, and changed items.
It tried to abstract away as much of the complexity as is reasonable,
and tracks which items in the list are new, old, etc.
For detailed options, see the Options
type in src/Options.ts
Basic Usage Example
import { ChangeType, ListWatch } from '@oada/list-lib'
const watch = new ListWatch({
path: '/bookmarks/foo/list',
conn: ,
})
const itemsGenerator = await watch.on(ChangeType.ItemAdded);
for await (const item of itemsGenerator) {
console.log(item, 'New item added');
}
watch.on(ChangeType.ItemAdded, ({ item, id }) => { console.log(item, 'New list item') });
watch.on(ChangeType.ItemRemoved, ({ id }) => { console.log(item, 'Item removed') },
Item types
While the ListWatch
class is generic,
you will typically not want to specify a type parameter in your code.
If you supply an assertItem
function,
the type of Item
will be inferred from it.
This will help minimize runtime errors
(assuming your type assertion is good),
and in the case of no assertion the library defaults Item
to unknown
.
Rechecking items
In more advanced use-cases, you might want to prompt the library to re-check
all the items in the list.
For this reason, ListWatch
has a forceRecheck
method.
Calling this will cause the library to check all the current list items.