@@ -7,23 +7,21 @@ import {
77} from '../src/utils/syntax' ;
88
99const compareSemver = ( a : string , b : string ) => {
10- const [ aMajor , aMinor , aPatch ] = a . split ( '.' ) . map ( Number ) as [
11- number ,
12- number ,
13- number ,
14- ] ;
15- const [ bMajor , bMinor , bPatch ] = b . split ( '.' ) . map ( Number ) as [
16- number ,
17- number ,
18- number ,
19- ] ;
20-
21- if ( aMajor !== bMajor ) {
22- return aMajor - bMajor ;
23- }
24- if ( aMinor !== bMinor ) {
25- return aMinor - bMinor ;
26- }
10+ const extract = ( v : string ) => {
11+ const parts = String ( v )
12+ . split ( '.' )
13+ . map ( ( p ) => {
14+ return Number ( p ) ;
15+ } ) ;
16+ while ( parts . length < 3 ) parts . push ( 0 ) ;
17+ return parts . slice ( 0 , 3 ) as [ number , number , number ] ;
18+ } ;
19+
20+ const [ aMajor , aMinor , aPatch ] = extract ( a ) ;
21+ const [ bMajor , bMinor , bPatch ] = extract ( b ) ;
22+
23+ if ( aMajor !== bMajor ) return aMajor - bMajor ;
24+ if ( aMinor !== bMinor ) return aMinor - bMinor ;
2725 return aPatch - bPatch ;
2826} ;
2927
@@ -74,25 +72,25 @@ describe('transformSyntaxToBrowserslist', () => {
7472 transformSyntaxToBrowserslist ( 'es2015' , 'web' ) ,
7573 ) . toMatchInlineSnapshot ( `
7674 [
77- "chrome >= 51.0.0 ",
78- "edge >= 15.0.0 ",
79- "firefox >= 54.0.0 ",
80- "safari >= 10.0.0 ",
81- "opera >= 38.0.0 ",
82- "samsung >= 5.0.0 ",
75+ "chrome >= 51",
76+ "edge >= 79 ",
77+ "firefox >= 53 ",
78+ "ios >= 16.3 ",
79+ "node >= 6.5 ",
80+ "safari >= 16.3 ",
8381 ]
8482 ` ) ;
8583
8684 expect (
8785 transformSyntaxToBrowserslist ( 'es2018' , 'web' ) ,
8886 ) . toMatchInlineSnapshot ( `
8987 [
90- "chrome >= 64.0.0 ",
91- "edge >= 79.0.0 ",
92- "firefox >= 78.0.0 ",
93- "safari >= 16.4.0 ",
94- "opera >= 51.0.0 ",
95- "samsung >= 8.2.0 ",
88+ "chrome >= 64",
89+ "edge >= 79",
90+ "firefox >= 78",
91+ "ios >= 16.3 ",
92+ "node >= 10 ",
93+ "safari >= 16.3 ",
9694 ]
9795 ` ) ;
9896
@@ -147,14 +145,12 @@ describe('transformSyntaxToBrowserslist', () => {
147145 ) . toMatchInlineSnapshot ( `
148146 [
149147 "Chrome 123",
150- "chrome >= 5.0.0",
151- "edge >= 12.0.0",
152- "firefox >= 2.0.0",
153- "ie >= 9.0.0",
154- "ios >= 6.0.0",
155- "node >= 0.4.0",
156- "opera >= 10.10.0",
157- "safari >= 3.1.0",
148+ "chrome >= 13",
149+ "edge >= 12",
150+ "firefox >= 2",
151+ "ios >= 6",
152+ "node >= 0.6",
153+ "safari >= 5.1",
158154 ]
159155 ` ) ;
160156
0 commit comments