ardatan / ardatan/graphql-mesh

Mesh SDK boilerplate generation & nx monorepo integration

Open
#2,103 6 comments 7 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.