Notoriously Psychedelic Modules

    node-datahub

    4.5.1 • Public • Published

    node-datahub

    FlightStats data hub request-promise client.

    installation

    npm install node-datahub --save

    usage

    Create a Datahub instance and pass in an object with your data hub url.

    For more information about the FlightStats data hub : https://github.com/flightstats/hub

    var Datahub = require('node-datahub');
    
    var datahub = new Datahub({
        url: <YOUR_DATAHUB_URL>
    });
    
    datahub.getChannels()
        .then(function (result) {
            // ...
        });
    

    tests

    Run the tests

    npm test

    HubWatcher & HubForwarder

    You can use an Express server to easily interact with new hub items and to forward incoming requests to a hub channel. These classes require Express but extending them to support Koa or other servers wouldn't be too difficult.

    Config

    import { HubWatcher, HubForwarder } from 'node-datahub';
    import express from 'express';
    
    const expressApp = express();
    
    const config = {
     hubHost: {
       production: 'http://hub.prod',
       staging: 'http://hub.staging',
       test: 'http://hub.dev',
       development: 'http://hub.dev',
     },
     appHost: {
       production: 'http://my-app.prod:3000',
       staging: 'http://my-app.staging:3000',
       test: 'http://localhost:3001',
       development: 'http://localhost:3000',
     },
     hubParallelCalls: 2,
     webhookName: 'my_webhook'
    };
    

    HubWatcher

    Use the HubWatcher to receive process new hub channel items.

    const watcher = new HubWatcher(expressApp, config);
    
    const doSomething = (hubChannelItem, hubItemURI) => {
      console.log('New hub item', hubChannelItem, 'exists at', hubItemURI);
    };
    
    // Process each new hub channel item
    watcher.watchChannel('some-channel', doSomething);
    
    

    HubForwarder

    Use the HubForwarder to receive an HTTP post to an Express route and then post the transformed request to a hub channel.

    const forwarder = new HubForwarder(expressApp, config);
    
    const xfm = (req) => {
      // See http://expressjs.com/en/api.html#req
      console.log('Transforming request to', req.originalUrl, 'Headers:', req.headers, 'Body:', req.body);
      return req.body;
    };
    
    // Forward post requests from a route to a channel running an optional transformer.
    forwarder.forwardToChannel('/some/route', 'some-channel', xfm);
    
    

    Install

    npm i node-datahub

    DownloadsWeekly Downloads

    116

    Version

    4.5.1

    License

    ISC

    Unpacked Size

    1.28 MB

    Total Files

    55

    Last publish

    Collaborators

    • chriswood
    • flightstats