UNPKG

xiot-core-spec-ts

Version:
37 lines (36 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Spec_1 = require("../../typedef/constant/Spec"); const EventDefinition_1 = require("../../typedef/definition/EventDefinition"); const EventType_1 = require("../../typedef/definition/urn/EventType"); const ArgumentDefinitionCodec_1 = require("./ArgumentDefinitionCodec"); const DescriptionCodec_1 = require("./DescriptionCodec"); class EventDefinitionCodec { static decodeArray(list) { const array = []; list.forEach(o => { array.push(EventDefinitionCodec.decode(o)); }); return array; } static decode(o) { const type = new EventType_1.EventType(o[Spec_1.Spec.TYPE]); const description = DescriptionCodec_1.DescriptionCodec.decode(o[Spec_1.Spec.DESCRIPTION]); const list = ArgumentDefinitionCodec_1.ArgumentDefinitionCodec.decodeArray(o[Spec_1.Spec.ARGUMENTS]); return new EventDefinition_1.EventDefinition(type, description, list); } static encode(def) { const o = { type: def.type.toString(), description: DescriptionCodec_1.DescriptionCodec.encode(def.description), }; if (def.arguments.length > 0) { o[Spec_1.Spec.ARGUMENTS] = ArgumentDefinitionCodec_1.ArgumentDefinitionCodec.encodeArray(def.arguments); } return o; } static encodeArray(list) { return list.map(x => EventDefinitionCodec.encode(x)); } } exports.EventDefinitionCodec = EventDefinitionCodec;