UNPKG

guardz-event

Version:

Type-safe event handling with runtime validation using guardz for unsafe data from 3rd parties

96 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventUtils = void 0; /** * Utility functions for event handling */ class EventUtils { /** * Create a standardized error context */ static createErrorContext(type, eventType, options = {}) { return { type, eventType, ...options }; } /** * Check if an event is null or undefined */ static isNullEvent(event) { return event === null || event === undefined; } /** * Check if data is null or undefined */ static isNullData(data) { return data === null || data === undefined; } /** * Extract event type safely */ static getEventType(event) { if (event && typeof event === 'object' && 'type' in event) { return event.type || 'unknown'; } return 'unknown'; } /** * Extract origin safely from MessageEvent */ static getOrigin(event) { if (event && typeof event === 'object' && 'origin' in event) { return event.origin; } return undefined; } /** * Validate security origins */ static validateOrigin(origin, allowedOrigins) { if (!allowedOrigins || allowedOrigins.length === 0) { return { isValid: true }; } if (!origin) { return { isValid: false, error: 'Origin is required but not provided' }; } if (!allowedOrigins.includes(origin)) { return { isValid: false, error: `Origin not allowed: ${origin}` }; } return { isValid: true }; } /** * Create a standardized error message */ static createErrorMessage(baseMessage, identifier, details) { let message = baseMessage; if (identifier) { message += `: ${identifier}`; } if (details) { message += ` (${details})`; } return message; } /** * Safely extract error message from unknown error */ static extractErrorMessage(error) { if (error instanceof Error) { return error.message; } if (typeof error === 'string') { return error; } return 'Unknown error'; } } exports.EventUtils = EventUtils; //# sourceMappingURL=EventUtils.js.map