Comments (6)
What would be a good way to start helping on this?
from graphql-js.
We're not sure yet. We'll speak with those working on GraphQL client tools at Facebook to figure out what will best support their needs and that will help us understand the direction to move in.
from graphql-js.
More about #16 (I think?), but is there any vision for parsing the schema definition language into (partial) "AST" (which you now build by hand) and providing an API to define resolve functions for individual attributes?
I have something roughly like this in mind:
import {schemaDefine} from 'graphql'
const schema = schemaDefine(`
type User {
name: String!
interests: [String]
}
queryType {
user(id: ID): User
}
`);
schema.getType('User').defineFieldResolvers(() => {
name: (user) => user.name,
interests: (user) => user.interests.map(interest => interest.label)
});
...
There's obviously more thinking to be done around defining custom scalars, etc., but is this something that you have on the roadmap or would be interested in?
from graphql-js.
This isn't something on the roadmap. We haven't considered an approach like that very seriously because while it could make simple cases more terse, it could also be harder to understand and harder to extend.
Documentation, for example, is missing from this particular suggestion and a critical part of a well built GraphQL server, so we want to avoid giving tools that makes documentation harder rather than easier.
There's probably something to a partial code-generation (similar to Rails or Yeoman) that would be really valuable to reduce typing, which is one of the interesting paths that could be taken for building a parser for client-side types.
The primary desire for client-side types, at least from how I've seen GraphQL used at Facebook over the last 3 years, is for doing code-generation in our client applications when the types a GraphQL server provides need to be extended by the iOS or Android client.
from graphql-js.
This is now mostly covered by #74
from graphql-js.
Individual changes increment towards this, and the tracking task is at graphql/graphql-spec#90
from graphql-js.
Related Issues (20)
- IHeyReally.org
- Suggestion: Bundling in v17, ESM, CJS, and the dual package hazard HOT 9
- Just to give my 2c, I'm not sure if `exports.development` and `exports.production` target conditionsa are widely supported, so some `import.env` shenanigans may still be necessary until that's widely adopted. HOT 1
- Collection of libraries and how they import from `graphql` HOT 20
- `process.env`, `globalThis`, and `typeof process` HOT 21
- Introspection queries don't support `@oneOf` HOT 2
- Tutorial data HOT 2
- astFromValue fails with a custom scalar serializing to an object value HOT 5
- In a response to a query about an Issue, the URL and other info is missing for links created with Reference editor button HOT 5
- author/committer -> user fields returning NULL for commits committed by user
- [email protected]
- npm link with graphql package breaks application HOT 2
- IHeyReally.com HOT 1
- Can I ask what is the progress here? Is there a solution being worked on? Do we have some timeline? Or progress with issue? Thanks!
- IHeyReally.com
- Typescript error with 16.9.0 (re ThunkObjMap) HOT 3
- Notice: default branch is now `16.x.x` HOT 2
- <a href="https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/12261526/38307428/4135/#/?version=2"><img src="https://s3.amazonaws.com/cla-project-logo-prod/cla-not-signed.svg" alt="CLA Not Signed" align="left" height="28" width="328"></a><br/><br /><ul><li><a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/12261526/38307428/4135/#/?version=2' target='_blank'>:x:</a> - login: @Heyitsquoracom / name: [email protected] . The commit (b6081f914f0c5c22ee48d26aff4b473bf17627ce) is not authorized under a signed CLA. <a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/12261526/38307428/4135/#/?version=2' target='_blank'>Please click here to be authorized</a>. For further assistance with EasyCLA, <a href='https://jira.linuxfoundation.org/servicedesk/customer/portal/4' target='_blank'>please submit a support request ticket</a>.</li></ul><!-- Date Modified: 2024-06-28 04:40:51.630768 -->
- Error with version v16.9.0: `Can't resolve '@apollo/subgraph/dist/directives''` HOT 1
- Type is incorrect in graphql ExecutionResult with new type GraphQLFormattedError HOT 1
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-js.