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

Search Query State ​

  • File: utils/searchQueryState.js
  • Purpose: Encodes/decodes and normalizes DAM search URL state so queries, filters, and sorting can be preserved and shared consistently.

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}`)