update
This commit is contained in:
43
ts/tiny-readdir/utils.ts
Normal file
43
ts/tiny-readdir/utils.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
/* IMPORT */
|
||||
|
||||
import makeNakedPromise from '../promise-make-naked/index.js';
|
||||
import type {Callback} from './types.js';
|
||||
|
||||
/* MAIN */
|
||||
|
||||
const isFunction = ( value: unknown ): value is Function => {
|
||||
|
||||
return ( typeof value === 'function' );
|
||||
|
||||
};
|
||||
|
||||
const makeCounterPromise = (): { promise: Promise<void>, increment: Callback, decrement: Callback } => {
|
||||
|
||||
const {promise, resolve} = makeNakedPromise<void> ();
|
||||
|
||||
let counter = 0;
|
||||
|
||||
const increment = (): void => {
|
||||
|
||||
counter += 1;
|
||||
|
||||
};
|
||||
|
||||
const decrement = (): void => {
|
||||
|
||||
counter -= 1;
|
||||
|
||||
if ( counter ) return;
|
||||
|
||||
resolve ();
|
||||
|
||||
};
|
||||
|
||||
return { promise, increment, decrement };
|
||||
|
||||
};
|
||||
|
||||
/* EXPORT */
|
||||
|
||||
export {isFunction, makeCounterPromise};
|
||||
Reference in New Issue
Block a user