@@ -83,20 +83,20 @@ export const getValue = <T = unknown>(obj: unknown, expr: string): T | undefined
8383 } , obj ) as T
8484}
8585
86- type IteratorFn < T > = ( item : T , array : T [ ] ) => Promise < any >
86+ type IteratorFn < T , K > = ( item : T , array : T [ ] ) => Promise < K >
8787type PoolController = { pause : ( ) => void ; resume : ( ) => void ; cancel : ( ) => void }
8888interface RunPoolOptions {
8989 shouldPause ?: ( ) => Promise < void >
9090 shouldCancel ?: ( ) => boolean
9191}
9292
93- async function runPool < T > (
93+ async function runPool < T , K > (
9494 poolLimit : number ,
9595 array : T [ ] ,
96- iteratorFn : IteratorFn < T > ,
96+ iteratorFn : IteratorFn < T , K > ,
9797 options : RunPoolOptions = { } ,
9898) {
99- const results : Promise < any > [ ] = [ ]
99+ const results : Promise < { ok : true ; value : K } | { ok : false ; error : Error } > [ ] = [ ]
100100 const activePromises = new Set < Promise < any > > ( )
101101 const { shouldPause, shouldCancel } = options
102102
@@ -111,8 +111,8 @@ async function runPool<T>(
111111
112112 const promise = Promise . resolve ( )
113113 . then ( ( ) => iteratorFn ( item , array ) )
114- . then ( ( value ) => ( { ok : true , value } ) )
115- . catch ( ( error ) => ( { ok : false , error } ) )
114+ . then < { ok : true ; value : K } > ( ( value ) => ( { ok : true , value } ) )
115+ . catch < { ok : false ; error : Error } > ( ( error ) => ( { ok : false , error } ) )
116116
117117 results . push ( promise )
118118
@@ -127,15 +127,22 @@ async function runPool<T>(
127127 }
128128 }
129129
130- const settled = await Promise . all ( results )
131- return settled . filter ( ( r ) => r . ok ) . map ( ( r ) => r . value )
130+ return await Promise . all ( results )
132131}
133132
134- export const asyncPool = < T > ( poolLimit : number , array : T [ ] , iteratorFn : IteratorFn < T > ) => {
133+ export const asyncPool = < T , K = any > (
134+ poolLimit : number ,
135+ array : T [ ] ,
136+ iteratorFn : IteratorFn < T , K > ,
137+ ) => {
135138 return runPool ( poolLimit , array , iteratorFn )
136139}
137140
138- export const createAsyncPool = < T > ( poolLimit : number , array : T [ ] , iteratorFn : IteratorFn < T > ) => {
141+ export const createAsyncPool = < T , K > (
142+ poolLimit : number ,
143+ array : T [ ] ,
144+ iteratorFn : IteratorFn < T , K > ,
145+ ) => {
139146 let paused = false
140147 let cancelled = false
141148 let resumeResolve : ( ( ) => void ) | null = null
@@ -179,6 +186,7 @@ export const getGitHubApiAuthorization = () => {
179186 return appSettings . app . githubApiToken ? `Bearer ${ appSettings . app . githubApiToken } ` : ''
180187}
181188
189+ // System ScheduledTask Helper
182190export const getTaskSchXmlString = async ( delay = 30 ) => {
183191 const { appPath } = useEnvStore ( ) . env
184192
@@ -286,11 +294,11 @@ export const stringifyNoFolding = (content: any) => {
286294 return stringify ( content , { lineWidth : 0 , minContentWidth : 0 } )
287295}
288296
289- const regexCache = new Map ( )
297+ const regexCache = new Map < string , RegExp > ( )
290298
291299export const buildSmartRegExp = ( pattern : string , flags = '' ) => {
292300 const key = pattern + '::' + flags
293- if ( regexCache . has ( key ) ) return regexCache . get ( key )
301+ if ( regexCache . has ( key ) ) return regexCache . get ( key ) !
294302
295303 let r
296304 try {
0 commit comments