fca-nazrul-remastered
Version:
Facebook-chat-api protect and deploy by Kanzu and HZI Team
65 lines (51 loc) • 1.06 kB
JavaScript
/* eslint-disable linebreak-style */
;
var assert = require('assert');
var runtimes = new WeakMap();
/**
* @param {any} fn
*/
function isFunction(fn) {
return typeof fn === 'function';
}
/**
* @param {object} fn
* @param {string} timeResolution
*/
function lastRun(fn, timeResolution) {
assert(isFunction(fn), 'Only functions can check lastRun');
var time = runtimes.get(fn);
if (time == null) {
return;
}
var resolution = parseInt(timeResolution, 10) || 1;
return time - (time % resolution);
}
/**
* @param {object} fn
* @param {number} timestamp
*/
function capture(fn, timestamp) {
assert(isFunction(fn), 'Only functions can be captured');
timestamp = timestamp || Date.now();
runtimes.set(fn, timestamp);
}
/**
* @param {object} name
*/
function has(name) {
return runtimes.has(name);
}
/**
* @param {object} fn
*/
function release(fn) {
assert(isFunction(fn), 'Only functions can be captured');
runtimes.delete(fn);
}
module.exports = {
lastRun,
capture,
release,
has
};