AppleSauce
    Preparing search index...

    Module applesauce-core

    applesauce-core

    Applesauce is a collection of utilities for building reactive nostr applications. The core package provides protocol-level functionality including an in-memory event database, generic event utilities, and basic reactive models.

    • Helpers: Core utility methods for parsing and extracting data from nostr events
    • EventStore: In-memory database for storing and subscribing to nostr events
    • Helpers: Core protocol-level utility methods for working with events, tags, filters, and pointers
    • Models: Generic models for common nostr data patterns (profiles, reactions, zaps, etc.)
    • Observable: RxJS utilities for reactive programming

    Note: For NIP-specific helpers and models (NIP-10 threading, NIP-22 comments, NIP-53 streams, etc.), see the applesauce-common package.

    For detailed documentation and guides, visit:

    import { EventStore } from "applesauce-core";
    import { ProfileModel, TimelineModel } from "applesauce-core/models";
    import { Relay } from "nostr-tools/relay";

    // Create a single EventStore instance for your app
    const eventStore = new EventStore();

    // Use any nostr library for relay connections (nostr-tools, ndk, nostrify, etc...)
    const relay = await Relay.connect("wss://relay.example.com");

    // Subscribe to events and add them to the store
    const sub = relay.subscribe([{ authors: ["3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"] }], {
    onevent(event) {
    eventStore.add(event);
    },
    });

    // Subscribe to profile changes using ProfileModel
    const profile = eventStore.model(ProfileModel, "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d");

    profile.subscribe((parsed) => {
    if (parsed) console.log(parsed);
    });

    // Subscribe to a timeline of events
    const timeline = eventStore.model(TimelineModel, { kinds: [1] });

    timeline.subscribe((events) => {
    console.log(events);
    });

    Namespaces

    Helpers
    Models
    Operations

    Classes

    AsyncDeleteManager
    AsyncEventStore
    BehaviorSubject
    DeleteManager
    EventFactory
    EventMemory
    EventModels
    EventStore
    ExpirationManager
    Observable
    ReplaySubject
    Subject
    TimeoutError

    Interfaces

    ClientPointerContext
    EmojiContext
    EventFactoryClient
    EventFactoryContext
    EventSigner
    EventSignerContext
    IAsyncDeleteManager
    IAsyncEventDatabase
    IAsyncEventStore
    IAsyncEventStoreActions
    IAsyncEventStoreRead
    IAsyncEventStoreReadAdvanced
    IDeleteManager
    IEventClaims
    IEventDatabase
    IEventFactory
    IEventMemory
    IEventModelMixin
    IEventStore
    IEventStoreActions
    IEventStoreRead
    IEventStoreReadAdvanced
    IEventStoreStreams
    IEventSubscriptions
    IExpirationManager
    IMissingEventLoader
    RelayHintContext

    Type Aliases

    AsyncEventStoreOptions
    DeleteEventNotification
    Emoji
    EventBlueprint
    EventFactoryTemplate
    EventOperation
    EventStoreOptions
    Model
    ModelConstructor
    ModelEventStore
    Operation
    TagOperation

    Variables

    watchTimelineUpdates

    Functions

    blueprint
    buildEvent
    combineLatest
    createEvent
    defined
    filterDuplicateEvents
    filterOptimalRelays
    firstValueFrom
    getObservableValue
    ignoreBlacklistedRelays
    includeFallbackRelays
    includeMailboxes
    lastValueFrom
    mapEventsToStore
    mapEventsToTimeline
    merge
    modifyEvent
    simpleTimeout
    watchEventsUpdates
    watchEventUpdates
    withImmediateValueOrDefault