Utility Functions Reference
Helper functions available in the ReUp frontend.
Formatting Utilities
formatCurrency
Format a number as currency.
import { formatCurrency } from '@/lib/utils/format';
formatCurrency(1234.56);
// => "$1,234.56"
formatCurrency(1234.56, 'EUR');
// => "€1,234.56"
formatDate
Format dates with various options.
import { formatDate } from '@/lib/utils/format';
formatDate('2026-01-27');
// => "Jan 27, 2026"
formatDate('2026-01-27', 'full');
// => "Monday, January 27, 2026"
formatDate('2026-01-27T10:30:00Z', 'datetime');
// => "Jan 27, 2026, 10:30 AM"
formatPercentage
Format a number as a percentage.
import { formatPercentage } from '@/lib/utils/format';
formatPercentage(22.5);
// => "22.5%"
formatPercentage(0.225, { fromDecimal: true });
// => "22.5%"
formatWeight
Format weight values with unit conversion.
import { formatWeight } from '@/lib/utils/format';
formatWeight(3.5, 'g');
// => "3.5g"
formatWeight(28, 'g', { convertTo: 'oz' });
// => "1 oz"
Validation Utilities
isValidEmail
import { isValidEmail } from '@/lib/utils/validation';
isValidEmail('user@example.com'); // true
isValidEmail('invalid-email'); // false
isValidLicense
import { isValidLicense } from '@/lib/utils/validation';
isValidLicense('C10-0000001-LIC', 'CA');
// => true (California retail license format)
isValidSKU
import { isValidSKU } from '@/lib/utils/validation';
isValidSKU('BD-EIGHTH-001');
// => true
API Utilities
apiClient
Configured Axios instance for API calls.
import { apiClient } from '@/lib/api/client';
// GET request
const response = await apiClient.get('/inventory');
// POST request
const result = await apiClient.post('/orders', orderData);
handleApiError
Extract error message from API responses.
import { handleApiError } from '@/lib/api/errors';
try {
await apiClient.post('/orders', data);
} catch (error) {
const message = handleApiError(error);
// => "Invalid order quantity"
}
Array Utilities
groupBy
Group array items by a key.
import { groupBy } from '@/lib/utils/array';
const products = [
{ name: 'A', category: 'flower' },
{ name: 'B', category: 'edibles' },
{ name: 'C', category: 'flower' },
];
groupBy(products, 'category');
// => { flower: [...], edibles: [...] }
sortBy
Sort array by a property.
import { sortBy } from '@/lib/utils/array';
sortBy(products, 'name'); // ascending
sortBy(products, 'name', 'desc'); // descending
uniqueBy
Remove duplicates by a key.
import { uniqueBy } from '@/lib/utils/array';
uniqueBy(items, 'id');
String Utilities
slugify
Convert string to URL-friendly slug.
import { slugify } from '@/lib/utils/string';
slugify('Blue Dream Premium');
// => "blue-dream-premium"
truncate
Truncate string with ellipsis.
import { truncate } from '@/lib/utils/string';
truncate('A very long product description', 20);
// => "A very long product..."
capitalize
import { capitalize } from '@/lib/utils/string';
capitalize('hello world');
// => "Hello World"
Storage Utilities
localStorage helpers
import { storage } from '@/lib/utils/storage';
// Set with expiry
storage.set('key', value, { expiresIn: '1h' });
// Get with type safety
const data = storage.get<MyType>('key');
// Remove
storage.remove('key');