@@ -4,14 +4,14 @@ import { ChangedPackages, ChangedPackagesJson, ChangedTypingJson, versionsFilena
44import { getDefinitelyTyped , AllPackages , NotNeededPackage , writeDataFile } from "@definitelytyped/definitions-parser" ;
55import {
66 assertDefined ,
7- mapDefinedAsync ,
87 logUncaughtErrors ,
98 loggerWithErrors ,
109 FS ,
1110 LoggerWithErrors ,
1211 UncachedNpmInfoClient ,
1312 withNpmCache ,
1413 CachedNpmInfoClient ,
14+ nAtATime ,
1515} from "@definitelytyped/utils" ;
1616import { fetchTypesPackageVersionInfo } from "@definitelytyped/retag" ;
1717import { cacheDirPath } from "./lib/settings" ;
@@ -66,35 +66,39 @@ async function computeChangedPackages(
6666 client : CachedNpmInfoClient
6767) : Promise < ChangedPackages > {
6868 log . info ( "# Computing changed packages..." ) ;
69- const changedTypings = await mapDefinedAsync ( allPackages . allTypings ( ) , async ( pkg ) => {
70- const { version, needsPublish } = await fetchTypesPackageVersionInfo ( pkg , client , /*publish*/ true , log ) ;
71- if ( needsPublish ) {
72- log . info ( `Need to publish: ${ pkg . desc } @${ version } ` ) ;
73- for ( const { name } of pkg . packageJsonDependencies ) {
69+ const changedTypings = (
70+ await nAtATime ( 10 , allPackages . allTypings ( ) , async ( pkg ) => {
71+ const { version, needsPublish } = await fetchTypesPackageVersionInfo ( pkg , client , /*publish*/ true , log ) ;
72+ if ( needsPublish ) {
73+ log . info ( `Need to publish: ${ pkg . desc } @${ version } ` ) ;
74+ for ( const { name } of pkg . packageJsonDependencies ) {
75+ assertDefined (
76+ await client . fetchAndCacheNpmInfo ( name ) ,
77+ `'${ pkg . name } ' depends on '${ name } ' which does not exist on npm. All dependencies must exist.`
78+ ) ;
79+ }
80+ const latestVersion = pkg . isLatest
81+ ? undefined
82+ : ( await fetchTypesPackageVersionInfo ( allPackages . getLatest ( pkg ) , client , /*publish*/ true ) ) . version ;
83+ return { pkg, version, latestVersion } ;
84+ }
85+ return undefined ;
86+ } )
87+ ) . filter ( ( value ) : value is NonNullable < typeof value > => value as never ) ;
88+ log . info ( "# Computing deprecated packages..." ) ;
89+ const changedNotNeededPackages = (
90+ await nAtATime ( 10 , allPackages . allNotNeeded ( ) , async ( pkg ) => {
91+ if ( ! ( await isAlreadyDeprecated ( pkg , client , log ) ) ) {
7492 assertDefined (
75- await client . fetchAndCacheNpmInfo ( name ) ,
76- `' ${ pkg . name } ' depends on '${ name } ' which does not exist on npm. All dependencies must exist .`
93+ await client . fetchAndCacheNpmInfo ( pkg . libraryName ) ,
94+ `To deprecate '@types/ ${ pkg . name } ', '${ pkg . libraryName } ' must exist on npm.`
7795 ) ;
96+ log . info ( `To be deprecated: ${ pkg . name } ` ) ;
97+ return pkg ;
7898 }
79- const latestVersion = pkg . isLatest
80- ? undefined
81- : ( await fetchTypesPackageVersionInfo ( allPackages . getLatest ( pkg ) , client , /*publish*/ true ) ) . version ;
82- return { pkg, version, latestVersion } ;
83- }
84- return undefined ;
85- } ) ;
86- log . info ( "# Computing deprecated packages..." ) ;
87- const changedNotNeededPackages = await mapDefinedAsync ( allPackages . allNotNeeded ( ) , async ( pkg ) => {
88- if ( ! ( await isAlreadyDeprecated ( pkg , client , log ) ) ) {
89- assertDefined (
90- await client . fetchAndCacheNpmInfo ( pkg . libraryName ) ,
91- `To deprecate '@types/${ pkg . name } ', '${ pkg . libraryName } ' must exist on npm.`
92- ) ;
93- log . info ( `To be deprecated: ${ pkg . name } ` ) ;
94- return pkg ;
95- }
96- return undefined ;
97- } ) ;
99+ return undefined ;
100+ } )
101+ ) . filter ( ( value ) : value is NonNullable < typeof value > => value as never ) ;
98102 return { changedTypings, changedNotNeededPackages } ;
99103}
100104
0 commit comments