UNPKG

ts-onvif

Version:

Client to ONVIF devices

96 lines 2.81 kB
"use strict"; /** * Helper functions for representing commonly used ONVIF types in XML format * @author Andrew D.Laptev <a.d.laptev@gmail.com> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.xsany = void 0; exports.itemList = itemList; exports.config = config; exports.multicastConfiguration = multicastConfiguration; exports.streamSetupToBuild = streamSetupToBuild; exports.ptzVectorToBuild = ptzVectorToBuild; exports.stringListToBuild = stringListToBuild; exports.xsany = '__any__'; function itemList(itemList) { return { ...(itemList.simpleItem && { SimpleItem: itemList.simpleItem.map((item) => ({ $: { Name: item.name, Value: item.value }, })), }), ...(itemList.elementItem && { ElementItem: itemList.elementItem.map((elementItem) => { const anyXml = (elementItem[exports.xsany] ?? {}); return { ...anyXml, $: { Name: elementItem.name, ...anyXml?.$ }, }; }), }), ...(itemList.extension && { Extension: itemList.extension }), }; } function config(config) { return { $: { Name: config.name, Type: config.type, }, Parameters: itemList(config.parameters), }; } function multicastConfiguration(multicast) { return { Address: { Type: multicast.address.type, ...(multicast.address.IPv4Address && { IPv4Address: multicast.address.IPv4Address }), ...(multicast.address.IPv6Address && { IPv6Address: multicast.address.IPv6Address }), }, Port: multicast.port, TTL: multicast.TTL, AutoStart: multicast.autoStart, }; } function streamSetupToBuild({ stream, transport }) { return { Stream: stream, Transport: { Protocol: transport.protocol, ...(transport.tunnel && { Tunnel: { Protocol: transport.tunnel.protocol, }, }), }, }; } function ptzVectorToBuild(vector) { return { ...(vector.panTilt && { PanTilt: { $: { x: vector.panTilt.x, y: vector.panTilt.y, }, }, }), ...(vector.zoom && { Zoom: { $: { x: vector.zoom.x, }, }, }), }; } /** * ONVIF StringList / StringAttrList values are encoded as space-separated strings in XML attributes. */ function stringListToBuild(list) { if (!list?.length) { return undefined; } return list.join(' '); } //# sourceMappingURL=toOnvifXMLSchemaObject.js.map