progress-it

Map Boolean As Floating Number, Simple And Functional.

68747470733a2f2f692e6c6f6c692e6e65742f323032312f30392f32322f76336a457446386c6e685047674b7a2e676966

start

yarn add progress-it 
or
npm install progress-it
import progress from "progress-it"
const effect=console.log
const stateSetter = progress(effect)(false);
const finish=()=>stateSetter(true)
const fail=()=>stateSetter('fail')
setTimeout(finish,1000)

output

0.0000001 false
0.0000002 false
0.0000004 false
...
0.9999999 false
# after 1000ms 
1 true

api

type Effect = (percent: number, state: boolean | 'fail') => void;
interface IProgressPotions {
    interval: number;//default 100
    speed: number; //default 0.01
}
type Setter=(newState: boolean | 'fail')=>Setter
const progress: (effect: Effect, option: Partial<IProgressPotions>) => (initState: boolean) => (newState: boolean) => Setter;
const stateSetter:Setter = progress(effect)(false);