Add basic Spree framework structure

This commit is contained in:
tniezg
2021-07-23 11:23:42 +02:00
parent dd6ad7556e
commit a3ef27f5e7
9 changed files with 317 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
import { FetcherError } from '@commerce/utils/errors'
import { errors } from '@spree/storefront-api-v2-sdk'
const convertSpreeErrorToGraphQlError = (
error: errors.SpreeError
): FetcherError => {
if (error instanceof errors.ExpandedSpreeError) {
// Assuming error.errors[key] is a list of strings.
if ('base' in error.errors) {
const baseErrorMessage = error.errors.base as unknown as string
return new FetcherError({
status: error.serverResponse.status,
message: baseErrorMessage,
})
}
const fetcherErrors = Object.keys(error.errors).map((sdkErrorKey) => {
const errors = error.errors[sdkErrorKey] as string[]
return {
message: `${sdkErrorKey} ${errors.join(', ')}`,
}
})
return new FetcherError({
status: error.serverResponse.status,
errors: fetcherErrors,
})
}
if (error instanceof errors.BasicSpreeError) {
return new FetcherError({
status: error.serverResponse.status,
message: error.summary,
})
}
return new FetcherError({
status: error.serverResponse.status,
message: error.message,
})
}
export default convertSpreeErrorToGraphQlError