Package Exports
- browser-hooks
Readme
Browser Hooks
A comprehensive collection of framework-agnostic browser API utilities exposed as hooks.
Installation
NPM
npm install browser-hooks
CDN
<!-- UMD version -->
<script src="https://unpkg.com/browser-hooks@1.0.0/dist/browser-hooks.umd.cjs"></script>
<!-- ES Module version -->
<script type="module">
import { useNotifications } from 'https://unpkg.com/browser-hooks@1.0.0/dist/browser-hooks.js';
</script>
Available Hooks
This library provides hooks for various browser APIs:
Storage and Data
useLocalStorage
- Local storage operationsuseClipboard
- Clipboard APIuseFileSystem
- File System APIuseFile
- File API operations
Media and Display
useMediaStream
- Media Stream APIuseMediaRecorder
- Media RecordinguseMediaSession
- Media Session APIuseScreenCapture
- Screen Capture APIusePictureInPicture
- Picture-in-Picture APIuseWebAudio
- Web Audio APIuseFullscreen
- Fullscreen API
Device Features
useDeviceOrientation
- Device Orientation APIuseDeviceMemory
- Device Memory APIuseDevicePosture
- Device Posture APIuseEyeDropper
- EyeDropper APIuseWebUSB
- Web USB APIuseWebHID
- Web HID APIuseWebNFC
- Web NFC API
Communication
useWebRTC
- WebRTC functionalityuseBroadcastChannel
- BroadcastChannel APIuseMessageChannel
- MessageChannel APIuseWebTransport
- WebTransport APIuseBeacon
- Beacon API
Security and Authentication
useWebAuthn
- Web Authentication APIuseWebCrypto
- Web Crypto APIuseCredentialManagement
- Credential Management APIusePermissions
- Permissions API
Performance and Monitoring
usePerformance
- Performance APIuseResourceTiming
- Resource Timing APIuseIdleDetection
- Idle Detection APIuseNetwork
- Network Information API
UI and Interaction
usePointerEvents
- Pointer EventsusePointerLock
- Pointer Lock APIuseDragAndDrop
- Drag and Drop APIusePopover
- Popover APIuseKeyboard
- Keyboard API
And many more...
Usage Examples
Using Local Storage
import { useLocalStorage } from 'browser-hooks';
const { getItem, setItem, removeItem } = useLocalStorage();
setItem('key', 'value');
const value = getItem('key');
Using Notifications
import { useNotifications } from 'browser-hooks';
const { requestPermission, sendNotification } = useNotifications();
await requestPermission();
sendNotification('Title', { body: 'Message body' });
Using Media Stream
import { useMediaStream } from 'browser-hooks';
const { getVideoStream } = useMediaStream();
const stream = await getVideoStream();
Browser Support
Most hooks require modern browser support. Check individual hook documentation for specific browser compatibility information.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License