ardatan / ardatan/graphql-mesh
Mesh SDK boilerplate generation & nx monorepo integration
- Dominant language
- TypeScript
- Stars
- 3.5k
- Forks
- 363
- Avg merge
- 6h 10m
- Merged PRs (30d)
- 19
Description
**Is your feature request related to a problem? Please describe.**
[nx monorepos](https://nx.dev/) already have a great integration for GraphQL (e.g. Apollo and NestJS).
But GraphQL Mesh is not part of this yet!
**Describe the solution you'd like**
Alike [this stack](https://github.com/nxpm/stack), create nx plugins to run `mesh` commands on libraries (and apps) through `nx`:
- generate example Mesh app or lib
- serve mesh (app or lib)
- generate types into target (default/configurable) directory (app or lib)
- build sdk into shared dist folder, use nx module linking to import into another lib or app (lib only)
- boilerplate generation for e.g. specific mesh handlers (federation?)
**Describe alternatives you've considered**
I am not sure if this could be extended to make it the default collection (in nx workspace.json), I am mostly interested in the integration as a library, but I want the ability to run mesh commands through nx, and I am still a beginner with nx tooling.
There could be an easy way to use existing `@nrwl/node` executors without creating new nx plugins.
**Additional context**
An nx monorepo setup has many advantages, namely shared package dependencies and tooling to tend them: graph affected modules!
I also like nx's approach because it features many preset conventions and it hides babel/webpack complexity.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the linked nxpm/stack example and review the existing @nrwl/node executors to understand the possible Nx integration paths. Define the scope around generating Mesh apps or libraries, serving them, generating types, building SDKs, and handler boilerplate; done means the selected Mesh commands run through Nx in an Nx monorepo.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, typescript
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100