@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
35 lines (34 loc) • 1.44 kB
TypeScript
import { LuminaJsx } from '@arcgis/lumina';
export type LogLevel = "debug" | "info" | "warn" | "error" | "trace" | "off";
type Message = string;
type MajorVersion = number;
type DeprecatedContext = "component" | "property" | "method" | "event" | "slot";
type DeprecatedParams = {
name: string;
suggested?: string | string[];
component?: string;
removalVersion: MajorVersion | "future";
};
type SimpleComponentName<T> = T extends `calcite-${infer Name}` ? Name : T;
type ComponentDeprecatedParams = Omit<DeprecatedParams, "name"> & {
name: SimpleComponentName<keyof LuminaJsx.IntrinsicElements>;
};
/** Exported for testing purposes only */
export declare const loggedDeprecations: Set<string>;
export declare const logger: {
readonly debug: (message: Message) => void;
readonly info: (message: Message) => void;
readonly warn: (message: Message) => void;
readonly error: (message: Message) => void;
readonly trace: (message: Message) => void;
readonly deprecated: typeof deprecated;
};
/**
* Logs a deprecation warning to the console.
*
* @param context the context in which the deprecation is occurring
* @param params the deprecation details
*/
declare function deprecated(context: Exclude<DeprecatedContext, "component">, params: DeprecatedParams): void;
declare function deprecated(context: Extract<DeprecatedContext, "component">, params: ComponentDeprecatedParams): void;
export {};