guardz-event
Version:
Type-safe event handling with runtime validation using guardz for unsafe data from 3rd parties
74 lines • 3.87 kB
TypeScript
import type { EventResult, SafeEventConfig } from './safe-event-never-throws';
/**
* Safe Intersection Observer handler
* Usage: const safeIntersectionHandler = safeIntersectionObserver({ guard: isIntersectionData });
* observer.observe(element);
*/
export declare function safeIntersectionObserver<T>(config: SafeEventConfig<T>): (entries: IntersectionObserverEntry[]) => EventResult<T>[];
/**
* Safe Resize Observer handler
* Usage: const safeResizeHandler = safeResizeObserver({ guard: isResizeData });
* observer.observe(element);
*/
export declare function safeResizeObserver<T>(config: SafeEventConfig<T>): (entries: ResizeObserverEntry[]) => EventResult<T>[];
/**
* Safe Mutation Observer handler
* Usage: const safeMutationHandler = safeMutationObserver({ guard: isMutationData });
* observer.observe(target, config);
*/
export declare function safeMutationObserver<T>(config: SafeEventConfig<T>): (mutations: MutationRecord[]) => EventResult<T>[];
/**
* Safe Performance Observer handler
* Usage: const safePerformanceHandler = safePerformanceObserver({ guard: isPerformanceData });
* observer.observe({ entryTypes: ['navigation'] });
*/
export declare function safePerformanceObserver<T>(config: SafeEventConfig<T>): (list: PerformanceObserverEntryList) => EventResult<T>[];
/**
* Safe Geolocation handler
* Usage: const safeGeoHandler = safeGeolocation({ guard: isGeoData });
* navigator.geolocation.getCurrentPosition(safeGeoHandler);
*/
export declare function safeGeolocation<T>(config: SafeEventConfig<T>): (position: GeolocationPosition) => EventResult<T>;
/**
* Safe Device Orientation handler
* Usage: const safeOrientationHandler = safeDeviceOrientation({ guard: isOrientationData });
* window.addEventListener('deviceorientation', safeOrientationHandler);
*/
export declare function safeDeviceOrientation<T>(config: SafeEventConfig<T>): (event: DeviceOrientationEvent) => EventResult<T>;
/**
* Safe Device Motion handler
* Usage: const safeMotionHandler = safeDeviceMotion({ guard: isMotionData });
* window.addEventListener('devicemotion', safeMotionHandler);
*/
export declare function safeDeviceMotion<T>(config: SafeEventConfig<T>): (event: DeviceMotionEvent) => EventResult<T>;
/**
* Safe Service Worker Message handler
* Usage: const safeSWHandler = safeServiceWorkerMessage({ guard: isSWMessageData });
* self.addEventListener('message', safeSWHandler);
*/
export declare function safeServiceWorkerMessage<T>(config: SafeEventConfig<T>): (event: MessageEvent) => EventResult<T>;
/**
* Safe Broadcast Channel handler
* Usage: const safeBCHandler = safeBroadcastChannel({ guard: isBCData });
* channel.addEventListener('message', safeBCHandler);
*/
export declare function safeBroadcastChannel<T>(config: SafeEventConfig<T>): (event: MessageEvent) => EventResult<T>;
/**
* Safe Payment Request handler
* Usage: const safePaymentHandler = safePaymentRequest({ guard: isPaymentData });
* paymentRequest.addEventListener('paymentmethodchange', safePaymentHandler);
*/
export declare function safePaymentRequest<T>(config: SafeEventConfig<T>): (event: PaymentMethodChangeEvent) => EventResult<T>;
/**
* Safe Battery Status handler
* Usage: const safeBatteryHandler = safeBatteryStatus({ guard: isBatteryData });
* battery.addEventListener('levelchange', safeBatteryHandler);
*/
export declare function safeBatteryStatus<T>(config: SafeEventConfig<T>): () => Promise<EventResult<T>>;
/**
* Safe Network Information handler
* Usage: const safeNetworkHandler = safeNetworkInformation({ guard: isNetworkData });
* connection.addEventListener('change', safeNetworkHandler);
*/
export declare function safeNetworkInformation<T>(config: SafeEventConfig<T>): () => EventResult<T>;
//# sourceMappingURL=additional-sources.d.ts.map