@gmod/jbrowse
Version:
JBrowse - client-side genome browser
55 lines (47 loc) • 1.48 kB
JavaScript
define([
'dojo/_base/declare',
'JBrowse/Util',
'JBrowse/Model/FileBlob',
'JBrowse/Model/XHRBlob'
],
function( declare, Util, FileBlob, XHRBlob ) {
var uniqCounter = 0;
return declare( null, {
storeType: 'JBrowse/Store/SeqFeature/ChromSizes',
tryResource: function( configs, resource ) {
if( resource.type == 'chrom.sizes' ) {
var basename = Util.basename(
resource.file ? resource.file.name :
resource.url ? resource.url :
'',
['.sizes']
);
if( !basename )
return false;
var newName = 'REF_'+basename+'_'+uniqCounter++;
configs[newName] = {
type: this.storeType,
fileBasename: basename,
blob: this._makeBlob( resource ),
name: newName
};
return true;
}
else
return false;
},
finalizeConfiguration: function( configs ) {
},
_makeBlob: function( resource ) {
var r = resource.file ? new FileBlob( resource.file ) :
resource.url ? new XHRBlob( resource.url ) :
null;
if( ! r )
throw 'unknown resource type';
return r;
},
confIsValid: function( conf ) {
return conf.blob || conf.urlTemplate;
}
});
});