Пользовательская директива по сшивке схемы - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь добавить директиву к типу, который расширяет ее из удаленной схемы.

   const extensionSchema = `
    directive @upper on FIELD_DEFINITION
    extend type User {
        firstname: String @upper
    }

`;
    // resolvedSchemas is an array of makeRemoteExecutableSchema coming from introspection queries.
resolvedSchemas.push(extensionSchema);

return mergeSchemas({
    schemas: resolvedSchemas,
    schemaDirectives: {
        upper: UpperCaseDirective
    }
   })

И я получаю: Error: Unknown directive "upper"..Чего мне не хватает?

Моя директива:

const { SchemaDirectiveVisitor } = require("graphql-tools");
const { defaultFieldResolver } = require("graphql");

module.exports = class UpperCaseDirective extends SchemaDirectiveVisitor {
  visitFieldDefinition(field) {
    const { resolve = defaultFieldResolver } = field;
    field.resolve = async function (...args) {
            const result = await resolve.apply(this, args);
            console.log("RESULTADOOOO", result);
      if (typeof result === "string") {
        return result.toUpperCase();
      }
      return result;
    };
  }
}
...