首页 > 解决方案 > Vue-Apollo 中的 GraphQL 标量解析器

问题描述

我正在尝试在我的 Vue-Apollo 项目中为 Date Scalar 编写解析器。

在我的 Apollo 服务器中,我scalar Date为该类型声明并制作了一个自定义解析器。每次服务器发送 Date 对象时,适当的序列化函数会自动将该类型转换为整数(符合 JSON 格式),反之亦然。

但是,在我的 Vue.js 客户端中,我找不到任何方法在 Vue 中自动回退我的自定义标量。我需要手动将这些时间戳(int)转换为我所做的 Date 类型的查询。

这是服务器端的示例,取自 Apollo 的官方网站:

const resolvers = {
  Date: new GraphQLScalarType({
    name: 'Date',
    description: 'Date custom scalar type',
    parseValue(value) {
      return new Date(value); // value from the client
    },
    serialize(value) {
      return value.getTime(); // value sent to the client
    },
    parseLiteral(ast) {
      if (ast.kind === Kind.INT) {
        return parseInt(ast.value, 10); // ast value is always in string format
      }
      return null;
    },
  }),
};

感谢您的时间(没有双关语)。

标签: vue.jsapollo-clientvue-apollo

解决方案


推荐阅读