@entrolytics/utilities
v2.1.0
Published
Common utilities and helper functions for Entrolytics
Maintainers
Readme
@entrolytics/utilities
Common utilities and helper functions for Entrolytics projects.
Installation
npm install @entrolytics/utilities
# or
pnpm add @entrolytics/utilities
# or
yarn add @entrolytics/utilitiesFeatures
- 🧵 String utilities (truncate, capitalize, slugify, case conversion)
- 📅 Date utilities (formatting, ranges, comparisons)
- 🔗 URL utilities (parsing, validation, building)
- 🔐 Hash utilities (simple hashing, ID generation)
- 🔄 Retry with exponential backoff
- ⏱️ Debounce and throttle functions
- 💾 Safe localStorage/sessionStorage wrappers
- 🌲 Tree-shakeable exports
- 📦 Zero dependencies
Usage
String Utilities
import { truncate, slugify, toKebabCase } from '@entrolytics/utilities';
truncate('Long text here', 10); // 'Long te...'
slugify('Hello World!'); // 'hello-world'
toKebabCase('camelCaseString'); // 'camel-case-string'Date Utilities
import { getLastNDays, toDateString, addDays } from '@entrolytics/utilities';
const { startDate, endDate } = getLastNDays(7);
toDateString(new Date()); // '2025-12-26'
addDays(new Date(), 5); // Date 5 days from nowURL Utilities
import { parseQueryParams, getDomain, combineUrl } from '@entrolytics/utilities';
parseQueryParams('https://example.com?foo=bar'); // { foo: 'bar' }
getDomain('https://example.com/path'); // 'example.com'
combineUrl('https://api.com', 'v1', 'users'); // 'https://api.com/v1/users'Retry with Backoff
import { retry } from '@entrolytics/utilities';
await retry(
async () => {
const response = await fetch('https://api.example.com/data');
return response.json();
},
{
maxAttempts: 3,
delayMs: 1000,
backoffMultiplier: 2,
onRetry: (error, attempt) => {
console.log(`Retry attempt ${attempt}:`, error.message);
},
}
);Debounce & Throttle
import { debounce, throttle } from '@entrolytics/utilities';
const debouncedSearch = debounce((query: string) => {
console.log('Searching for:', query);
}, 300);
const throttledScroll = throttle(() => {
console.log('Scrolling...');
}, 100);Storage Utilities
import { storage, sessionStorage } from '@entrolytics/utilities';
// localStorage
storage.set('user', { name: 'John', id: 123 });
const user = storage.get('user'); // { name: 'John', id: 123 }
storage.remove('user');
// sessionStorage
sessionStorage.set('tempData', { value: 42 });
const data = sessionStorage.get('tempData');API Reference
See source code for full API documentation with TypeScript types.
License
MIT © Entrolytics
