Skip to content

Commit

Permalink
Codify that the fromconfigsequenceadapter only takes a single region
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Feb 19, 2021
1 parent 125c8fc commit 78f78fe
Showing 1 changed file with 15 additions and 20 deletions.
35 changes: 15 additions & 20 deletions plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,35 +11,30 @@ export default class FromSequenceConfigAdapter extends FromConfigAdapter {
* @returns Observable of Feature objects in the region
*/
getFeatures(region: NoAssemblyRegion) {
const { start, end } = region
// TODO: restore commented version below once TSDX supports Rollup v2
// xref: https://github.com/rollup/rollup/blob/master/CHANGELOG.md#bug-fixes-45
/// / return ObservableCreate<Feature>(async observer => {
// const feats = await super.getFeatures(region).pipe(toArray()).toPromise()

const superGetFeatures = super.getFeatures
return ObservableCreate<Feature>(async observer => {
const feats = await superGetFeatures
.call(this, region)
.pipe(toArray())
.toPromise()
// return ObservableCreate<Feature>(async observer => {
// const feats = await super.getFeatures(region).pipe(toArray()).toPromise()
const feat = feats[0]
observer.next(
new SimpleFeature({
...feat.toJSON(),
uniqueId: `${feat.id()}:${region.start}-${region.end}`,
end: region.end,
start: region.start,
seq: feat
.get('seq')
.slice(Math.max(region.start, 0), Math.max(region.end, 0)),
}),
)

feats.forEach(feat => {
const featStart = feat.get('start')
const seqStart = start - featStart
const seqEnd = seqStart + (end - start)
const seq = feat
.get('seq')
.slice(Math.max(seqStart, 0), Math.max(seqEnd, 0))
observer.next(
new SimpleFeature({
...feat.toJSON(),
end: region.end,
start: region.start,
seq,
uniqueId: `${Math.random()}`,
}),
)
})
observer.complete()
})
}
Expand Down

0 comments on commit 78f78fe

Please sign in to comment.