@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
50 lines (49 loc) • 1.86 kB
JavaScript
/*! All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://github.com/Esri/calcite-design-system/blob/dev/LICENSE.md for details.
v3.2.1 */
import { l as logLevel } from "./runtime.js";
const loggedDeprecations = /* @__PURE__ */ new Set();
const logLevels = {
trace: 0,
debug: 1,
info: 2,
warn: 4,
error: 8,
off: 10
};
function willLog(level) {
return logLevels[level] >= logLevels[logLevel];
}
function forwardToConsole(level, ...data) {
if (!willLog(level)) {
return;
}
const badgeTemplate = "%ccalcite";
const badgeStyle = "background: #007AC2; color: #fff; border-radius: 4px; padding: 2px 4px;";
console[level].call(this, badgeTemplate, badgeStyle, ...data);
}
let listFormatter;
const logger = {
debug: (message) => forwardToConsole("debug", message),
info: (message) => forwardToConsole("info", message),
warn: (message) => forwardToConsole("warn", message),
error: (message) => forwardToConsole("error", message),
trace: (message) => forwardToConsole("trace", message),
deprecated
};
function deprecated(context, { component, name, suggested, removalVersion }) {
const key = `${context}:${context === "component" ? "" : component}${name}`;
if (loggedDeprecations.has(key)) {
return;
}
loggedDeprecations.add(key);
const multiSuggestions = Array.isArray(suggested);
if (multiSuggestions && !listFormatter) {
listFormatter = new Intl.ListFormat("en", { style: "long", type: "disjunction" });
}
const message = `[${name}] ${context} is deprecated and will be removed in ${removalVersion === "future" ? `a future version` : `v${removalVersion}`}.${suggested ? ` Use ${multiSuggestions ? listFormatter.format(suggested.map((suggestion) => `"${suggestion}"`)) : `"${suggested}"`} instead.` : ""}`;
forwardToConsole("warn", message);
}
export {
logger as l
};