@jbrowse/plugin-config
Version:
JBrowse 2 config utilities
42 lines (41 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const configuration_1 = require("@jbrowse/core/configuration");
const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
const FromConfigAdapter_1 = require("../FromConfigAdapter/FromConfigAdapter");
class FromConfigRegionsAdapter extends BaseAdapter_1.BaseAdapter {
constructor(config, getSubAdapter, pluginManager) {
super(config, getSubAdapter, pluginManager);
const f = (0, configuration_1.readConfObject)(config, 'features');
this.features = (0, FromConfigAdapter_1.makeFeatures)(f);
}
async getRegions() {
const regions = [];
for (const [refName, features] of this.features) {
let currentRegion;
for (const feature of features) {
if (currentRegion &&
currentRegion.end >= feature.get('start') &&
currentRegion.start <= feature.get('end')) {
currentRegion.end = feature.get('end');
}
else {
if (currentRegion) {
regions.push(currentRegion);
}
currentRegion = {
refName,
start: feature.get('start'),
end: feature.get('end'),
};
}
}
if (currentRegion) {
regions.push(currentRegion);
}
}
regions.sort((a, b) => a.refName.localeCompare(b.refName));
return regions;
}
}
exports.default = FromConfigRegionsAdapter;