Comments (6)
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.
@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.
@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.
https://github.com/excitement-engineer/graphql-iso-date
from graphql.
Fixed thanks to #8 pull request. I'll push it together with the incoming release 🙂
from graphql.
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)
- `GraphQLModule` should throw an error if schema files are not found HOT 2
- Expose GraphQLModule options and gqlSchemaHost to support Serverless
- How to send partial data with error object using @Context
- CustomScalar parseLiteral doesn't allow null return type HOT 2
- Unable to Specify forRoutes Argument When Assigning Middleware to '/graphql' Endpoint
- ResolveField shouldn't be called when the field already has a value HOT 1
- Support for Custom Fields Decorators in Mapped types
- Extend `dateScalarMode` and `numberScalarMode` to allow custom scalars to be used by default
- Subscription graphql this on resolve does not access services being injected in the constructor HOT 1
- Support for @defer directive in GraphQL HOT 2
- @nestjs/graphql compatibility with ts-morph 22.0.0 HOT 1
- Regular Expression Denial of Service (ReDoS) vulnerability HOT 2
- Feat | clarifying `DefinitionsGeneratorOptions#defaultTypeMapping` supported types
- Incomplete schema produced with code-first approach: directives are omitted HOT 1
- @nestjs/graphql depends on vulnerable version of ws HOT 1
- Upgrade WS dependency - ws affected by a DoS when handling a request with many HTTP headers HOT 3
- v12.2.0 - Error: Schema must contain uniquely named types but contains multiple types named "DateTime"
- npm warn deprecated @apollo/[email protected] HOT 1
- Allow sortSchema via GraphQLDefinitionsFactory HOT 1
- NestJS GraphQL subscriptions not working with graphql-ws
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql.