Initial commit: ERP system with advance verification fixes

This commit is contained in:
System Administrator
2026-03-25 23:55:36 +07:00
commit 563ca12d76
5920 changed files with 828689 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
'use strict';
const mimicFn = require('mimic-fn');
module.exports = (inputFunction, options = {}) => {
if (typeof inputFunction !== 'function') {
throw new TypeError(`Expected the first argument to be a function, got \`${typeof inputFunction}\``);
}
const {
wait = 0,
before = false,
after = true
} = options;
if (!before && !after) {
throw new Error('Both `before` and `after` are false, function wouldn\'t be called.');
}
let timeout;
let result;
const debouncedFunction = function (...arguments_) {
const context = this;
const later = () => {
timeout = undefined;
if (after) {
result = inputFunction.apply(context, arguments_);
}
};
const shouldCallNow = before && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (shouldCallNow) {
result = inputFunction.apply(context, arguments_);
}
return result;
};
mimicFn(debouncedFunction, inputFunction);
debouncedFunction.cancel = () => {
if (timeout) {
clearTimeout(timeout);
timeout = undefined;
}
};
return debouncedFunction;
};