.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / enquirer / lib / timer.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/enquirer/lib/timer.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/enquirer/lib/timer.js
new file mode 100644 (file)
index 0000000..564998b
--- /dev/null
@@ -0,0 +1,38 @@
+'use strict';
+
+module.exports = prompt => {
+  prompt.timers = prompt.timers || {};
+
+  let timers = prompt.options.timers;
+  if (!timers) return;
+
+  for (let key of Object.keys(timers)) {
+    let opts = timers[key];
+    if (typeof opts === 'number') {
+      opts = { interval: opts };
+    }
+    create(prompt, key, opts);
+  }
+};
+
+function create(prompt, name, options = {}) {
+  let timer = prompt.timers[name] = { name, start: Date.now(), ms: 0, tick: 0 };
+  let ms = options.interval || 120;
+  timer.frames = options.frames || [];
+  timer.loading = true;
+
+  let interval = setInterval(() => {
+    timer.ms = Date.now() - timer.start;
+    timer.tick++;
+    prompt.render();
+  }, ms);
+
+  timer.stop = () => {
+    timer.loading = false;
+    clearInterval(interval);
+  };
+
+  Reflect.defineProperty(timer, 'interval', { value: interval });
+  prompt.once('close', () => timer.stop());
+  return timer.stop;
+}