// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. import { getLogger } from "./get_logger.ts"; import type { GenericFunction } from "./logger.ts"; /** Log with critical level, using default logger. */ export function critical(msg: () => T, ...args: unknown[]): T | undefined; export function critical( msg: T extends GenericFunction ? never : T, ...args: unknown[] ): T; export function critical( msg: (T extends GenericFunction ? never : T) | (() => T), ...args: unknown[] ): T | undefined { // Assist TS compiler with pass-through generic type if (msg instanceof Function) { return getLogger("default").critical(msg, ...args); } return getLogger("default").critical(msg, ...args); }