UNPKG

@storm-stack/types

Version:

⚡ The storm-stack monorepo contains utility applications, tools, and various libraries to create modern and scalable web applications.

17 lines (16 loc) 1.47 kB
import { MessageDetails, MessageType } from "./messages"; export type ValidationDetails<TMessageType extends typeof MessageType.ERROR | typeof MessageType.WARNING | typeof MessageType.INFO | typeof MessageType.HELP | typeof MessageType.SUCCESS = typeof MessageType.ERROR | typeof MessageType.WARNING | typeof MessageType.INFO | typeof MessageType.HELP | typeof MessageType.SUCCESS> = MessageDetails<TMessageType> & { /** * The field that the message is related to. * * @remarks * If `undefined` or `null`, the message is not related to a specific field - in this case it is likely a global/form message. */ field?: string | null; }; export type ErrorValidationDetails = ValidationDetails<typeof MessageType.ERROR>; export type WarningValidationDetails = ValidationDetails<typeof MessageType.WARNING>; export type InfoValidationDetails = ValidationDetails<typeof MessageType.INFO>; export type HelpValidationDetails = ValidationDetails<typeof MessageType.HELP>; export type SuccessValidationDetails = ValidationDetails<typeof MessageType.SUCCESS>; export type InferValidationType<TMessageType extends MessageType> = TMessageType extends typeof MessageType.ERROR ? ErrorValidationDetails : TMessageType extends typeof MessageType.WARNING ? WarningValidationDetails : TMessageType extends typeof MessageType.INFO ? InfoValidationDetails : TMessageType extends typeof MessageType.SUCCESS ? SuccessValidationDetails : ValidationDetails;