diff --git a/packages/api/src/platforms/vtex/resolvers/objectOrString.ts b/packages/api/src/platforms/vtex/resolvers/objectOrString.ts index b72dd85513..d43021dbfc 100644 --- a/packages/api/src/platforms/vtex/resolvers/objectOrString.ts +++ b/packages/api/src/platforms/vtex/resolvers/objectOrString.ts @@ -10,11 +10,7 @@ export const ObjectOrString = new GraphQLScalarType({ serialize: stringify, parseLiteral(ast) { if (ast.kind === Kind.STRING) { - try { - return JSON.parse(ast.value) - } catch (e) { - return ast.value - } + return getValueAsObjectOrString(ast.value) } return null @@ -23,16 +19,20 @@ export const ObjectOrString = new GraphQLScalarType({ function toObjectOrString(value: GraphQLScalarSerializer) { if (typeof value === 'string') { - try { - return JSON.parse(value) - } catch (e) { - return value - } + return getValueAsObjectOrString(value) } return null } +function getValueAsObjectOrString(value: string) { + try { + return JSON.parse(value) + } catch (e) { + return value + } +} + function stringify(value: GraphQLScalarSerializer) { if (typeof value === 'object') { return JSON.stringify(value)