@openhps/core
Version:
Open Hybrid Positioning System - Core component
48 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HistorySourceNode = void 0;
const data_1 = require("../../data");
const DataFrame_1 = require("../../data/DataFrame");
const SourceNode_1 = require("../SourceNode");
/**
* @category Source node
*/
class HistorySourceNode extends SourceNode_1.SourceNode {
constructor(options) {
super(options);
}
onPull(options = { requestedObjects: [] }) {
return new Promise((resolve, reject) => {
const service = this.model.findDataService(data_1.DataObject);
const requestPromises = [];
options.requestedObjects.forEach((uid) => {
requestPromises.push(new Promise((resolve) => {
service
.findByUID(uid)
.then((object) => {
resolve(object);
})
.catch(() => {
// Ignore
resolve(undefined);
});
}));
});
// Complete service requests
Promise.all(requestPromises)
.then((objects) => {
// Create a new dataframe from these objects
const frame = new DataFrame_1.DataFrame(this.source);
objects.forEach((object) => {
if (object) {
frame.addObject(object);
}
});
resolve(frame);
})
.catch(reject);
});
}
}
exports.HistorySourceNode = HistorySourceNode;
//# sourceMappingURL=HistorySourceNode.js.map