Everyone's talking about gql.tada

  Рет қаралды 42,090

Matt Pocock

Matt Pocock

Күн бұрын

00:00 Magical Inference
00:57 Language Server
02:16 gql.tada
03:34 TypeScript Performance
Docs: github.com/0no-co/gql.tada
Phil's Tweet: / 1748084361939886437
My book: github.com/total-typescript/t...
Become a TypeScript Wizard with my free beginners TypeScript Course:
www.totaltypescript.com/tutor...
Follow Matt on Twitter
/ mattpocockuk
Join the Discord:
mattpocock.com/discord

Пікірлер: 171
@unnoticedspacegoat8537
@unnoticedspacegoat8537 3 ай бұрын
the web dev community really pushes the boundaries of what could DX feels like
@mayur9876
@mayur9876 3 ай бұрын
yes by making everything slower
@sn-xc7rv
@sn-xc7rv Ай бұрын
They come up with their own problems then spend the rest of their time coming up with the solutions to those 😂problems
@SwapnilSoni
@SwapnilSoni 3 ай бұрын
If they add some syntax highlighter in that string then it would be absolutely craziest thing
@mattpocockuk
@mattpocockuk 3 ай бұрын
Yep, available in a VSCode extension - wasn't working for me for some reason.
@evandroprogram
@evandroprogram 3 ай бұрын
@@mattpocockuk I guess to the syntax highlight extension to work, you have to use tagged template literal for querying. (gql`...`)
@seannewell397
@seannewell397 3 ай бұрын
@@evandroprogram @mattpocockuk can this work with its own ad hoc tagged template literal? like use the graphql import as a tagged template literal insetad of a type, i had in my head that tagged template literals were just functions... yeeees????
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@seannewell397 I think from what Phil has said elsewhere in this comments section, it's a TS limitation that you can't do smart inference from a tagged template literal.
@ivanjermakov
@ivanjermakov 3 ай бұрын
It should be quite simple with treesitter language injection queries.
@InternetTips_bb
@InternetTips_bb 3 ай бұрын
The quality of your videos really stands out!
@ShaharHarshuv
@ShaharHarshuv 3 ай бұрын
WHAT IS THIS BLACK MAGIC?? Absolutely amazing!! I didn't even know this is possible in typescript.
@IhsanMujdeci
@IhsanMujdeci 3 ай бұрын
This is next level. Really cool work.
@wfl-junior
@wfl-junior 3 ай бұрын
Awesome tool, I'm gonna start using it, thank you for sharing.
@jurijzahn8985
@jurijzahn8985 3 ай бұрын
Holy S**t! I will not sleep tonight! Thank you for sharing this 😊
@AnsisPlepis
@AnsisPlepis 3 ай бұрын
Okay now that’s insane. I’m sold
@dopetag
@dopetag 3 ай бұрын
Nice find! Keep us updated :)
@alexmachin1785
@alexmachin1785 2 ай бұрын
Looks interesting just wondering how I could get this working in a monorepo I guess you could set the output file location to where you use your UI ? So if I had a graphql package I could output the file to where my project/s live.
@hosampb5593
@hosampb5593 3 ай бұрын
This is really amazing
@_sp3149
@_sp3149 3 ай бұрын
Type magic like this used to feel so crazy to me until I learned the basics of Haskell. Turns out that there are a ton of similarities there. Typescript types are to a certain extent just less powerful Haskell-like functions.
@chiubaca
@chiubaca 3 ай бұрын
Woah, that's frikkin amazing
@benjidaniel5595
@benjidaniel5595 3 ай бұрын
That’s amazing. I didn’t even know it was possible to provide autocomplete within a template string.
@mattpocockuk
@mattpocockuk 3 ай бұрын
That's more to do with the language server than anything happening in typescript
@leandrof.laurito887
@leandrof.laurito887 3 ай бұрын
Wow pretty nice!!
@benfeldbergcollins6568
@benfeldbergcollins6568 3 ай бұрын
This looks interesting but if im writting the graphql files already os this not just duplication or can the gql files be generated ?
@mattpocockuk
@mattpocockuk 3 ай бұрын
You write one schema, then each query (inside TS files) is inferred.
@benfeldbergcollins6568
@benfeldbergcollins6568 3 ай бұрын
I was having a look into this today as I'm looking to implement this at work. Looks like there is a preset in codegen to generate the graphql schema files for the client. I was really hoping to use this without writing out the schema by hand. Thank you for this really excited for the type safety and DX 😊
@omnilothar
@omnilothar 3 ай бұрын
hmm how to use this with apollo hooks, I have bunch of .graphql files instead. Btw does it generate the schema file as well?
@mattpocockuk
@mattpocockuk 3 ай бұрын
No, it infers from a schema.
@rogue3985
@rogue3985 3 ай бұрын
can we use this without client to fetch data? Due to I am making my own client to cache fetch results via nextjs fetch api
@mattpocockuk
@mattpocockuk 3 ай бұрын
Absolutely, it's just for creating the queries. What you do with them is up to you
@dimitrisefstathiadis6562
@dimitrisefstathiadis6562 3 ай бұрын
What if I want to write in Graphql files? I mean what different that having codegen in watch mode? Not everything needs to be in a .ts file with special encapsulation methods
@mattpocockuk
@mattpocockuk 3 ай бұрын
Having my queries in .gql files always felt extremely indirect. Having them in TS, by comparison, is much nicer.
@zivyunger
@zivyunger 3 ай бұрын
Will it work if my schema is defined in Apollo federation? Can it perform the introspection by itself?
@mattpocockuk
@mattpocockuk 3 ай бұрын
Yep it can target remote schemas
@nikolakikanovic9740
@nikolakikanovic9740 3 ай бұрын
@@mattpocockuk What is difference between this and what codegen can provide
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@nikolakikanovic9740 This is a faster DX with less indirection
@wlockuz4467
@wlockuz4467 3 ай бұрын
Is it parsing the string with TS types alone? If so that's wild.
@mattpocockuk
@mattpocockuk 3 ай бұрын
Yes, it's nuts
@wlockuz4467
@wlockuz4467 3 ай бұрын
@@mattpocockuk and here I am, still having to look up generics every time I have to use them 😂
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@wlockuz4467 Yeah this is absolutely nutty
@mauricionatacci
@mauricionatacci 3 ай бұрын
Is there any way to block when it happens? any lint rule or something like that? I added this library in my project and I receive the "You're trying to access email on an object that doesn't contain it." error, but it doesn't block. I can run "yarn dev or yarn lint" without errors.
@mattpocockuk
@mattpocockuk 3 ай бұрын
Raise an issue!
@Kabodanki
@Kabodanki 3 ай бұрын
« Tada » is used a lot for day to day communication for french people
@dallenbaldwin3484
@dallenbaldwin3484 3 ай бұрын
Genuine question: Does GraphQL make sense in a SvelteKit/Next/Nuxt framework if you're actually using SSR and not exposing an API to the outside world?
@mattpocockuk
@mattpocockuk 3 ай бұрын
It absolutely does not
@m_filho
@m_filho 3 ай бұрын
@@mattpocockuk I would like to understand your answer better. Why not? After all, front-end developers who use SSR frameworks will still benefit from typing. Even more so, of course, if the API is used by more clients.
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@m_filho If your backend only has one client, and that client is deployed alongside it via a fullstack framework, then using a strongly typed layer between them feels like massive overkill. I have made this mistake before. An RPC is just better in that situation.
@SoreBrain
@SoreBrain 3 ай бұрын
That's pretty cool indeed
@iPankBMW
@iPankBMW 3 ай бұрын
really nice library! I wonder if it works to integrate it into AWS DynamoDB/Amplify graphql. If this library can read Amplify graphql schema.
@mattpocockuk
@mattpocockuk 3 ай бұрын
I'm sure it can - it can work with remote schemas.
@loic.bertrand
@loic.bertrand 3 ай бұрын
That's impressive what you can do at the type level! Are there TS librairies specifically made to build type-level parsers?
@mattpocockuk
@mattpocockuk 3 ай бұрын
No, this is all custom code I think
@nazarshvets7501
@nazarshvets7501 3 ай бұрын
Just generate once all your queries and pick fields with boolean to infer fields. There is no need to infer via string interpolation, its such a performace hit for being lazy. It doesn't scale!
@seannewell397
@seannewell397 3 ай бұрын
it's not lazy if you are rapidly developing the queries and UI together off of a schema. And the author would beg to differ on the scale, they already put out huge perf improvements. Go back to your hidey hole troll! Begone with ye! Use your primitive sticks and cli tools to ahead-of-time parse your documents and queries for strong typing! We shall have our cake and eat it too! muwahahah!
@philpl
@philpl 3 ай бұрын
We're working hard on making sure this is as performant as it can (and has to) be, and we're aware that gql.tada will require ongoing performance work to keep it fast. Its last few releases even mostly revolved around more performance work. In general, JS DSLs (i.e. mapping the GraphQL query language to a JS object/array/misc syntax) is a nice workaround, but replicating the expressiveness of GraphQL queries is hard and introduces yet another learning curve. The goal of gql.tada however is to remove the hurdle of codegen and to remove more learning curves and large toolchains (e.g. for codegen) Furthermore, the usage that GraphQL promotes is a heavy use of fragments & fragment composition, directives (like include & skip, and in the future: defer & stream), field arguments alongside selections, etc. All this mapped over to JS usually results in an experience that either compromises on healthy GraphQL query patterns, or productivity/DX imho In short, we want to provide an easier alternative
@sanderniesten5690
@sanderniesten5690 3 ай бұрын
This does assume that your graphql.schema file lives in the same project. Any ideas what to do when your schema's are defined in a different project?
@mattpocockuk
@mattpocockuk 3 ай бұрын
It can target a remote schema
@code-island
@code-island 3 ай бұрын
awesome
@IanZamojc
@IanZamojc 3 ай бұрын
Does this plugin work with remote schemas?
@mattpocockuk
@mattpocockuk 3 ай бұрын
Yep
@subhashmalireddy8211
@subhashmalireddy8211 3 ай бұрын
Does it work with Code-gen?? If yes, I'd love a video on that 🙌.
@mattpocockuk
@mattpocockuk 3 ай бұрын
It replaces codegen!
@subhashmalireddy8211
@subhashmalireddy8211 3 ай бұрын
@@mattpocockuk woah 😳, that's bold and awesome 😎. Thank you, I'll dive a bit deep into it. Kindly lemme know if you recommend any resources, TIA. Also I bought your Core Volume + React Bundle, it's going very well, can't wait to complete and be confident with TS codebases 🙌
@devinsights8021
@devinsights8021 3 ай бұрын
whats the diff between using this and graphql code generator via vscode graphql extension?
@mattpocockuk
@mattpocockuk 3 ай бұрын
The DX of this is much faster. No need to do codegen on the queries.
@devinsights8021
@devinsights8021 3 ай бұрын
@@mattpocockuk searched in their docs, is there a way to use env vars inside lsp config?
@seannewell397
@seannewell397 3 ай бұрын
@@mattpocockuk teeeechnically codegen is happening at author time during IDE LSP compilations, as there are artifacts on disk from this plugin.
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@seannewell397 Not when you're writing the queries, only when editing the source schema.
@danko95bgd
@danko95bgd 3 ай бұрын
This will make your lsp die, it is slower and more complicated and you get the same experience that i had years ago
@pxkqd
@pxkqd 3 ай бұрын
I used apollo client with codegen for typescript, back in the day. I still don't know how I feel about graphql in general, compared to rest or rpc it just seems bloated.
@mattpocockuk
@mattpocockuk 3 ай бұрын
If you can do an rpc, you probably should. But if you can't, GraphQL is a pretty good option.
@philpl
@philpl 3 ай бұрын
We have an open RFC for this, but one of our goals is to provide a (t)RPC-like experience too, so GraphQL feels less of a burden for quick/small projects
@user-ov2kp4jc3v
@user-ov2kp4jc3v 3 ай бұрын
I have been working with prisma with next js and the same thing which you mentioned like the other tools have is they generate index.d.ts from them inside node modules, but in this case how crazy is that, can you in your in your next video could explain how this thing has been implemented, maybe a basic understanding
@alexandr0id
@alexandr0id 3 ай бұрын
How well does it work when the schema has syntax errors?
@mattpocockuk
@mattpocockuk 3 ай бұрын
I ran into this myself and raised an issue. They are planning to build a CLI which will be much better at sourcing errors than a TS plugin can be.
@shmalfacekilla
@shmalfacekilla 3 ай бұрын
What if your schema file isn’t co-located with your front end code?
@mattpocockuk
@mattpocockuk 3 ай бұрын
It works with remote schemas
@Svish_
@Svish_ 3 ай бұрын
Maybe we could see an `sql.tada` at some point too then?
@LawJolla
@LawJolla 3 ай бұрын
Does this replace graphql-tag in the stack?
@philpl
@philpl 3 ай бұрын
yes! 🎉this should be as close to a drop-in replacement as possible. If you haven't used typegen for GraphQL before (i.e. graphql-code-generator; unless you've used their client-preset) it should hopefully be a smooth experience to switch over by following the setup steps and swapping out graphql-tag gradually
@LawJolla
@LawJolla 3 ай бұрын
@@philpl thank you! I’ve been using code generator for many years. Excited to give this a try!
@NathanielElkins
@NathanielElkins 3 ай бұрын
Reminds me of F# type providers!
@additionaddict5524
@additionaddict5524 3 ай бұрын
that's wild
@neociber24
@neociber24 3 ай бұрын
And I though I was good at TS when created a zod clone, this is wizardy
@jorgerangel2390
@jorgerangel2390 3 ай бұрын
BEST LIB EVER!
@magne6049
@magne6049 3 ай бұрын
0:56 It'd be nice if you'd mention the problems these libraries have.
@mattpocockuk
@mattpocockuk 3 ай бұрын
kzbin.info/www/bejne/a6jId6yDpKd6hJY
@magne6049
@magne6049 3 ай бұрын
@@mattpocockuk thanks!
@ColinRichardson
@ColinRichardson 3 ай бұрын
They are?
@backupmemories897
@backupmemories897 3 ай бұрын
haha
@ChrisVisserDev
@ChrisVisserDev 3 ай бұрын
This makes me reconsider gql
@mattpocockuk
@mattpocockuk 3 ай бұрын
Yeah me too a bit, but only for certain use cases.
@gosnooky
@gosnooky 3 ай бұрын
Not a fan of GQL, but this is indeed very, very cool.
@ziyadtaleb
@ziyadtaleb 3 ай бұрын
Bro!
@eggy794
@eggy794 3 ай бұрын
what the f, this is nuts
@ooyey
@ooyey 3 ай бұрын
😮😮😮😮
@osdiab
@osdiab 3 ай бұрын
this sounds like a recipe for causing the TypeScript compiler to lock up once you get a sufficiently complex schema-hope I'm wrong!
@philpl
@philpl 3 ай бұрын
We've been lucky to have gotten a lot of feedback already, including the 7MB auto-generatedHasura schema (which is bigger than GitHub's by a large margin) that have prompted us to investigate bottle-necks, and we're both aware that TS inference performance will always have to be an ongoing focus for gql.tada and we're willing to react quickly to reports and feedback on performance 💜
@mattpocockuk
@mattpocockuk 3 ай бұрын
I do too!
@nomadshiba
@nomadshiba 3 ай бұрын
template literal would cool also
@philpl
@philpl 3 ай бұрын
We unfortunately can't make this work with tagged template literals, since TypeScript chose not to infer exact string literal types for them. It's a bit of a bummer, but I'm hoping that after some time to get used to it string literals will feel just as natural
@mattpocockuk
@mattpocockuk 3 ай бұрын
That's a shame! I didn't know that limitation.
@nomadshiba
@nomadshiba 3 ай бұрын
@@philpl right, i had to exact problem trying to do something similar with html as an alternative to tsx. :/
@seannewell397
@seannewell397 3 ай бұрын
good to know!@@philpl
@CarlosChida
@CarlosChida 3 ай бұрын
Oh, no. This is a no-go 🙅🏻‍♂ Black magic of this sort is still hunted down where I live.
@mitchellmnr
@mitchellmnr 3 ай бұрын
Haha Well its not really black magic :) It just generates the d.ts file based on a graphql spec so you get type safety. Really cool though!
@drprdcts
@drprdcts 3 ай бұрын
10000% agree with this. The more magic that happens behind the scenes with crazy typescript inference, the more likely you'll encounter a very niche bug that has no solution
@mitchellmnr
@mitchellmnr 3 ай бұрын
@@drprdcts Then just delete all cache (generated files) and re-build. Then you should be back to ready :)
@gonsfx1792
@gonsfx1792 3 ай бұрын
If only this worked with relay
@mattpocockuk
@mattpocockuk 3 ай бұрын
Would it not?
@negativerfan
@negativerfan 3 ай бұрын
This is so cool.
@seannewell397
@seannewell397 3 ай бұрын
OH HELL YEAH
@rafaeltab
@rafaeltab 3 ай бұрын
My god this is so cool
@NetherFX
@NetherFX 3 ай бұрын
I'm not a fan of their tweet stating "oh it went from 8 seconds to 40ms", that should raise a red flag as a dev. What's the context? was it always 8 seconds? was it a bug? The way they formulate it implies that the bug was always there, they just only now found it. How does that happen? This is definitely not hate towards the project, I'm still impressed by the amount of effort and dedication that's being put into this, and I'm sure it'll get used by projects using graphql.
@mattpocockuk
@mattpocockuk 3 ай бұрын
They gave an enormous amount of context and showed how other people could fix similar bugs. I don't think you're seeing the wood for the trees here. Fixing these things in public and admitting your mistakes is brave and encouraging.
@philpl
@philpl 3 ай бұрын
It was caused by a mistake and there's a small tweet thread of mine on it in the tweet Matt showed in the video. The context here is that we tested against the GitHub schema (one of the largest “human-written” schemas we know of) and that performed well enough that it didn't raise any concerns, so we went ahead and released & announced v1. A user then tried it out with their schema which wasn't “human-written” but a Hasura-generated schema, which was an order of magnitude larger than the GitHub schema (!) and caused massive slowdowns. This prompted me to look into why the size of the schema suddenly caused the type checker to spend exponentially more time rather than linearly more time coupled to the size of schemas, and the mistake came down to a generic constraint (which are eagerly checked by TS) traversing the whole schema on each file change in the tsserver. Removing the redundant generic constraint (or rather shortening it to not traverse the whole schema) got rid of that slowdown entirely. We still encountered some more issues with that Hasura-sized schema, but I'm thankful to the issue reporters (who also got their hands dirty and helped out) to spot this. Totally understand this isn't hate, and I'm happy to actually chat and learn about this openly! ❤ We won't get all of this right immediately, but it's a lot of fun to discover and talk through the problems of this approach, since it requires a lot of dev time compared to the “simple” experience at the end of it as shown in the video 😄
@hyperprotagonist
@hyperprotagonist 3 ай бұрын
I think this library has its use cases, particularly for quick prototyping and small builds. I don’t know any large scale apps that inline all their queries.
@mattpocockuk
@mattpocockuk 3 ай бұрын
Not sure what you mean by inline? These queries can be saved as separate variables, combined with fragments, and generally treated how you'd normally treat graphql queries/mutations.
@NetherFX
@NetherFX 3 ай бұрын
SQL will always dominate these type of solutions, but I definitely understand the enthusiasm for this project!
@andriikliuiko4233
@andriikliuiko4233 3 ай бұрын
@@NetherFX Are you mad? Why the hell you compare graphql (which is basically an abstraction over http protocol) with database query language???
@metamist
@metamist 3 ай бұрын
@@andriikliuiko4233 It's the Dunning-Kruger effect
@philpl
@philpl 3 ай бұрын
There's plenty, and to be fair, a common solution to “public” schemas and queries are persisted queries, which we'd have to support eventually. Optimising for this is imho best done in a build/compilation step, not in how we author (or codegen) code. I'm thinking we could provide Vite/Webpack/etc plugins in the future, but that's quite a big investment in dev time. However, for the common case, having GraphQL queries rather than pre-parsed ASTs in your JS source (i.e. ignoring the use of persisted queries for a moment) is not as expensive or cumbersome as it may at first appear
@powerrampage
@powerrampage 3 ай бұрын
infers 😮
@backupmemories897
@backupmemories897 3 ай бұрын
who talks about it xD
@srcsarco
@srcsarco 3 ай бұрын
Genql is superior
@mattpocockuk
@mattpocockuk 3 ай бұрын
Disagree, using the actual GraphQL language always feels better than using GenQL's weird object syntax. I found GenQL a joy to use myself but a pain to teach to others.
@srcsarco
@srcsarco 3 ай бұрын
I get your point@@mattpocockuk but I love not having to remember a graphql api. GenQL gives me this possibility as all my queries/mutations are typed. When working with different projects at the same time it became essential to me.
@punkweb
@punkweb 3 ай бұрын
Built/consumed REST APIs for 4 years, never any problem. Was forced by my boss to use graphql for next 4 years, hated it, was never nearly as productive. Convinced my boss that we ought to go back to REST APIs for the last 6 months, never been happier and more productive. GraphQL takes the http protocol, ignores 75% of it, and is all around awful. Good bye.
@invinciblemode
@invinciblemode 3 ай бұрын
This feels like it would be giga slow on a decent sized project.
@danielarrizza4985
@danielarrizza4985 3 ай бұрын
Don’t think you watched the twitter thread part
@xuyennguyenvan4701
@xuyennguyenvan4701 3 ай бұрын
​@@danielarrizza4985 it is , i'm facing the problem right now.
@laluneodyssee4404
@laluneodyssee4404 3 ай бұрын
I think we all need to admit GraphQL has some major flaws
@mattpocockuk
@mattpocockuk 3 ай бұрын
Absolutely, it's basically a niche use case. But it does solve that use case very well, and having better TS support is VERY useful.
@magne6049
@magne6049 3 ай бұрын
@@mattpocockuk without GraphQL, how would you create a generic API that could both be used by third parties as well as being dogfed by your own app?
@mattpocockuk
@mattpocockuk 3 ай бұрын
@@davidsyengo1893 Don't agree with your weirdly high levels of vitriol here.
@philpl
@philpl 3 ай бұрын
I like to think gql.tada is part of our admission that there's more work to be done (we're also the core team for urql, a GraphQL client) While there's a lot of ways to write GraphQL, both on the client-side and server-side, even just looking at the TS ecosystem, there's a lot of problems, from marketing, learning and producitivity curves, differences in user-bases and their expectations, to a heap of tooling to learn. While, even as a library author, I have to admit, throwing another tool onto this pile isn't the be-all and end-all solution to every problem, coming at this from an angle of “fixing” part of this experience for more people is how I think we can start to address GraphQL’s flaws and the bad rep it now has in some circles
@senadelezovic8556
@senadelezovic8556 3 ай бұрын
This is too complicated of a solution for something you can write with 3-4 functions to get the same effect. In my personal opinion. And string parsing in typescript looks too complicated in comparison with working with objects. 4/10 library :D
@filipjnc
@filipjnc 3 ай бұрын
90% should not use gql im the first place. Change my mind.
@philpl
@philpl 3 ай бұрын
It depends on how we look at it. Will people who don't choose it be definitively worse off? No. Will people be better of if they choose it? It depends. In many smaller projects it can be a value-add, specifically in team communication and structuring data. But I'd be the first to say, not everyone should use GraphQL. However, if we look at *the* most popular alternative of today, tRPC, it becomes clear to me that GraphQL has not only a marketing problem, but also a producitvity and learning curve problem, and we build tools like gql.tada to improve this, making GraphQL an option with few or no drawbacks for more people. So, that's what it's about for me fewer drawbacks for a larger group of people 💜
@BinaryReader
@BinaryReader 3 ай бұрын
Why is this interesting?
@mattpocockuk
@mattpocockuk 3 ай бұрын
TypeScript plus GraphQL is a fucking hard problem to solve, and I think this solves it.
@mayur9876
@mayur9876 3 ай бұрын
40ms to parse and typecheck a 7MB schema is slow af. not sure in what delima web devs are living in. :(
@philpl
@philpl 3 ай бұрын
For context, what I'd say is a 7MB schema is a borderline case and you won't find it outside of Hasura's generated schemas in larger projects. To compare this, GitHub's schema, which is what we tested against as a larger schema at release time, doesn't come close to this size. The tweet and comparison was more to demonstrate that we made mistakes and there are performance pitfalls in the library code itself, but we're willing to improve even for extreme cases
@andreslaley
@andreslaley 3 ай бұрын
Is this video sponsor by gql.tada? This solution is super. fancy❤ But I asking me if this solution is superior to typegraphql? If you want to do a refactoring in the schema, the schema still a string. What is your opinion about it?
@mattpocockuk
@mattpocockuk 3 ай бұрын
Nope, I don't do sponsored content. Using the string means you're actually using the DSL of GraphQL, which is bound to be easier than a DSL on top of a DSL.
Generics: The most intimidating TypeScript feature
18:19
Matt Pocock
Рет қаралды 160 М.
The Story of React Query
8:55
uidotdev
Рет қаралды 56 М.
I Need Your Help..
00:33
Stokes Twins
Рет қаралды 133 МЛН
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
gql.tada makes me miss GraphQL…
13:57
Theo - t3․gg
Рет қаралды 34 М.
Enums considered harmful
9:23
Matt Pocock
Рет қаралды 191 М.
Most React devs don’t understand generic components
5:43
Matt Pocock
Рет қаралды 45 М.
Codegen: The good, the bad and the ugly
6:37
Matt Pocock
Рет қаралды 29 М.
I Was Wrong About React Router.
19:06
Theo - t3․gg
Рет қаралды 54 М.
Most TS devs don't understand 'satisfies'
4:10
Matt Pocock
Рет қаралды 52 М.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Рет қаралды 953 М.
10 common mistakes with the Next.js App Router
20:37
Vercel
Рет қаралды 175 М.
Finally Fix Your Issues With JS/React Memory Management 😤
20:13
Jack Herrington
Рет қаралды 79 М.
This UI component library is mind-blowing
8:23
Beyond Fireship
Рет қаралды 554 М.
Fiber kablo
0:15
Elektrik-Elektronik
Рет қаралды 8 МЛН
Huawei который почти как iPhone
0:53
Romancev768
Рет қаралды 453 М.
A Comprehensive Guide to Using Zoyya Tools for Photo Editing
0:50
Куда пропал 3D Touch? #apple #iphone
0:51
Не шарю!
Рет қаралды 595 М.