Appearance
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 searchkey(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 hierarchyfileId(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 keyvalue(Any) - Value to cachettl(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 requestswindowMs(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}`)