Socket
Socket
Sign inDemoInstall

dashboards

Package Overview
Dependencies
5
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    dashboards

Simple and pluggable dashboards


Version published
Weekly downloads
4
decreased by-20%
Maintainers
1
Install size
57.1 kB
Created
Weekly downloads
 

Readme

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

Last updated on 07 Mar 2014

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc