@dash0/sdk-web
Version:
Dash0's Web SDK to collect telemetry from end-users' web browsers
26 lines (20 loc) • 820 B
text/typescript
import { noop } from "./fn";
type Logger = (...args: any[]) => void;
export const log: Logger = createLogger("log");
export const info: Logger = createLogger("info");
export const warn: Logger = createLogger("warn");
export const error: Logger = createLogger("error");
export const debug: Logger = createLogger("debug");
function createLogger(method: Extract<keyof Console, "log" | "info" | "warn" | "error" | "debug">): Logger {
if (typeof console === "undefined" || typeof console.log !== "function" || typeof console.log.apply !== "function") {
return noop;
}
if (console[method] && typeof console[method].apply === "function") {
return function () {
console[method].apply(console, arguments as any);
};
}
return function () {
console.log.apply(console, arguments as any);
};
}