UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

28 lines 1.26 kB
import { __decorate, __metadata } from "tslib"; import { SerializableMapMember, SerializableMember, SerializableObject } from '../decorators'; import { DataObject } from './DataObject'; let ActuatorProperty = class ActuatorProperty {}; __decorate([SerializableMember(), __metadata("design:type", String)], ActuatorProperty.prototype, "name", void 0); __decorate([SerializableMember(), __metadata("design:type", Function)], ActuatorProperty.prototype, "callback", void 0); ActuatorProperty = __decorate([SerializableObject()], ActuatorProperty); export { ActuatorProperty }; /** * An actuator object is a spatial object with actuator properties * that can trigger a state change. */ let ActuatorObject = class ActuatorObject extends DataObject { constructor() { super(...arguments); this.properties = new Map(); } invoke(method, ...args) { const property = this.properties.get(method); if (!property) { return Promise.resolve(undefined); } return property.callback(args); } }; __decorate([SerializableMapMember(String, () => ActuatorProperty), __metadata("design:type", Map)], ActuatorObject.prototype, "properties", void 0); ActuatorObject = __decorate([SerializableObject()], ActuatorObject); export { ActuatorObject };