axis-core
v1.0.1
Published
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.
Downloads
634
Maintainers
Readme
axis-core
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;
}