Skip to content

capabilityio/capability-sdk-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

capability-sdk

Stability: 0 - Deprecated

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.