UNPKG

xiot-core-spec-ts

Version:
39 lines (38 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PropertyDefinitionWithLifecycleCodec = void 0; const Lifecycle_1 = require("../../../typedef/lifecycle/Lifecycle"); const ObjectWithLifecycle_1 = require("../../../typedef/lifecycle/ObjectWithLifecycle"); const PropertyDefinitionCodec_1 = require("../../definition/PropertyDefinitionCodec"); class PropertyDefinitionWithLifecycleCodec { static encode(obj) { return { lifecycle: obj.lifecycle.toString(), definition: PropertyDefinitionCodec_1.PropertyDefinitionCodec.encode(obj.value) }; } static encodeArray(resource) { const arr = []; resource.forEach(item => { arr.push(this.encode(item)); }); return arr; } static decode(o) { const lifecycle = (0, Lifecycle_1.LifeCycleFromString)(o.lifecycle || ''); const definition = o.definition; return new ObjectWithLifecycle_1.ObjectWithLifecycle(lifecycle, PropertyDefinitionCodec_1.PropertyDefinitionCodec.decode(definition)); } static decodeArray(arr) { const list = []; if (arr === null || arr === void 0 ? void 0 : arr.length) { for (const o of arr) { if (typeof o === 'object') { list.push(this.decode(o)); } } } return list; } } exports.PropertyDefinitionWithLifecycleCodec = PropertyDefinitionWithLifecycleCodec;