variable deviceInfo

The device info resource, /ISAPI/System/deviceInfo.

model, firmwareVersion and deviceType are always present; the rest are left out when the device does not send them. Parsing throws an Error when a required field is missing and an IsapiError on a failing <ResponseStatus>.

Examples

Read through a stubbed fetch

import { assertEquals } from "@std/assert";
import { resolvesNext, spy } from "@std/testing/mock";
import { request } from "../request.ts";
import { deviceInfo } from "./device-info.ts";

const fetch = spy(resolvesNext([
  new Response(
    "<DeviceInfo><model>DS-2CD2043G2-I</model>" +
      "<firmwareVersion>V5.7.3</firmwareVersion><deviceType>IPCamera</deviceType></DeviceInfo>",
  ),
]));

const info = await request({
  baseUrl: "http://192.0.2.21",
  username: "admin",
  password: "hunter2",
  fetch,
}, deviceInfo);

assertEquals(info.deviceType, "IPCamera");
assertEquals(info.serialNumber, undefined);
assertEquals(fetch.calls[0].args[0], "http://192.0.2.21/ISAPI/System/deviceInfo");

Type

Usage

import { deviceInfo } from ".";