JSPM

  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q83987F
  • License MIT

DVM utilities built on top of applesauce

Package Exports

  • applesauce-dvm
  • applesauce-dvm/blueprints
  • applesauce-dvm/blueprints/index
  • applesauce-dvm/blueprints/machine-request
  • applesauce-dvm/blueprints/machine-result
  • applesauce-dvm/blueprints/machine-status
  • applesauce-dvm/helpers
  • applesauce-dvm/helpers/index
  • applesauce-dvm/helpers/kinds
  • applesauce-dvm/helpers/request
  • applesauce-dvm/helpers/status
  • applesauce-dvm/operations

Readme

Applesauce DVM

Helpers and blueprints for NIP-90 data vending machines.

Installation

npm install applesauce-dvm

Usage

import { DVMClient } from "applesauce-dvm";
import { RelayPool, onlyEvents } from "applesauce-relay";
import { EventFactory } from "applesauce-factory";
import { SimpleSigner } from "applesauce-signers/signers";

// Create a relay pool for connections
const pool = new RelayPool();

// Create an event factory for signing and creating events
const signer = new SimpleSigner();
const factory = new EventFactory({ signer });

// Create a DVM client
const client = new DVMClient(
  factory,
  ["wss://relay.example.com/"],
  // A publish method that publishes to the relays
  async (relays, event) => {
    await lastValueFrom(pool.event(relays, event));
  },
  // A subscribe method that subscribes to the relays
  (relays, filters) => {
    return pool.req(relays, filters).pipe(onlyEvents());
  },
);

// Make a kind 5002 translation request
client.translate("Hello, world!").subscribe((event) => {
  console.log(event);
});