@@ -7,10 +7,10 @@ import { group } from "./deps.ts";
7
7
function searchFilesNames ( {
8
8
skip,
9
9
} : // limiter,
10
- {
11
- skip ?: RegExp | RegExp [ ] ;
12
- // limiter: AsyncCurrentLimiter;
13
- } ) {
10
+ {
11
+ skip ?: RegExp | RegExp [ ] ;
12
+ // limiter: AsyncCurrentLimiter;
13
+ } ) {
14
14
console . log ( "type check start!" ) ;
15
15
16
16
const entry_iter = walk ( "." , {
@@ -28,32 +28,36 @@ if (import.meta.main) {
28
28
29
29
async function parallel_check (
30
30
entry_iter : AsyncIterableIterator < WalkEntry > ,
31
- limiter : AsyncCurrentLimiter ,
31
+ limiter : AsyncCurrentLimiter
32
32
) {
33
33
const files : string [ ] = [ ] ;
34
34
35
35
for await ( const entry of entry_iter ) {
36
36
files . push ( entry . path ) ;
37
37
}
38
38
39
- const entries = Object . values (
40
- group ( files , ( _s : any , i : number ) => i % 40 ) ,
41
- ) as string [ ] [ ] ;
39
+ const entries = split_by_count ( files , 30 ) ;
42
40
43
41
await Promise . all (
44
- entries . map ( ( stack ) => limiter . run ( ( ) => runDenoCheck ( stack ) ) ) ,
42
+ entries . map ( ( stack ) => limiter . run ( ( ) => runDenoCheck ( stack ) ) )
45
43
) ;
46
44
}
45
+ export function split_by_count < T > ( files : T [ ] , limit : number ) {
46
+ return Object . values (
47
+ group ( files , ( _s : any , i : number ) => i % ( files . length / limit ) )
48
+ ) as T [ ] [ ] ;
49
+ }
47
50
48
51
async function start ( ) {
49
52
const limiter = new AsyncLimiterClass ( navigator . hardwareConcurrency ) ;
50
53
const args = parse ( Deno . args ) ;
51
54
console . log ( args ) ;
52
- const skip = typeof args . skip === "string"
53
- ? new RegExp ( String ( args . skip ) )
54
- : Array . isArray ( args . skip )
55
- ? args . skip . map ( ( s ) => new RegExp ( s ) )
56
- : undefined ;
55
+ const skip =
56
+ typeof args . skip === "string"
57
+ ? new RegExp ( String ( args . skip ) )
58
+ : Array . isArray ( args . skip )
59
+ ? args . skip . map ( ( s ) => new RegExp ( s ) )
60
+ : undefined ;
57
61
const entry_iter = searchFilesNames ( { skip } ) ;
58
62
await parallel_check ( entry_iter , limiter ) ;
59
63
console . log ( "type check Done!" ) ;
0 commit comments