@oada/list-lib
TypeScript icon, indicating that this package has built-in type declarations

5.0.4 • Public • Published

@oada/list-lib

npm Downloads/week code style: prettier License

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'

// See type definitions for all supported options
const watch = new ListWatch({
    path: '/bookmarks/foo/list',
    conn: /* an @oada/client instance */,
})

// Uses async generators
const itemsGenerator = await watch.on(ChangeType.ItemAdded);
for await (const item of itemsGenerator) {
    console.log(item, 'New item added');
}

// Can use callbacks instead
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.

Readme

Keywords

none

Package Sidebar

Install

npm i @oada/list-lib

Weekly Downloads

90

Version

5.0.4

License

Apache-2.0

Unpacked Size

117 kB

Total Files

35

Last publish

Collaborators

  • sanoel
  • serviopalacios
  • aultac
  • awlayton
  • oadao
  • tarakawa
  • cyrusbowman
  • abalmos