/* 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, increment: Callback, decrement: Callback } => { const {promise, resolve} = makeNakedPromise (); 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};