cherry pick (#6875) suppress deprecation warnings to once per unique args (#6881)

fix: suppress deprecation warnings to once per unique args (#6875)

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
This commit is contained in:
Andrew Henry 2023-08-02 09:50:29 -07:00 committed by GitHub
parent 44415b3769
commit 0f5d3afc4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -42,6 +42,7 @@ class TimeContext extends EventEmitter {
this.activeClock = undefined;
this.offsets = undefined;
this.mode = undefined;
this.warnCounts = {};
this.tick = this.tick.bind(this);
}
@ -648,6 +649,17 @@ class TimeContext extends EventEmitter {
}
#warnMethodDeprecated(method, newMethod) {
const MAX_CALLS = 1; // Only warn once per unique method and newMethod combination
const key = `${method}.${newMethod}`;
const currentWarnCount = this.warnCounts[key] || 0;
if (currentWarnCount >= MAX_CALLS) {
return; // Don't warn if already warned once
}
this.warnCounts[key] = currentWarnCount + 1;
let message = `[DEPRECATION WARNING]: The ${method} API method is deprecated and will be removed in a future version of Open MCT.`;
if (newMethod) {