@@ -2,18 +2,19 @@ import { ParseDefinitionsOptions } from "./get-definitely-typed";
22import { TypingsData , AllPackages , formatTypingVersion } from "./packages" ;
33import {
44 assertDefined ,
5- best ,
65 mapDefined ,
76 nAtATime ,
87 FS ,
98 logger ,
109 writeLog ,
1110 Logger ,
12- Semver ,
1311 UncachedNpmInfoClient ,
1412 NpmInfoRawVersions ,
1513 NpmInfoVersion ,
14+ max ,
15+ min ,
1616} from "@definitelytyped/utils" ;
17+ import * as semver from "semver" ;
1718
1819export async function checkParseResults (
1920 includeNpmChecks : false ,
@@ -132,21 +133,19 @@ async function checkNpm(
132133 }
133134
134135 const versions = getRegularVersions ( info . versions ) ;
135- const firstTypedVersion = best (
136+ const firstTypedVersion = min (
136137 mapDefined ( versions , ( { hasTypes, version } ) => ( hasTypes ? version : undefined ) ) ,
137- ( a , b ) => b . greaterThan ( a )
138+ semver . compare
138139 ) ;
139140 // A package might have added types but removed them later, so check the latest version too
140- if ( firstTypedVersion === undefined || ! best ( versions , ( a , b ) => a . version . greaterThan ( b . version ) ) ! . hasTypes ) {
141+ if ( firstTypedVersion === undefined || ! max ( versions , ( a , b ) => semver . compare ( a . version , b . version ) ) ! . hasTypes ) {
141142 return ;
142143 }
143144
144145 const ourVersion = `${ major } .${ minor } ` ;
145146
146147 log ( "" ) ;
147- log (
148- `Typings already defined for ${ name } (${ libraryName } ) as of ${ firstTypedVersion . versionString } (our version: ${ ourVersion } )`
149- ) ;
148+ log ( `Typings already defined for ${ name } (${ libraryName } ) as of ${ firstTypedVersion } (our version: ${ ourVersion } )` ) ;
150149 const contributorUrls = contributors
151150 . map ( ( c ) => {
152151 const gh = "https://github.com/" ;
@@ -155,14 +154,14 @@ async function checkNpm(
155154 . join ( ", " ) ;
156155 log ( " To fix this:" ) ;
157156 log ( ` git checkout -b not-needed-${ name } ` ) ;
158- const yarnargs = [ name , firstTypedVersion . versionString , projectName ] ;
157+ const yarnargs = [ name , firstTypedVersion , projectName ] ;
159158 if ( libraryName !== name ) {
160159 yarnargs . push ( JSON . stringify ( libraryName ) ) ;
161160 }
162161 log ( " yarn not-needed " + yarnargs . join ( " " ) ) ;
163162 log ( ` git add --all && git commit -m "${ name } : Provides its own types" && git push -u origin not-needed-${ name } ` ) ;
164163 log ( ` And comment PR: This will deprecate \`@types/${ name } \` in favor of just \`${ name } \`. CC ${ contributorUrls } ` ) ;
165- if ( new Semver ( major , minor , 0 ) . greaterThan ( firstTypedVersion ) ) {
164+ if ( semver . gt ( ` ${ major } . ${ minor } .0` , firstTypedVersion ) ) {
166165 log ( " WARNING: our version is greater!" ) ;
167166 }
168167 if ( dependedOn . has ( name ) ) {
@@ -177,11 +176,11 @@ export async function packageHasTypes(packageName: string, client: UncachedNpmIn
177176
178177function getRegularVersions (
179178 versions : NpmInfoRawVersions
180- ) : readonly { readonly version : Semver ; readonly hasTypes : boolean } [ ] {
181- return mapDefined ( Object . entries ( versions ) , ( [ versionString , info ] ) => {
182- const version = Semver . tryParse ( versionString ) ;
183- return version === undefined ? undefined : { version , hasTypes : versionHasTypes ( info ) } ;
184- } ) ;
179+ ) : readonly { readonly version : semver . SemVer ; readonly hasTypes : boolean } [ ] {
180+ return Object . entries ( versions ) . map ( ( [ versionString , info ] ) => ( {
181+ version : new semver . SemVer ( versionString ) ,
182+ hasTypes : versionHasTypes ( info ) ,
183+ } ) ) ;
185184}
186185
187186function versionHasTypes ( info : NpmInfoVersion ) : boolean {
0 commit comments