GithubHelp home page GithubHelp logo

Comments (6)

dcasier avatar dcasier commented on April 20, 2024 1

Another temporary solution :

  import { ResolversExplorerService } from '@nestjs/graphql/resolvers-explorer.service'
  import { makeExecutableSchema } from 'graphql-tools'

  const resolverFunctions = {
    CustomScalar: myCustomScalarType
  }

  (...)

  createSchema() {
    const typeDefs = this.graphQLFactory.mergeTypesByPaths('./**/*.gql')
    //const schema = this.graphQLFactory.createSchema(typeDefs)

    const resolvers = this.resolversExplorerService.explore()
    Object.assign(resolvers, customScalarsFunctions)

    const schema = makeExecutableSchema({
      typeDefs,
      resolvers: resolvers,
    })
    return schema
  }

from graphql.

pawpartyka avatar pawpartyka commented on April 20, 2024

@valburyakov I also had a problem with it.

Solution:

date-time.scalar-type.ts

// ...
export const GraphQLDateTime = new GraphQLScalarType({
  name: 'DateTime',
  parseValue(value) {
    return new Date(value);
  },
  serialize(value) {
    return moment(value).toISOString();
  },
  parseLiteral(ast) {
    if (ast.kind === Kind.STRING) {
      return new Date(ast.value);
    }

    return null;
  },
});

bootstrap.ts

/** Scalar types **/
import { scalarTypes } from './type-implementations';

// ....

export class AppModule {

  // .........

  private createSchema(): GraphQLSchema {
    const schema = this.graphQLFactory.createSchema({
      typeDefs: [
        this.graphQLFactory.mergeTypesByPaths('./**/*.graphqls'),
      ],
      resolvers: {
        ...scalarTypes,
      },
      directiveResolvers: {},
    });

    const delegates = this.graphQLFactory.createDelegates();

    return mergeSchemas({
      schemas: [
        schema,
      ],
      resolvers: delegates,
    });
  }
}

But resolvers in createSchema function have problem, because this function overwrite resolvers property. I created pull request to fix it. Maybe there are other better solutions, but I have not found one.

from graphql.

valburyakov avatar valburyakov commented on April 20, 2024

@partyka95 Thx for the solution. But for me it still doesn't work, I did like in your example but no resolver for custom scalar is loaded:

app.module.ts

createSchema() {
    const typeDefs = this.graphQLFactory.mergeTypesByPaths('./**/*.graphql');
    const schema = this.graphQLFactory.createSchema({
      typeDefs,
      resolvers: {
        Date: GraphQLDateTime
      },
      directiveResolvers: {},
    });

    const delegates = this.graphQLFactory.createDelegates();

    return mergeSchemas({
      schemas: [
        schema,
      ],
      resolvers: delegates
    });
  }

Or this solution is working only with your fix in PR ? And show your scalarTypes .

from graphql.

pawpartyka avatar pawpartyka commented on April 20, 2024

@valburyakov :

https://github.com/excitement-engineer/graphql-iso-date

#8

from graphql.

kamilmysliwiec avatar kamilmysliwiec commented on April 20, 2024

Fixed thanks to #8 pull request. I'll push it together with the incoming release 🙂

from graphql.

lock avatar lock commented on April 20, 2024

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

from graphql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.