How to use @graphql-codegen/typescript - 4 common examples

To help you get started, we’ve selected a few @graphql-codegen/typescript examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github dotansimha / graphql-code-generator / packages / plugins / typescript / type-graphql / src / index.ts View on Github external
export const plugin: PluginFunction = (schema: GraphQLSchema, documents: Types.DocumentFile[], config: TypeGraphQLPluginConfig) => {
  const visitor = new TypeGraphQLVisitor(schema, config);
  const printedSchema = printSchema(schema);
  const astNode = parse(printedSchema);
  const maybeValue = `export type Maybe = ${visitor.config.maybeValue};`;
  const visitorResult = visit(astNode, { leave: visitor });
  const introspectionDefinitions = includeIntrospectionDefinitions(schema, documents, config);
  const scalars = visitor.scalarsDefinition;

  let definitions = visitorResult.definitions;
  // Sort output by interfaces first, classes last to prevent TypeScript errors
  definitions.sort((definition1, definition2) => (isDefinitionInterface(definition1) ? -1 : 1));

  return {
    prepend: [...visitor.getEnumsImports(), maybeValue, TYPE_GRAPHQL_IMPORT, DECORATOR_FIX],
    content: [scalars, ...definitions, ...introspectionDefinitions].join('\n'),
  };
};
github dotansimha / graphql-code-generator / packages / plugins / typescript / type-graphql / src / visitor.ts View on Github external
decoratorName: {
        type: 'ObjectType',
        interface: 'InterfaceType',
        arguments: 'ArgsType',
        field: 'Field',
        input: 'InputType',
        ...(pluginConfig.decoratorName || {}),
      },
      ...(additionalConfig || {}),
    } as TParsedConfig);
    autoBind(this);

    const enumNames = Object.values(schema.getTypeMap())
      .map(type => (type instanceof GraphQLEnumType ? type.name : undefined))
      .filter(t => t);
    this.setArgumentsTransformer(new TypeScriptOperationVariablesToObject(this.scalars, this.convertName, this.config.avoidOptionals.object, this.config.immutableTypes, null, enumNames, this.config.enumPrefix, this.config.enumValues));
    this.setDeclarationBlockConfig({
      enumNameValueSeparator: ' =',
    });
  }
github dotansimha / graphql-code-generator / packages / plugins / typescript / mongodb / src / visitor.ts View on Github external
constructor(private _schema: GraphQLSchema, pluginConfig: TypeScriptMongoPluginConfig) {
    super(pluginConfig, ({
      dbTypeSuffix: pluginConfig.dbTypeSuffix || 'DbObject',
      dbInterfaceSuffix: pluginConfig.dbInterfaceSuffix || 'DbInterface',
      objectIdType: resolveObjectId(pluginConfig.objectIdType).identifier,
      objectIdImport: resolveObjectId(pluginConfig.objectIdType).module,
      idFieldName: pluginConfig.idFieldName || '_id',
      enumsAsString: getConfigValue(pluginConfig.enumsAsString, true),
      avoidOptionals: getConfigValue(pluginConfig.avoidOptionals, false),
      scalars: buildScalars(_schema, pluginConfig.scalars, DEFAULT_SCALARS),
    } as Partial) as any);
    autoBind(this);
    this._variablesTransformer = new TypeScriptOperationVariablesToObject(this.scalars, this.convertName, false, false);
  }
github dotansimha / graphql-code-generator / packages / plugins / typescript / resolvers / src / visitor.ts View on Github external
constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema) {
    super(
      pluginConfig,
      {
        avoidOptionals: getConfigValue(pluginConfig.avoidOptionals, false),
        immutableTypes: getConfigValue(pluginConfig.immutableTypes, false),
        useIndexSignature: getConfigValue(pluginConfig.useIndexSignature, false),
      } as ParsedTypeScriptResolversConfig,
      schema
    );
    autoBind(this);
    this.setVariablesTransformer(new TypeScriptOperationVariablesToObject(this.scalars, this.convertName, this.config.avoidOptionals, this.config.immutableTypes, null, [], this.config.enumPrefix, this.config.enumValues));

    if (this.config.useIndexSignature) {
      this._declarationBlockConfig = {
        blockTransformer(block) {
          return `ResolversObject<${block}>`;
        },
      };
    }
  }

@graphql-codegen/typescript

GraphQL Code Generator plugin for generating TypeScript types

MIT
Latest version published 2 months ago

Package Health Score

83 / 100
Full package analysis

Similar packages