INNER CODE UNIT · TypeScript
permille
akirarika/milkio · packages/cookbook/src/progress/index.ts:122
const permille = Math.floor(current * 1000);
const now = Date.now();
const shouldRender = permille !== progress.lastRenderedPermille || now - progress.lastRenderAt > MAX_RENDER_GAP;
if (shouldRender) {
progress.lastRenderedPermille = permille;
progress.lastRenderAt = now;
progress.rate = permille;
progress.current = current;
consola.start(chalk.gray(`[${getRate()}] ${progress.message}`));
}
},
async close(message: string) {
clearInterval(progress.intervalId);
const p = Math.ceil(progress.current * 1000);
for (let index = 0; index < 32; index++) {
await Bun.sleep(1000 / 60);
progress.rate = Math.ceil(p + ((1000 - p) / 32) * index);