Skip to content

Commit 8c94839

Browse files
committed
opt rangeProvider code
1 parent ae0e32b commit 8c94839

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

src/get/range/rangeProvider.ts

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,22 @@
11
import type { Range, RangeIndex } from './types'
2-
import { defaultSegmentStrategy } from './segmentStrategy'
3-
import { defaultSelectRangeStrategy } from './selectRangeStrategy'
42

53
export class RangeProvider {
6-
readonly contentLength: number
74
private readonly ranges: Readonly<Range[]>
85
private readonly downloaderCounter: Map<RangeIndex, number> = new Map()
96
private readonly controllers: Map<RangeIndex, AbortController> = new Map()
10-
private readonly segmentStrategy = defaultSegmentStrategy
11-
private readonly selectRangeStrategy = defaultSelectRangeStrategy
7+
private readonly selectRangeStrategy
128

139
constructor (
1410
contentLength: number,
15-
segmentStrategy?: (contentLength: number) => Range[],
16-
selectRangeStrategy?: (
11+
segmentStrategy: (contentLength: number) => Range[],
12+
selectRangeStrategy: (
1713
downloaderCounter: Map<RangeIndex, number>
1814
) => RangeIndex
1915
) {
20-
this.contentLength = contentLength
21-
if (segmentStrategy != null) {
22-
this.segmentStrategy = segmentStrategy
23-
}
24-
if (selectRangeStrategy != null) {
25-
this.selectRangeStrategy = selectRangeStrategy
26-
}
16+
this.selectRangeStrategy = selectRangeStrategy
2717

2818
// Create the ranges
29-
this.ranges = this.segmentStrategy(contentLength)
19+
this.ranges = segmentStrategy(contentLength)
3020
// init downloader counter
3121
for (let i = 0; i < this.ranges.length; i++) {
3222
this.downloaderCounter.set(i, 0)
@@ -45,6 +35,7 @@ export class RangeProvider {
4535
controller.abort()
4636

4737
this.downloaderCounter.delete(rangeIndex)
38+
this.controllers.delete(rangeIndex)
4839
}
4940

5041
getRange (): {

0 commit comments

Comments
 (0)