Skip to content

Utils Documentation

Overview

Utility functions provide reusable helper methods used throughout the application. They are located in the utils/ directory.

Utility Files

Helper Functions

  • File: utils/helper.js
  • Purpose: General utility functions

API Helpers

  • File: utils/index.js
  • Purpose: API-related utilities

File Hierarchy

  • File: utils/fileHierarchy.js
  • Purpose: File hierarchy management

Cache Helpers

  • File: utils/cacheHelpers.js
  • Purpose: Caching utilities

Cancel Token Manager

  • File: utils/cancelTokenManager.js
  • Purpose: Axios cancel token management

API Rate Limiter

  • File: utils/apiRateLimiter.js
  • Purpose: API rate limiting

Common Utilities

validateEmailAddr(email)

Validates email address format.

Parameters:

  • email (String) - Email address

Returns: String|null - Error message or null if valid

Example:

javascript
import { validateEmailAddr } from '~/utils'
const error = validateEmailAddr('[email protected]')

normalizeFileExtension(extension)

Normalizes file extension.

Parameters:

  • extension (String) - File extension

Returns: String - Normalized extension

Example:

javascript
import { normalizeFileExtension } from '~/utils'
const ext = normalizeFileExtension('.JPG') // 'jpg'

deepSearch(object, key)

Deep searches object for key.

Parameters:

  • object (Object) - Object to search
  • key (String) - Key to find

Returns: Any - Found value or undefined

Example:

javascript
import { deepSearch } from '~/utils'
const value = deepSearch(nestedObject, 'nested.key')

toQueryString(params)

Converts object to query string.

Parameters:

  • params (Object) - Parameters object

Returns: String - Query string

Example:

javascript
import { toQueryString } from '~/utils'
const query = toQueryString({ page: 1, limit: 10 })
// '?page=1&limit=10'

File Hierarchy Utilities

buildFileHierarchy(files)

Builds hierarchical file structure.

Parameters:

  • files (Array) - Flat file list

Returns: Object - Hierarchical structure

findFileInHierarchy(hierarchy, fileId)

Finds file in hierarchy.

Parameters:

  • hierarchy (Object) - File hierarchy
  • fileId (String|Number) - File ID

Returns: Object|null - File object or null

Cache Utilities

setCache(key, value, ttl)

Sets cache value with TTL.

Parameters:

  • key (String) - Cache key
  • value (Any) - Value to cache
  • ttl (Number) - Time to live in seconds

getCache(key)

Gets cached value.

Parameters:

  • key (String) - Cache key

Returns: Any - Cached value or null

clearCache(key)

Clears cache entry.

Parameters:

  • key (String) - Cache key

Cancel Token Management

createCancelToken()

Creates new cancel token.

Returns: CancelToken - Axios cancel token

cancelRequest(token)

Cancels request.

Parameters:

  • token (CancelToken) - Cancel token

Rate Limiting

createRateLimiter(maxRequests, windowMs)

Creates rate limiter.

Parameters:

  • maxRequests (Number) - Maximum requests
  • windowMs (Number) - Time window in milliseconds

Returns: Function - Rate limiter function

Usage Examples

In Component

javascript
import { validateEmailAddr, normalizeFileExtension } from '~/utils'

export default {
  methods: {
    validateEmail(email) {
      return validateEmailAddr(email)
    },
    normalizeExtension(ext) {
      return normalizeFileExtension(ext)
    }
  }
}

In API Service

javascript
import { toQueryString } from '~/utils'

const query = toQueryString({ page: 1, limit: 10 })
const response = await axios.get(`/api/endpoint${query}`)