giggle-guard
Version:
🛡️ Giggle Guard - A curated collection of 3000+ hilarious validation messages that turn boring form errors into delightful user experiences. Make your users smile instead of rage-quit!
112 lines (92 loc) • 3.96 kB
TypeScript
type Tone = "casual" | "dark" | "dramatic" | "friendly" | "funny" | "genZ" | "millennial" | "motivational" | "mysterious" | "nerdy" | "poetic" | "popCulture" | "professional" | "sarcastic" | "witty";
type FieldType = "address" | "checkbox" | "creditCard" | "date" | "email" | "file" | "general" | "name" | "password" | "phone" | "radio" | "select" | "time" | "url" | "zipcode";
type ErrorType = "doesntMatch" | "duplicate" | "expired" | "exists" | "format" | "inFuture" | "inPast" | "invalid" | "invalidCVV" | "invalidType" | "notSelected" | "outOfRange" | "required" | "tooLarge" | "tooLong" | "tooShort" | "tooSmall" | "tooWeak";
interface ValidationMessage {
id: string;
message: string;
tone: Tone;
fieldType: FieldType;
errorType: ErrorType;
category: string;
}
interface GetMessageOptions {
fieldType: FieldType;
errorType: ErrorType;
tone?: Tone;
excludeUsed?: boolean;
}
interface ValidationMessageMap {
[key: string]: ValidationMessage[];
}
interface GiggleGuardConfig {
defaultTone?: Tone | "random";
trackUsedMessages?: boolean;
fallbackToGeneric?: boolean;
strictValidation?: boolean;
}
declare const addressMessages: ValidationMessage[];
declare const checkboxMessages: ValidationMessage[];
declare const creditCardMessages: ValidationMessage[];
declare const dateMessages: ValidationMessage[];
declare const emailMessages: ValidationMessage[];
declare const fileMessages: ValidationMessage[];
declare const generalMessages: ValidationMessage[];
declare const nameMessages: ValidationMessage[];
declare const passwordMessages: ValidationMessage[];
declare const phoneMessages: ValidationMessage[];
declare const radioMessages: ValidationMessage[];
declare const selectMessages: ValidationMessage[];
declare const timeMessages: ValidationMessage[];
declare const urlMessages: ValidationMessage[];
declare const zipcodeMessages: ValidationMessage[];
declare const allMessages: ValidationMessage[];
declare const validateFieldErrorCombo: (fieldType: FieldType, errorType: ErrorType) => {
valid: boolean;
allowedErrors?: ErrorType[];
};
declare class GiggleGuard {
private config;
private usedMessages;
constructor(config?: GiggleGuardConfig);
/**
* Get a random validation message based on field type and error type
*/
getMessage(options: GetMessageOptions): string;
/**
* Get multiple messages for the same validation
*/
getMessages(options: GetMessageOptions, count?: number): string[];
/**
* Get a message by specific ID
*/
getMessageById(id: string): ValidationMessage | undefined;
/**
* Get all messages for a specific field type
*/
getMessagesByField(fieldType: FieldType): ValidationMessage[];
/**
* Get all messages with a specific tone
*/
getMessagesByTone(tone: Tone): ValidationMessage[];
/**
* Reset used messages tracking
*/
resetUsedMessages(): void;
/**
* Get statistics about available messages
*/
getStats(): {
total: number;
byFieldType: Record<FieldType, number>;
byTone: Record<Tone, number>;
byErrorType: Record<ErrorType, number>;
};
/**
* Update configuration
*/
updateConfig(newConfig: Partial<GiggleGuardConfig>): void;
}
declare const getMessage: (options: GetMessageOptions) => string;
declare const getMessages: (options: GetMessageOptions, count?: number) => string[];
export { GiggleGuard, addressMessages, allMessages, checkboxMessages, creditCardMessages, dateMessages, GiggleGuard as default, emailMessages, fileMessages, generalMessages, getMessage, getMessages, nameMessages, passwordMessages, phoneMessages, radioMessages, selectMessages, timeMessages, urlMessages, validateFieldErrorCombo, zipcodeMessages };
export type { ErrorType, FieldType, GetMessageOptions, GiggleGuardConfig, Tone, ValidationMessage, ValidationMessageMap };