@@ -4,14 +4,14 @@ import { ChangedPackages, ChangedPackagesJson, ChangedTypingJson, versionsFilena
4
4
import { getDefinitelyTyped , AllPackages , NotNeededPackage , writeDataFile } from "@definitelytyped/definitions-parser" ;
5
5
import {
6
6
assertDefined ,
7
- mapDefinedAsync ,
8
7
logUncaughtErrors ,
9
8
loggerWithErrors ,
10
9
FS ,
11
10
LoggerWithErrors ,
12
11
UncachedNpmInfoClient ,
13
12
withNpmCache ,
14
13
CachedNpmInfoClient ,
14
+ nAtATime ,
15
15
} from "@definitelytyped/utils" ;
16
16
import { fetchTypesPackageVersionInfo } from "@definitelytyped/retag" ;
17
17
import { cacheDirPath } from "./lib/settings" ;
@@ -66,35 +66,39 @@ async function computeChangedPackages(
66
66
client : CachedNpmInfoClient
67
67
) : Promise < ChangedPackages > {
68
68
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 ) ) ) {
74
92
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.`
77
95
) ;
96
+ log . info ( `To be deprecated: ${ pkg . name } ` ) ;
97
+ return pkg ;
78
98
}
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 ) ;
98
102
return { changedTypings, changedNotNeededPackages } ;
99
103
}
100
104
0 commit comments