5.5.2 • Published 2 years ago

@compassdigital/provider v5.5.2

Weekly downloads
475
License
ISC
Repository
github
Last release
2 years ago

Compass Digital Data Provider

An easy way to get started building data providers for Compass Digital. Provides an easy interface for creating methods that will be called via JSON-RPC 2.0.

Includes a built-in HTTP server and AWS Lambda handler.

Requirements

  • node.js 8.10+

Installation

npm install @compassdigital/provider --save

Usage

var Provider = require("@compassdigital/provider");

var provider = new Provider({type: "menu"});

// Handle the 'get_menu' method
provider.on("get_menu", function(req, callback)
{
    // Do something to get the result
    your_function(req, function(err, res)
    {
        callback(err, res);
    });
});

// Convenience method: respond to several methods using the same handler
provider.on(["get_menu", "get_menu_today"], () => {...});

Logging

You can configure logging behaviour by providing logging options to the constructor.

const provider = new Provider({
	type: "menu"
	logging: {
		local_only: false,
		sentry: {
			dsn: SENTRY_DSN,
			environment: STAGE,
		},
	},
});

For full options, view documentation for the logging package.

Context

Sometimes your handler needs to know the context of the method call e.g. the user's id, location, etc. This is accessible via promises from this.context().

For example:

provider.on('get_menu', function (req, callback) {
	// Get the user's id
	this.context()
		.user()
		.then(function (user_data) {
			var user_id = user_data.id;

			callback(err, { message: 'Your user id was ' + user_id });
		});
});

HTTP Server

// Start on port 3000
provider.start(3000);

// Stop server
provider.stop();

AWS Lambda Handler

Create lambda.js ending with:

var provider = (module.exports = provider.lambda); //...

Configure a Lambda function with the setting Handler:

lambda.handler

Testing

KEY_ARN="SOME PRIVATE AWS KMS KEY ARN" node test
5.5.2

2 years ago

5.5.1

2 years ago

5.5.0

2 years ago

5.4.0

2 years ago

5.3.0

2 years ago

5.2.3

2 years ago

5.1.4

2 years ago

5.1.3

2 years ago

5.1.2

2 years ago

5.1.1

2 years ago

5.1.0

2 years ago

5.2.2

2 years ago

5.2.1

2 years ago

5.2.0

2 years ago

5.2.0-beta.0

2 years ago

5.0.2

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

4.2.0

3 years ago

4.1.3

3 years ago

4.1.2

3 years ago

4.1.1

3 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.1.0

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.9

4 years ago

2.0.8

4 years ago

2.0.7

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.3

4 years ago

2.0.4

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.2.14

5 years ago

1.2.13

5 years ago

1.2.12

5 years ago

1.2.11

5 years ago

1.2.10

5 years ago

1.2.9

5 years ago

1.2.8

5 years ago

1.2.7

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago

0.8.3

5 years ago

0.8.2

5 years ago

0.8.1

5 years ago

0.8.0

6 years ago

0.7.0

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.1

6 years ago

0.5.0

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.5

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago