kenutil
v1.1.2
Published
Utilities for myself
Readme
KenUtil
Personal JavaScript/TypeScript utility collection and React Hooks.
Install
npm install kenutilUsage
// Utility functions
import { capitalize, debounce, sleep } from 'kenutil';
// React Hooks
import { useDebounce, useForm, useMediaQuery } from 'kenutil';API
String
capitalize(str)- Capitalize first letterformatDate(dateStr, locale?)- Format date with locale supportnormalizeWhitespace(str)- Trim and normalize whitespace to single spaces
Array
uniqueArray(arr)- Remove duplicates using Setchunk(arr, size)- Split array into chunks of specified sizeshuffle(arr)- Shuffle array using Fisher-Yates algorithmsample(arr)- Get random element from array
Number
formatNumber(num)- Add thousands separator (1234567 → "1,234,567")randomInt(min, max)- Generate random integer (inclusive)median(nums)- Calculate median of number arrayaverage(nums)- Calculate average of number arrayinRange(n, min, max, inclusive?)- Check if number is in rangelerp(a, b, t)- Linear interpolation between two numbers
Object
isEmpty(obj)- Check if object is emptysafeJsonParse(str, fallback?)- JSON parse with fallback (default: {})deepClone(obj)- Deep clone with circular reference support
Async
sleep(ms)- Delay executiondebounce(func, delay)- Debounce functionthrottle(func, delay)- Throttle function execution
Browser
copyToClipboard(text)- Copy text to clipboardreadClipboardText()- Read text from clipboarddownloadFile(url, filename)- Trigger file downloadcn(...args)- Merge classNames
React Hooks
useOutsideClick(handler, listenCapturing?)- Detect clicks outside an elementuseLocalStorageState(initialValue, key)- Sync state with localStorageuseDebounce(value, delay)- Debounce a valueuseDebouncedCallback(callback, delay)- Debounce a callback functionuseThrottle(value, delay)- Throttle a valueuseThrottledCallback(callback, delay)- Throttle a callback functionusePrevious(value)- Track previous value of state/propuseVisibilityChange()- Track document visibility stateuseIntersectionObserver(options?)- Observe element visibility with IntersectionObserveruseWindowSize()- Track window width and heightuseIntervalWhen(callback, ms, startImmediately?, condition?)- Run callback on interval when condition is metuseFetch(url, options?)- Fetch data with loading and error statesuseMediaQuery(query, options?)- Track media query matches (includes BREAKPOINTS)useForm(options)- Lightweight form state management with validationuseOnlineStatus(options?)- Track online/offline status (simple or enhanced mode)useHover()- Track element hover stateuseUpdateEffect(effect, deps)- useEffect that skips initial render
License
ISC
