-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathindexFile.ts
37 lines (33 loc) · 911 Bytes
/
indexFile.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import Chunk from './chunk'
import { BaseOpts } from './util'
import type { GenericFilehandle } from 'generic-filehandle2'
export default abstract class IndexFile {
public filehandle: GenericFilehandle
public renameRefSeq: (s: string) => string
/**
* @param {filehandle} filehandle
* @param {function} renameRefSeqs
*/
constructor({
filehandle,
renameRefSeq = (n: string) => n,
}: {
filehandle: GenericFilehandle
renameRefSeq?: (a: string) => string
}) {
this.filehandle = filehandle
this.renameRefSeq = renameRefSeq
}
public abstract lineCount(refId: number): Promise<number>
public abstract indexCov(
refId: number,
start?: number,
end?: number,
): Promise<{ start: number; end: number; score: number }[]>
public abstract blocksForRange(
chrId: number,
start: number,
end: number,
opts?: BaseOpts,
): Promise<Chunk[]>
}