Browse Source

[function.measureTime]: add function

mightyplow 7 years ago
parent
commit
4bddfbb618
3 changed files with 20 additions and 0 deletions
  1. 1 0
      src/function/index.js
  2. 18 0
      src/function/measureTime.js
  3. 1 0
      src/index.js

+ 1 - 0
src/function/index.js

@@ -10,5 +10,6 @@ export { default as enqueue } from './enqueue';
 export { default as enqueueWithResults } from './enqueueWithResults';
 export { default as identity } from './identity';
 export { default as memoize } from './memoize';
+export { default as measureTime } from './measureTime';
 export { default as noop } from './noop';
 export { default as promisify } from './promisify';

+ 18 - 0
src/function/measureTime.js

@@ -0,0 +1,18 @@
+let i = 0;
+
+/**
+ * Takes a function and logs the time it takes on the console.
+ *
+ * @memberOf function
+ * @function
+ * @param label
+ * @param fn
+ */
+const measureTime = (label = i++, fn) => (...args) => {
+    console.time(label);
+    const result = fn(...args);
+    console.timeEnd(label);
+    return result;
+};
+
+export default measureTime;

+ 1 - 0
src/index.js

@@ -18,6 +18,7 @@ export {
     enqueueWithResults,
     enqueue,
     identity,
+    measureTime,
     memoize,
     noop,
     promisify