Skip to main content

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');