UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

45 lines 1.64 kB
import { __decorate, __metadata } from "tslib"; import { SerializableMember, SerializableObject } from '../data/decorators'; import { DataService } from './DataService'; import { v5 as uuidv5 } from 'uuid'; export class NodeDataService extends DataService { /** * Find node data * @param {string} nodeUID Node identifier * @param {DataObject} dataObject Data object to get node data for * @returns {Promise<any>} Promise of node data for data object */ findData(nodeUID, dataObject) { return new Promise(resolve => { this.findByUID(this.getUID(nodeUID, typeof dataObject === 'string' ? dataObject : dataObject.uid)).then(nodeData => { resolve(nodeData.data); }).catch(() => { resolve(undefined); }); }); } insertData(nodeUID, dataObject, data) { const uid = this.getUID(nodeUID, typeof dataObject === 'string' ? dataObject : dataObject.uid); return this.insert(uid, new NodeData(uid, data)); } getUID(nodeUID, dataObjectUID) { return uuidv5(dataObjectUID + nodeUID, '97b9cc7e-19ca-4f20-8190-161d7b39e93a'); } } let NodeData = class NodeData { constructor(uid, data = {}) { this.uid = uid; this.data = data; } }; __decorate([SerializableMember(), __metadata("design:type", String)], NodeData.prototype, "uid", void 0); __decorate([SerializableMember({ serializer: data => { return data; }, deserializer: json => { return json; } }), __metadata("design:type", Object)], NodeData.prototype, "data", void 0); NodeData = __decorate([SerializableObject(), __metadata("design:paramtypes", [String, Object])], NodeData); export { NodeData };