@openhps/core
Version:
Open Hybrid Positioning System - Core component
28 lines • 1.47 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Service } from './Service';
import { DataSerializer } from '../data/DataSerializer';
import { SerializableMember, SerializableObject } from '../data/decorators';
/**
* DataService driver for storing and querying data objects
* of a specific data type using a certain implementation.
*/
let DataServiceDriver = class DataServiceDriver extends Service {
constructor(dataType, options = {}) {
super();
this.options = options;
this.options.serialize = this.options.serialize || (obj => DataSerializer.serialize(obj));
this.options.deserialize = this.options.deserialize || (obj => DataSerializer.deserialize(obj));
this.options.keepChangelog = this.options.keepChangelog === undefined ? true : this.options.keepChangelog;
if (dataType) {
this.uid = dataType.name;
this.dataType = dataType;
}
}
};
__decorate([SerializableMember({
serializer: dataType => dataType ? dataType.name : undefined,
deserializer: dataTypeString => dataTypeString ? DataSerializer.findTypeByName(dataTypeString) : undefined
}), __metadata("design:type", Object)], DataServiceDriver.prototype, "dataType", void 0);
__decorate([SerializableMember(), __metadata("design:type", Object)], DataServiceDriver.prototype, "options", void 0);
DataServiceDriver = __decorate([SerializableObject(), __metadata("design:paramtypes", [Object, Object])], DataServiceDriver);
export { DataServiceDriver };