Skip to main content

One warning per distinct set of unresolved values, or strict errors

{
  "warning": "1 value(s) did not resolve to a nfl team: 'XYZ' (unknown). Use suggest() for candidates, or strict: true to throw.",
  "timesWarned": 2,
  "error": "UnresolvedTeamError: 1 value(s) did not resolve to a nfl team: 'XYZ' (unknown)"
}
import {
SdvplotError,
UnresolvedTeamError,
loadLeague,
resetWarnings,
resolveSync,
setWarningHandler,
} from "@sportsdataverse/sdvplot";

await loadLeague("nfl");
const seen: string[] = [];
setWarningHandler((message) => seen.push(message)); // instead of console.warn
resolveSync(["KC", "XYZ"], "nfl"); // [KC's id, undefined] and one warning
resolveSync(["KC", "XYZ"], "nfl"); // the same warning again: silent
resetWarnings();
resolveSync(["KC", "XYZ"], "nfl"); // warns again
setWarningHandler(null); // back to console.warn

let error = "";
try {
resolveSync(["KC", "XYZ"], "nfl", { strict: true });
} catch (e) {
if (e instanceof UnresolvedTeamError && e instanceof SdvplotError) error = `${e.name}: ${e.message}`;
}

{ warning: seen[0], timesWarned: seen.length, error };

Tags: resolve · warnings · strict · nfl. All sdvplot examples.