@jbrowse/plugin-config
Version:
JBrowse 2 config utilities
36 lines (35 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
const io_1 = require("@jbrowse/core/util/io");
class RefNameAliasAdapter extends BaseAdapter_1.BaseAdapter {
async getRefNameAliases() {
const loc = this.getConf('location');
if (loc.uri === '' || loc.uri === '/path/to/my/aliases.txt') {
return [];
}
const results = await (0, io_1.openLocation)(loc, this.pluginManager).readFile('utf8');
const refColumn = this.getConf('refNameColumn');
const refColumnHeaderName = this.getConf('refNameColumnHeaderName');
const lines = results
.trim()
.split(/\n|\r\n|\r/)
.filter(f => !!f);
const header = lines.filter(f => f.startsWith('#'));
const headerCol = refColumnHeaderName && header.length
? header.at(-1).split('\t').indexOf(refColumnHeaderName)
: refColumn;
return lines
.filter(f => !f.startsWith('#'))
.map(row => {
const aliases = row.split('\t');
const refName = aliases[headerCol];
return {
refName: refName,
aliases: aliases.filter(f => !!f.trim()),
};
});
}
async freeResources() { }
}
exports.default = RefNameAliasAdapter;