mirror of
https://github.com/discourse/discourse.git
synced 2024-12-03 20:03:40 +08:00
ea84a82f77
This is quite complex as it means that in production we have to build Ember CLI test files and allow them to be used by our Rails application. There is a fair bit of glue we can remove in the future once we move to Ember CLI completely.
21 lines
705 B
JavaScript
21 lines
705 B
JavaScript
import { debounce, next, run } from "@ember/runloop";
|
|
import { isLegacyEmber, isTesting } from "discourse-common/config/environment";
|
|
|
|
/**
|
|
Debounce a Javascript function. This means if it's called many times in a time limit it
|
|
should only be executed once (at the end of the limit counted from the last call made).
|
|
Original function will be called with the context and arguments from the last call made.
|
|
**/
|
|
|
|
let testingFunc = isLegacyEmber() ? run : next;
|
|
|
|
export default function () {
|
|
if (isTesting()) {
|
|
// Don't include the time argument (in ms)
|
|
let args = [].slice.call(arguments, 0, -1);
|
|
return testingFunc.apply(void 0, args);
|
|
} else {
|
|
return debounce(...arguments);
|
|
}
|
|
}
|