@openhps/core
Version:
Open Hybrid Positioning System - Core component
41 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataServiceDriver = void 0;
const tslib_1 = require("tslib");
const Service_1 = require("./Service");
const DataSerializer_1 = require("../data/DataSerializer");
const decorators_1 = require("../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_1.Service {
constructor(dataType, options = {}) {
super();
this.options = options;
this.options.serialize = this.options.serialize || ((obj) => DataSerializer_1.DataSerializer.serialize(obj));
this.options.deserialize = this.options.deserialize || ((obj) => DataSerializer_1.DataSerializer.deserialize(obj));
this.options.keepChangelog = this.options.keepChangelog === undefined ? true : this.options.keepChangelog;
if (dataType) {
this.uid = dataType.name;
this.dataType = dataType;
}
}
};
exports.DataServiceDriver = DataServiceDriver;
tslib_1.__decorate([
(0, decorators_1.SerializableMember)({
serializer: (dataType) => (dataType ? dataType.name : undefined),
deserializer: (dataTypeString) => (dataTypeString ? DataSerializer_1.DataSerializer.findTypeByName(dataTypeString) : undefined),
}),
tslib_1.__metadata("design:type", Object)
], DataServiceDriver.prototype, "dataType", void 0);
tslib_1.__decorate([
(0, decorators_1.SerializableMember)(),
tslib_1.__metadata("design:type", Object)
], DataServiceDriver.prototype, "options", void 0);
exports.DataServiceDriver = DataServiceDriver = tslib_1.__decorate([
(0, decorators_1.SerializableObject)(),
tslib_1.__metadata("design:paramtypes", [Object, Object])
], DataServiceDriver);
//# sourceMappingURL=DataServiceDriver.js.map