Comments (32)
For those that are following along:
I've been using v2.0-beta in development of a new project since I started on the new direction it's been a pure joy to work with (I honestly think it's my favorite server-side solution for GraphQL). I'm pretty happy with the internals and I don't see any big changes in the pipeline prior to v2.1. I plan on creating a walkthrough video this weekend. The docs are close, I could do a better job in some sections but that's what PRs are for ๐Personally I feel it's time to get v2.0 released and I don't want the final polish on the docs to slow that down.
Additionally, stubs are going to be pushed out to the v2.1 release to speed things up. However, I haven't used stubs for anything in my current project and it's been working out pretty well.
Can't wait to get Lighthouse v2.0 into everyone's hands!!!
from lighthouse.
@hailwood @selfeky Thanks!!! I think I have just about everything the way I want it for the v2.0 release.. just a few more (smaller) updates and then it's the docs and release!!!
from lighthouse.
Video is up!!!
I should be able to get v2.0 cut tomorrow and the initial docs up as well. In the following weeks I'll be working on more videos and v2.1 with some nice helpers and stubs. Enjoy!
from lighthouse.
Sorry everyone, that video had a security issue so I deleted it and create a new one which you can view here (once it's done uploading)!
from lighthouse.
@hailwood Thanks for the feedback! Really glad to be back on the project, and the new direction really has me excited about how powerful Lighthouse can potentially be. I'm tweaking the internals at the moment... it's a bit of a mess with some middleware returning closures and others returning class instances, I just need to give it some consistency then I'll update the roadmap to include a clearer picture of how things work "behind the scenes". By then I'm not expecting the internals to change too much from that point on.
Right now, I can say that directives will work as a sort of plugin/middleware system that users can extend to their heart's content to handle any mutation/query with a method(s) that works best for their own use case. Another thing I should mention is that the hasMany
directive in the example above can also be written as hasMany(type: "relay")
for relay connections or hasMany(type:"paginator")
for a Laravel type approach. There's also some other goodies that allow for paginating relationships on Eloquent
collections and auto-resolving the N+1 issue that's baked in, but I'll go into depth with those when I rework the Roadmap/Documentation.
Exciting times on the horizon!!
@kikoseijo Thank you for your feedback!!! Once I have the Roadmap updated with a bit clearer picture of where Lighthouse is headed I'd be more than happy to start reviewing some PRs!!
from lighthouse.
Since v2.0 is released create a new issue when I get closer to releasing v2.1 to go over all the goodies it includes until it's out of beta.
from lighthouse.
Hey @kikoseijo,
The documentation is not in line w/ version 2.0, I'll have to create a new version of the docs to go along w/ this overhaul. I'll try make additions as I complete code but I'm on a project right now (that is using v2.0 beta) so I won't be able to commit time to it until off-hours.
I'll also try to update the roadmap to provide an overview of how some of the internals works and the overall direction of Lighthouse so I can get some feedback (and PRs ๐) from the community before releasing a finalized v2.0.
Thanks for the feedback and interest!!
from lighthouse.
@chrissm79 @hailwood
On fire is an understatement :)
from lighthouse.
@morpheus7CS Thanks for the feedback!! I'm currently working on the docs now and I plan to record a new walkthrough video that will get you up and running quickly. After the release I'll try to do some more in depth videos like creating your own directives (the docs will cover that also). Figured I'd keep the first one a bit short so it's not holding anything up.
from lighthouse.
@chrissm79 I'm beyond excited to try this new version out! Thanks for all your hard work on this project.
from lighthouse.
Have never refreshed a page as much as I am doing now. Just waiting for it to upload!
Watching in 360p as it's not done processing
from lighthouse.
@kikoseijo Good point on the docs, that is missing! I'll be sure to add that in... and at some point I'll add a dedicated section for Relay & Lighthouse (Connections, Global IDs, Nodes, etc). THANKS!!!
from lighthouse.
Hey @chrissm79 ,
Great to have you back working on lighthouse!
This looks highly interesting, If you're looking at approachability something I would consider is different methods of paginating top level queries and the relations given that pagination seems to be what most users find difficult to grasp. cursor based, offset based etc.
Something I'd like to put forward is maybe a documentation first approach? The current lighthouse implementation suffered from a lack of real documentation (understandable) which made understanding your direction somewhat difficult. If you could document how it should work, and then do the actual implementation then it makes it a lot easier for others to come in and help contribute ๐
I'll do some more thinking and get back to you with any other ideas :)
from lighthouse.
This is an awesome proposal, if you need a hand in any aspects feel free to ask. (not good at tests, btw)
from lighthouse.
You couldn't pre-release this on a better moment.
Getting hands dirty, ๐
Is documentation accord with 2.0 version? I can do you as a beta tester if you want. Starting from setup following on with basic implementation.
Work im doing right now its with Car dealers, nothing mayor, but ill be able to test full CRUD.
Can also implement the TODO demo app I have on React + Relay Modern.
from lighthouse.
Dont need docs myself, just to know if was something I can help to enhance, less work for myself. ๐
from lighthouse.
You're the man @chrissm79,
I'm almost finished building a fairly complex app with Folklores package, so the next app we do will be built with lighthouse 2.0. Will be good to compare them and provide any feedback based on using the two packages :)
Btw, if you're open to it I'm going to work on integrating graphql-playground into lighthouse V2 because it is miles ahead of graphiql https://github.com/graphcool/graphql-playground
from lighthouse.
@hailwood did you got to make graphql playground to work? does not seem to find server my side, it opens with the localhost:3000 but tells me server could not be reached, its strange because relay instrospector works ok, no https needed, i might be missing something.
Im using the standalone graphql playground --port 3003
and read configuration from the .graphqlconfig file.
Maybe you had to fix any issues, maybe its to do with coors. (probably)
from lighthouse.
@kikoseijo nah, I was waiting for @chrissm79 to approve it before I went and actually implemented it because afaik I have to compile it and then bundle it (I don't want to run a separate nodejs server for it).
from lighthouse.
@hailwood What did you have in mind for the "integration" of graphql-playground
? I've been using it to query my current project (using Lighthouse v2.0 beta) and it works great! My only minor gripe is that I can't see the network requests when opening the developer tools. In all fairness, I think this is a Electron thing and not just Playground (the new version of GraphiQL has the same issue). Regardless, anything that helps out the community I'm all for so feel free to submit any necessary PRs!!
Also, I have an example project in the early stages if you want to have something to compare your other app to
from lighthouse.
I was thinking of rather than having the electron app, having it load up similar to graphiql.
Not sure what the route should be be for it though, /graphiql is what people are used to, but it's not.
Could go with /playground or /graphql-ui (configurable of course)
I'll have a look at the example app tonight, I'm quite excited!
from lighthouse.
I got the App, and works great, you can even open the debug mode and inspect the requests.
There is a need to have a config, the schema to make it work so it writes for you the things, but there is no need to embedded in project, as standalone work just fine.
But I believe its better to be on the client project and not the server.
from lighthouse.
Hi @chrissm79,
amazing what you've done so far.
I'm very curious how you seek to implement the Relay subscription model to enable realtime data in GraphQL.
I already have a job queue and message broadcasting up using Lumen 5.4 (without the newer Echo, Horizon, API Resources or advanced broadcasting options), using Redis as queue driver and a socket.io nodejs server as websocket provider, listening in on the same Redis queue, proxied by Nginx. This is obviously without any Relay support and since I'm now fully turning to GraphQL with Relay, your project here could mean the world to me!
I think I'm decent at writing how-to guides and figuring out what undocumented steps are needed to get things up and running, so as soon as I've had the chance to start actually using Lighthouse, I'll be sure to get back here and provide documentation of what I encountered via PR's.
Since I'm now "done" with my backend setup (thanks to ao @kikoseijo), I'm currently focussed on getting this to play nice with React Native (using Expo).
Keep up the great work!
Much regards, Erik
from lighthouse.
Just wanna say @chrissm79
I am keeping an eye on every notification coming through for the releases/prs etc.
And you are on fire!
Good job!
from lighthouse.
@chrissm79 Watching this package progress at such a rapid development pace is a joy. It has seriously become my favourite morning ritual to go through the discussions. Really looking forward to the docs, seeing how well the previous ones were crafted. Also, the Youtube video you have made for 1.x was a really helpful way to onboard beginners. Might be worth duplicating.
If we can help in any way, please let us know.
from lighthouse.
Wow @chrissm79 this looks amazing!
from lighthouse.
@chrissm79 Words canโt express how great of a progress youโve made. I think this will quickly become the way to build GraphQL projects on Laravel.
I wanted to create a personal project fully in REST first, adding GraphQL later, but this video is giving me plenty of pause of my current approach. I think Lighthouse is the way to go now. Great work.
from lighthouse.
We got release!!!!! Bravo!!! ๐๐๐ฏ
Regarding documentation:::
Im missing the Relay use on the directives section, in order to have the mutation working you need to use it on the model Type.
type User @model {
id: ID! @globalId
...
Also, on the paginate, scopes missing.
type Query {
posts: [Post!]! @paginate(type: "connection", model: "Post", scopes: ["filterAndOrder"])
from lighthouse.
BTW: you want comments on video? perfect place to be embedded its the walkthrough isnยดt?
from lighthouse.
Took a quick break to create a video that goes over how Lighthouse handles the N+1 issue you can run into w/ GraphQL:
https://youtu.be/UMDnEIflo_A (still uploading at the moment)
from lighthouse.
@chrissm79 just thinking, do we want to close all issues/pr's related to <v2.0 to keep the repo clean? given how unlikely it is they'll actually be given any future attention (understandably).
from lighthouse.
@hailwood Great point, yeah I'll go through them this afternoon to clear things out so everything stays focused on the new API. THANKS!!!
from lighthouse.
Related Issues (20)
- Provide `GraphQLContext` and `ResolveInfo` in Federated Entity Resolvers HOT 1
- Improve orderBy directive to allow developer to specify null behaviour HOT 2
- Handle incompatible aggregate function and column in orderBy directive HOT 3
- If the ListType field is not present, the rule directive is applied to the array itself. HOT 3
- Generate schema fail! HOT 1
- Exception Undefined array key "schemaExtensions" HOT 1
- Clear Cache (private) HOT 1
- Segmentation fault when handling large payloads HOT 8
- Requesting local scopes can pass parameters HOT 1
- New directive that mirrors functionality of `whereHas` for relations (not `@whereHasConditions`) HOT 1
- `make setup` failed on macOS
- Access context in `FieldMiddleware` HOT 3
- CanArgs is defined twice in schema-directives.graphql
- `extend scalar X` directives are lost
- @canFind is missing "model" argument in graphql definition HOT 1
- Allow to customize the unique key for `PaginatedModelsLoader`
- artisan lighthouse:union stub appears to be incorrect HOT 1
- Problem with subscription middleware HOT 2
- An error occurs in the SubscriptionRegistry when sending a subscription event via Subscription::broadcast with Laravel Octane (Swoole) HOT 5
- Laravel v11 support dependancy missing
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 lighthouse.