xiot-core-spec-ts
Version:
XIOT Specification Codec
26 lines (25 loc) • 1.25 kB
JavaScript
;
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;