Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

appbase-js

Package Overview
Dependencies
Maintainers
5
Versions
118
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appbase-js

Appbase.io streaming client lib for Javascript

  • 4.1.4
  • npm
  • Socket score

Version published
Weekly downloads
4.5K
decreased by-3.6%
Maintainers
5
Weekly downloads
 
Created
Source

Build Status Image

appbase-js

Appbase.io is a data streams library for Node.JS and Javascript (browser UMD build is in the dist/ directory); compatible with elasticsearch.js.

An up-to-date documentation for Node.JS API is available at http://docs.appbase.io/javascript/quickstart.html.

Quick Example

Working code snippets where each step builds on the previous ones.

Step 1: Add some data into the app (uses elasticsearch.js)
// app and authentication configurations
const HOST_URL = "https://scalr.api.appbase.io";
const APPNAME = "createnewtestapp01";
const CREDENTIALS = "RIvfxo1u1:dee8ee52-8b75-4b5b-be4f-9df3c364f59f";

// Add data into our ES "app index"
var Appbase = require("appbase-js");
var appbase = Appbase({
  url: HOST_URL,
  app: APPNAME,
  credentials: CREDENTIALS
});
appbase
  .index({
    type: "product",
    id: "1",
    body: {
      name: "A green door",
      price: 12.5,
      tags: ["home", "green"],
      stores: ["Walmart", "Target"]
    }
  })
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
Step 2: Read the data stream from a particular DB location

Returns continous updates on a JSON document from a particular type.

appbase.getStream(
  {
    type: "product",
    id: "1"
  },
  data => {
    // "data" handler is triggered every time there is a **new** document update.
    console.log(data);
  },
  error => {
    console.log("caught a stream error", error);
  }
);

Note: Existing document value is returned via get() method.

Console Output
{
  _index: "app`248",
  _type: "product",
  _id: "1",
  _version: 4,
  found: true,
  _source: {
    name: "A green door",
    price: 12.5,
    tags: [ "home", "green" ],
    stores: [ "Walmart", "Target" ]
  }
}

getStream() returns an object which has stop & reconnect properties. Check out the getStreamTest.js where we make an update to the document and see any further updates to it via the "data" callback.

Step 3: Apply queries on data streams

Get continuous results by searching across the database streams. A query can be written using the ElasticSearch Query DSL - which supports composing boolean, regex, geo, fuzzy, range queries. Let's stream the results of a simple match_all query on the product type:

appbase
  .searchStream({
    type: "product",
    body: {
      query: {
        match_all: {}
      }
    }
  },
  data => {
    console.log(data);
  },
  error => {
    console.log("caught a stream error", error);
  })
Console Output
{
  took: 1,
  timed_out: false,
  _shards: {
    total: 1,
    successful: 1,
    failed: 0
  },
  hits: {
    total: 4,
    max_score: 1,
    hits: [ [Object], [Object], [Object], [Object] ]
  }
}

searchStream() also returns an object, which can be conveniently listened via the onData callback. Check out the searchStreamTest.js where we make an update that matches the query and see the results in the event stream.

API Reference

For a complete API reference, check out JS API Ref doc.

Global

Appbase(args)

Returns a reference object on which streaming requests can be performed.

args - A set of key/value pairs that configures the ElasticSearch Index     url: "https://scalr.api.appbase.io"     app: App name (equivalent to an ElasticSearch Index)     credentials: A username:password combination used for Basic Auth.

Optionally (and like in the quick example above), url can contain the credentials field in the format: https://<credentials>@scalr.appbase.io.

Reference

reference.getStream(args, onData, onError, onClose)

Get continuous updates on a JSON document with a type and id.Returns an object.

args - A set of key/value pairs that makes the document URL     type: ElasticSearch Type, a string     id: Valid Document ID

reference.searchStream(args, onData, onError, onClose)

Get continuous updates on search queries (fuzzy, boolean, geolocation, range, full-text).Returns an object.

args - A set of key/value pairs that makes the document URL     type: ElasticSearch Type, a string     body: A JSON Query Body (Any query matching the ElasticSearch Query DSL)

Keywords

FAQs

Package last updated on 14 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc