Capability SDK for Node.js.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
services
.gitignore
LICENSE
README.md
index.js
joi.js
package.json
regex.js

README.md

capability-sdk

Stability: 1 - Experimental

NPM version

Capability SDK for Node.js.

Contents

Installation

npm install capability-sdk

Usage

SDK can be require'd in your Node.js application via require().

const CapabilitySDK = require("capability-sdk");

Tests

No tests at this time.

Documentation

CapabilitySDK.request(capability, options, callback)

  • capability: Capability URI Capability to use.
  • options: Object HTTPS request options, if any. Hostname, port, and authorization header will be overriden by the specified capability.
  • callback: Function (resp) => {} (Default: undefined) Optional callback that will be added as one time listener for the "response" event.
  • Return: http.ClientRequest Node.js HTTP ClientRequest object.

Creates an HTTPS request using the provided capability and HTTP options. For example:

const capability = "cpblty://membrane.amzn-us-east-1.capability.io/#CPBLTY1-aqp9nlT7a22dTGhks8vXMJNabKyIZ_kAES6U87Ljdg73xXiatBzgu5tImuWjFMXicgYb3Vpo0-C6mbm5_uFtAA";
const req = CapabilitySDK.request(capability);
req.on("response", resp =>
    {
        console.log(`STATUS: ${resp.statusCode}`);
        console.log(`HEADERS: ${JSON.stringify(resp.headers)}`);
        resp.setEncoding('utf8');
        resp.on("data", chunk => console.log(`BODY: ${chunk}`));
        resp.on("end", () => console.log("No more data in response."));
    }
);
req.on("error", error =>
    {
        console.error(`problem with request: ${error.message}`);
    }
);
req.write("my data to write");
req.end();

CapabilitySDK.requestReply(capability, options, data, callback)

  • capability: Capability URI Capability to use.
  • options: Object HTTPS request options, if any. Hostname, port, and authorization header will be overriden by the specified capability.
  • data: String (Default: undefined) Request data to send, if any.
  • callback: Function (error, resp) => {}
    • error: Error Error, if any.
    • resp: Object Response object.

Creates an HTTPS request, sends data in the request, awaits JSON response, parses JSON response and/or error and calls callback with error or response. For example:

const capability = "cpblty://membrane.amzn-us-east-1.capability.io/#CPBLTY1-hcghmWpaSIR6mi7Qf1wTm4StWzckTNeYoVZhmyCZ9p5tkjrgpFS1hXOo3nQ60exxooUhX9Oo6JJVuAMlVFiNkg";
const payload = JSON.stringify({hi: "o/"});
CapabilitySDK.requestReply(
    capability,
    {
        headers:
        {
            "Content-Length": Buffer.byteLength(payload, "utf8")
        }
    },
    payload,
    (error, resp) =>
    {
        if (error)
        {
            console.error(error);
        }
        console.log(resp);
    }
);

CapabilitySDK.version

Property containing the capability-sdk module version being used.

Releases

Policy

We follow the semantic versioning policy (semver.org) with a caveat:

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.

caveat: Major version zero is a special case indicating development version that may make incompatible API changes without incrementing MAJOR version.