const result = await collection.execute()
if (result.error) {
switch (result.error._tag) {
case 'NetworkError':
// Connection issues, timeouts, aborted requests
console.log(result.error.code) // 'TIMEOUT' | 'CONNECTION_FAILED' | 'ABORTED' | ...
break
case 'ApiError':
// Server errors, rate limits
console.log(result.error.source) // 'layers' | 'storefront'
console.log(result.error.status) // HTTP status code
break
case 'ValidationError':
// Invalid parameters
console.log(result.error.operation) // which method failed
console.log(result.error.fields) // [{ field, code, message }]
break
case 'ConfigError':
// SDK configuration issues
console.log(result.error.field) // which config field
break
}
} else {
const data = result.data
}