UNPKG

xiot-core-spec-ts

Version:
26 lines (25 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeviceInstanceCodec = void 0; const Spec_1 = require("../../typedef/constant/Spec"); const DeviceInstance_1 = require("../../typedef/instance/DeviceInstance"); const DescriptionCodec_1 = require("../definition/DescriptionCodec"); const ServiceCodec_1 = require("./ServiceCodec"); const UrnType_1 = require("../../typedef/definition/urn/UrnType"); const Urn_1 = require("../../typedef/definition/urn/Urn"); class DeviceInstanceCodec { static decode(o) { const type = new Urn_1.Urn([UrnType_1.UrnType.DEVICE, UrnType_1.UrnType.GROUP], o[Spec_1.Spec.TYPE]); const description = DescriptionCodec_1.DescriptionCodec.decode(o[Spec_1.Spec.DESCRIPTION]); const services = ServiceCodec_1.ServiceCodec.decodeArray(o[Spec_1.Spec.SERVICES]); return new DeviceInstance_1.DeviceInstance(type, description, services); } static encode(device) { return { type: device.type.toString(), description: DescriptionCodec_1.DescriptionCodec.encode(device.description), services: ServiceCodec_1.ServiceCodec.encodeArray(device.services) }; } } exports.DeviceInstanceCodec = DeviceInstanceCodec;