## TIMER

 battle tested EC6 micro lib that implement useful `timer`. 
 The `Timer` notifies on each x ms and use as a thenable object (behave like a promise ) 
 that resolve when time done 
 

## Example
```
import Timer from 'timer'
const timer = new Timer(10 * 1000, function onEnd(){
    // called when time end

})

timer.tick( _=>{
    // call thick every 1000ms
    console.log(`${timer.progress()} progress`);
}, 1000) 

timer.start();

await timer;
console('timer done')

```

## Methods
### constructor(time:number(ms), callback:fn, autostart:boolean): timer
time is the time 
    
### setTime( newTime: number(ms))
 set timer duration

### restart()
 stop and restart the timer, it not trigger end promise;

### pause()
stop the timer, stop to notify about the pastime. 
remember the progress and continue it after calls `resume()`

### stop(whenStop = 1, lastTick = true)
stop the timer.
On that point it can be choose on which point on the
timer progress to stop the timer from 0-1. 
`lastTick` is about to call or not last time the callbacks of all tick callback. 


### resume()  
resume timer after a pause.
not ops when call when timer already work. 

### tick(cb:fn, time:number(ms))
trigger the callback every `time`ms and in the end of the timer run
### stopTicks()
stop all ticks notifications
### get progress : number (0-1)
return the progress of the timer between 0-1 



