axis-core
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

axis-core

axis-core npm version SemVer compatible

A Node.js library written in TypeScript containing shared behavior for the other packages, e.g. code handling communication and authentication with Axis Communication cameras.

Table of contents


Super simple to use

const connection = new Connection(Protocol.Http, '<ip address>', 80, 'root', '<password>');
const res: Response = await get(connection, '/axis-cgi/param.cgi?action=list&group=Brand.ProdShortName');

console.log('Status code:', res.statusCode);
console.log('Headers:', res.headers);
console.log('Body:', res.body);

Installation

npm install axis-core
# or
yarn add axis-core

API

Connection

The Connection class encapsulates all information needed in order to start communicating with a camera on the network.

/**
 * Class describing a connection to a device.
 */
class Connection {
    /**
     * Gets the protocol to use when creating the connection.
     */
    readonly protocol: Protocol;

    /**
     * Gets the address or hostname of the device.
     */
    readonly address: string;

    /**
     * Gets the port of the device.
     */
    readonly port: number;

    /**
     * Gets the username.
     */
    readonly username: string;

    /**
     * Gets the password.
     */
    readonly password: string;

    /**
     * Gets the options for the connection to the device.
     */
    readonly options?: Options | undefined;

    /**
     * Gets the url.
     */
    get url(): string;
}

enum Protocol {
    /**
     * Hypertext Transfer Protocol (HTTP).
     */
    Http = 0,

    /**
     * HTTP over Transport Layer Security (TLS).
     */
    Https = 1
}

interface Options {
    /**
     * The HTTP or HTTPS agent used when opening the connection.
     */
    agent?: http.Agent | https.Agent;
}

get

The function get sends a HTTP GET request over the network to a camera described by the connection parameter.

The function automatically authenticates with the camera using either Basic access authentication or Digest access authentication, depending on the camera configuration.

const get: (connection: Connection, relativePath: string) => Promise<Response>;

interface Response {
    /**
     * The HTTP status code.
     */
    statusCode: number;

    /**
     * The response headers.
     */
    headers: NodeJS.Dict<string | string[]>;

    /**
     * The response body.
     */
    body: Buffer;
}

Package Sidebar

Install

npm i axis-core

Weekly Downloads

87

Version

1.0.1

License

Apache-2.0

Unpacked Size

40.2 kB

Total Files

38

Last publish

Collaborators

  • fantasticfiasco