4.5.1 • Published 4 years ago

node-datahub v4.5.1

Weekly downloads
16
License
ISC
Repository
github
Last release
4 years ago

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);
4.5.1

4 years ago

4.5.0

4 years ago

4.4.5

6 years ago

4.4.4-pre

6 years ago

4.4.3

6 years ago

4.4.2

6 years ago

4.4.1

6 years ago

4.4.0

6 years ago

4.3.10

6 years ago

4.3.9

6 years ago

4.3.8

6 years ago

4.3.7

6 years ago

4.3.6

6 years ago

4.3.5

6 years ago

4.3.4

6 years ago

4.3.3

6 years ago

4.3.2

6 years ago

4.3.1

6 years ago

4.3.0

6 years ago

4.2.1

7 years ago

4.2.0

7 years ago

4.1.0

7 years ago

4.0.0

7 years ago

3.5.1

7 years ago

3.5.0

7 years ago

3.4.5

7 years ago

3.4.4

7 years ago

3.4.3

7 years ago

3.4.2

7 years ago

3.4.1

7 years ago

3.4.0

8 years ago

3.3.0

8 years ago

3.2.6

8 years ago

3.2.5

8 years ago

3.2.4

8 years ago

3.2.3

8 years ago

3.2.2

8 years ago

3.2.1

8 years ago

3.2.0

8 years ago

3.1.2

8 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.0.2

8 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.10

9 years ago

1.0.9

9 years ago

1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago