@@ -2,23 +2,23 @@ import type { Range } from "../types"
2
2
3
3
import { normalize } from "./normalize"
4
4
5
- export function split ( ranges : Range [ ] , splitRange : Range ) : Range [ ] {
5
+ export function split ( ranges : Range [ ] , range : Range ) : Range [ ] {
6
6
const result : Range [ ] = [ ]
7
7
8
- ranges . forEach ( ( [ start , end ] ) => {
9
- if ( end < splitRange [ 0 ] || start > splitRange [ 1 ] ) {
8
+ normalize ( ranges ) . forEach ( ( [ start , end ] ) => {
9
+ if ( end < range [ 0 ] || start > range [ 1 ] ) {
10
10
result . push ( [ start , end ] )
11
11
} else {
12
- if ( start < splitRange [ 0 ] ) {
13
- result . push ( [ start , splitRange [ 0 ] - 1 ] )
12
+ if ( start < range [ 0 ] ) {
13
+ result . push ( [ start , range [ 0 ] - 1 ] )
14
14
}
15
- if ( end > splitRange [ 1 ] ) {
16
- result . push ( [ splitRange [ 1 ] + 1 , end ] )
15
+ if ( end > range [ 1 ] ) {
16
+ result . push ( [ range [ 1 ] + 1 , end ] )
17
17
}
18
18
}
19
19
} )
20
20
21
- return normalize ( result )
21
+ return result
22
22
}
23
23
24
24
if ( import . meta. vitest ) {
@@ -41,8 +41,8 @@ if (import.meta.vitest) {
41
41
} )
42
42
43
43
it ( "should split multiple ranges" , ( ) => {
44
- expect ( split ( [ [ 1 , 5 ] , [ 7 , 10 ] ] , [ 3 , 8 ] ) )
45
- . toEqual ( [ [ 1 , 2 ] , [ 9 , 10 ] ] )
44
+ expect ( split ( [ [ 1 , 5 ] , [ 7 , 10 ] ] , [ 3 , 8 ] ) ) . toEqual ( [ [ 1 , 2 ] , [ 9 , 10 ] ] )
45
+ expect ( split ( [ [ 1 , 5 ] , [ 9 , 16 ] , [ 7 , 10 ] ] , [ 3 , 8 ] ) ) . toEqual ( [ [ 1 , 2 ] , [ 9 , 16 ] ] )
46
46
} )
47
47
48
48
it ( "should handle edge cases" , ( ) => {
0 commit comments