UNPKG

vscroll

Version:
48 lines 1.74 kB
import { __extends } from "tslib"; import { AdapterContext } from './adapter/context'; import { reactiveConfigStorage, AdapterPropType, getDefaultAdapterProps } from './adapter/props'; import { wantedStorage } from './adapter/wanted'; var getDefaultAdapterConfig = function () { var reactive = getDefaultAdapterProps() .filter(function (_a) { var type = _a.type; return type === AdapterPropType.Reactive; }) .reduce(function (acc, _a) { var name = _a.name, value = _a.value; acc[name] = { source: value, emit: function (source, val) { return source.set(val); } }; return acc; }, {}); return { mock: false, reactive: reactive }; }; var DatasourceGeneric = /** @class */ (function () { function DatasourceGeneric(datasource, config) { this.get = datasource.get; this.settings = datasource.settings; this.devSettings = datasource.devSettings; var adapterContext = new AdapterContext(config || { mock: false }); this.adapter = adapterContext; } // todo: should it be published? DatasourceGeneric.prototype.dispose = function () { reactiveConfigStorage.delete(this.adapter.id); wantedStorage.delete(this.adapter.id); }; return DatasourceGeneric; }()); export { DatasourceGeneric }; export var makeDatasource = function (getAdapterConfig) { return /** @class */ (function (_super) { __extends(class_1, _super); function class_1(datasource) { var config = typeof getAdapterConfig === 'function' ? getAdapterConfig() : getDefaultAdapterConfig(); return _super.call(this, datasource, config) || this; } return class_1; }(DatasourceGeneric)); }; export var Datasource = makeDatasource(); //# sourceMappingURL=datasource.js.map