xiot-core-spec-ts
Version:
XIOT Specification Codec
39 lines (38 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeviceInstanceWithLifecycleCodec = void 0;
const Lifecycle_1 = require("../../../typedef/lifecycle/Lifecycle");
const ObjectWithLifecycle_1 = require("../../../typedef/lifecycle/ObjectWithLifecycle");
const DeviceInstanceCodec_1 = require("../../instance/DeviceInstanceCodec");
class DeviceInstanceWithLifecycleCodec {
static encode(obj) {
return {
lifecycle: obj.lifecycle.toString(),
definition: DeviceInstanceCodec_1.DeviceInstanceCodec.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, DeviceInstanceCodec_1.DeviceInstanceCodec.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.DeviceInstanceWithLifecycleCodec = DeviceInstanceWithLifecycleCodec;