@nent/core
Version:
35 lines (34 loc) • 860 B
JavaScript
/*!
* NENT 2022
*/
/* istanbul ignore file */
export class MockRequestAnimationFrameProvider {
constructor() {
this.handleCounter = 0;
this.queue = new Map();
}
requestAnimationFrame(callback) {
const handle = this.handleCounter++;
this.queue.set(handle, callback);
return handle;
}
cancelAnimationFrame(handle) {
this.queue.delete(handle);
}
triggerNextAnimationFrame(time = performance.now()) {
const nextEntry = this.queue.entries().next().value;
if (nextEntry === undefined)
return;
const [nextHandle, nextCallback] = nextEntry;
nextCallback(time);
this.queue.delete(nextHandle);
}
triggerAllAnimationFrames(time = performance.now()) {
while (this.queue.size > 0)
this.triggerNextAnimationFrame(time);
}
reset() {
this.queue.clear();
this.handleCounter = 0;
}
}