guardz-event
Version:
Type-safe event handling with runtime validation using guardz for unsafe data from 3rd parties
96 lines • 2.48 kB
JavaScript
;
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