Comments (3)
Hey @golaod !
- Can I add input which behaves like an array type of any scalar value?
Is this allowed by the GraphQL spec and Webonyx? My understanding is that union types can only be used on objects. Could you maybe post your Webonyx Input type? That would help me understand how to reproduce this.
- Can I have default values for the input?
Yes, you simply put the default value in the method signature.
For instance:
/**
* @Factory
*/
public function filters(string $status = 'on'): Filter
- Can I extend what is displayed above rows, cause I saw in the documentation that you only return total size there
You are referring to pagination with Porpaginas (https://graphqlite.thecodingmachine.io/docs/pagination), right?
It is possible, though not very simple.
What you want to do is to write your own "TypeMapper" that maps your class (in our case a class implementing the Porpaginas\ResultIterator interface) to a Webonyx Object type.
You can actually copy-paste the PorpaginasTypeMapper in your code and customize it.
You then need to register the type mapper in your application. The way you do that depends on the framework you are using.
- Eager loading (deferred resolvers). I know someone asked already about it
Not yet.
That will go in v3.1. See #14
I actually need help to find a simple syntax for deferred resolvers.
- If those things are not possible, will they? and if they will, can we participate in development to speed things up?
Any help is definitely welcome! :)
from graphqlite.
We contacted you already by email to solve the problem for us, but because you asked here how we did any scalar, I'm attaching it for others who may need it:
Type::nonNull(Type::listOf(new AnyScalarType()))
And the type itself:
class AnyScalarType extends ScalarType
{
const NAME = 'AnyScalar';
const SCALAR_NODES = [
StringValueNode::class,
BooleanValueNode::class,
IntValueNode::class,
FloatValueNode::class
];
/**
* Serializes an internal value to include in a response.
*
* @param string $value
* @return string
*/
public function serialize($value)
{
return $value;
}
/**
* Parses an externally provided value (query variable) to use as an input
*
* @param mixed $value
* @return mixed
*/
public function parseValue($value)
{
if (!is_scalar($value)) {
throw new Error('Cannot represent following value as scalar: ' . Utils::printSafeJson($value));
}
return $value;
}
/**
* Parses an externally provided literal value (hardcoded in GraphQL query) to use as an input.
*
* E.g.
* {
* user(email: "[email protected]")
* }
*
* @param \GraphQL\Language\AST\Node $valueNode
* @return string
* @throws Error
*/
public function parseLiteral($valueNode)
{
$isScalar = false;
foreach (self::SCALAR_NODES as $nodeClass) {
if ($valueNode instanceof $nodeClass) {
$isScalar = true;
break;
}
}
if (!$isScalar) {
throw new Error("Not a valid scalar", [$valueNode]);
}
return $valueNode->value;
}
}
from graphqlite.
For the record, this was fixed by various PRs in the last month.
Documentation is here:
from graphqlite.
Related Issues (20)
- Empty request body parsing error for automatic persisted queries HOT 14
- prefetchMethod does not work HOT 12
- Arguments description in schema HOT 3
- Undocumented Error or posible dead code HOT 3
- ExtendType and Type with class argument don't work
- Defining fields in type by trait from different namespace ends with error for relative type declarations HOT 2
- Weird behaviour around __call HOT 1
- Cannot use custom naming on an Input type that's also a regular Type HOT 3
- How to debug errors? HOT 2
- Bizarre `Cannot query field "settings" on type "...".` error HOT 3
- Security attribute on extended type HOT 5
- Add support of types from vendor packages HOT 9
- GraphQLite attempts to load non-class files, resulting in weird errors HOT 18
- Implement a developer friendly caching for larger projects HOT 5
- Time to drop annotations HOT 1
- Example on the index page HOT 17
- [Error handling] Category missing in error response HOT 3
- AbstractEntity and input HOT 5
- Doctrine and GraphQLite HOT 1
- Huge performance regression caused by new class finder package HOT 5
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 graphqlite.