@stryke/types
Version:
A package containing many base TypeScript type definitions that are shared across many projects.
21 lines (20 loc) • 1.25 kB
text/typescript
import { MessageDetails, MessageType } from "./messages.cjs";
//#region src/validations.d.ts
type ValidationDetail<TMessageType extends MessageType = MessageType> = MessageDetails<TMessageType> & {
/**
* The field path 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.
*/
path?: string | null;
};
type ErrorValidationDetail = ValidationDetail<"error">;
type WarningValidationDetail = ValidationDetail<"warning">;
type InfoValidationDetail = ValidationDetail<"info">;
type HelpValidationDetail = ValidationDetail<"help">;
type SuccessValidationDetail = ValidationDetail<"success">;
type InferValidationType<TMessageType extends MessageType> = TMessageType extends "error" ? ErrorValidationDetail : TMessageType extends "warning" ? WarningValidationDetail : TMessageType extends "help" ? InfoValidationDetail : TMessageType extends "info" ? SuccessValidationDetail : ValidationDetail;
//#endregion
export { ErrorValidationDetail, HelpValidationDetail, InferValidationType, InfoValidationDetail, SuccessValidationDetail, ValidationDetail, WarningValidationDetail };
//# sourceMappingURL=validations.d.cts.map