Configuration options for state subscriptions.

These options allow you to transform and filter state updates before they reach your callback. Map functions transform the data, while filter functions determine whether the callback should be invoked at all.

Example

const options: StateOptions = {
// Extract and transform specific parts of state
map: [
(state) => state.users,
(users) => users.map(u => ({ id: u.id, name: u.name }))
],
// Only notify when conditions are met
filter: [
(users) => users.length > 0,
(users) => users.some(u => u.name === 'Admin')
]
};

Hierarchy

Properties

Properties

filter?: ((state: any) => boolean)[]

List of predicate functions that must all return true for updates to be emitted.

Filters are evaluated after map transformations. If any filter returns false, the callback is not invoked for that state change. Useful for preventing unnecessary updates. Functions are bound to the web component instance.

Example

filter: [
(state) => state !== null, // Ignore null states
(state) => state.isReady, // Only when ready
(state) => state.items.length > 0 // Only when has items
]
map?: ((state: any) => any)[]

List of transformation functions applied sequentially to the state.

Each function receives the output of the previous function (or the raw state for the first function). Use this to extract, transform, or compute derived values from the state. Functions are bound to the web component instance.

Example

map: [
(state) => state.orders, // Extract orders
(orders) => orders.filter(o => o.pending), // Filter to pending only
(pending) => pending.length // Get count
]
// Callback receives: number (count of pending orders)