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

dashboards

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dashboards

Simple and pluggable dashboards

  • 0.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
decreased by-38.46%
Maintainers
1
Weekly downloads
 
Created
Source

dashboards

Simple and pluggable dashboards.

var Dashboards = require('dashboards');

var dashboards = new Dashboards()
  .use(subscriptions('stripe-key'))
  .use(charges('stripe-key'))
  .use(support('helpscout-key'))
  .use(pipe('active tickets', geckoboard('widget-id').number)
  .run();

It's easy to get started: there's already plugins for Stripe, Helpscout, AWS, and others.

It separates data and views: make your own decisions about what to put on your dashboards.

It's dashboard agnostic: so you can use Geckoboard, Ducksboard, Leftronic, or your own internal dashboards.

It pushes you in the right direction: use Segment.io's dashboards expertise to avoid the wrong metrics.

Installation

$ npm install dashboards

How does it work?

Dashboards is super simple. You write a plugin that puts data in, and you write plugins that send data to a dashboard. Plugins that need data defer execution until that data is available.

A plugin can learn about how much you're making on Stripe, and make that data available:

var Stripe = require('stripe');

function charges (key) {
  var stripe = Stripe(key);
  return function (data, callback) {
    stripe.charges.list(function (err, charges)) {
        data['charges'] = charges.reduce(function (memo, charge) {
          return memo + (charge.amount / 100);
        }, 0);
        callback();
    });
  };
}

and another plugin can push the charge data to a geckoboard:

var geckoboard = require('geckobard')('api-key');

function ready (data) {
  return data.charges != null;
}

function send (data, callback) {
  geckoboard('widget-id').number(data.charges, callback);
}

and now you have your first dashboard:

var dashboards = new Dashboards()
  .use(charges('stripe-key'))
  .when(ready, send)
  .run();

but wait! waiting for data and piping it to a dashboard gets even easier:

var dashboards = new Dashboards()
  .use(charges('stripe-key'))
  .use(pipe('charges', geckoboard('widget-id').number)
  .run();

Plugins

Existing plugins for dashboards can tell you:

API

new Dashboards()

Create a new Dashboards instance.

#use(plugin)

Add a dashboard plugin which is either a function or an object that contains a fn plugin and a ready function, like so:

{ ready: hasCharges, fn: send }
#when(ready, fn)

Execute the dashboard plugin fn when the ready function returns true. This allows you to wait until you have a piece of data before sending it to a dashboard. Read more about ready functions in parallel-ware.

#run(callback)

Run the dashboard plugins.

License

WWWWWW||WWWWWW
 W W W||W W W
      ||
    ( OO )__________
     /  |           \
    /o o|    MIT     \
    \___/||_||__||_|| *
         || ||  || ||
        _||_|| _||_||
       (__|__|(__|__|

Keywords

FAQs

Package last updated on 07 Mar 2014

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