Introduce monorepo architecture with scoped packages
See original GitHub issueConsider dividing this package into @graphql/schema, @graphql/execution in a true multipackage monorepo design instead of the loosely divided current “module” setup.
This would allow much easier forking of the executor for customization, without running into the “multiple versions of graphql issue.”
A current alternative that points the way is graphql-executor.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:6
- Comments:15 (15 by maintainers)
Top Results From Across the Web
A Guide to Monorepos for Front-end Code - Toptal
A monorepository is a code management and architectural concept whereby you keep all your isolated bits of code in one super repository instead...
Read more >Yarn Workspaces — A Primer to Monorepos with Minimal ...
For our hypothetical design system for the fictitious Acme organization, our end goal is to publish two different scoped packages to the npm...
Read more >5 Ways to Build a React Monorepo | Bits and Pieces
Build a React monorepo with many apps, libraries and components. Solve code-sharing, builds, dependencies and more. Discover NX, Turborepo, Bit and more.
Read more >Turning a Node.js Monolith into a Monorepo without ... - InfoQ
The « monorepo » structure is an interesting compromise: sharing a repository while splitting the codebase into packages.
Read more >Setting up a TypeScript multi-package mono-repo for ...
Step 1: Setting up the top-level NPM project · Step 2: Create scoped packages in workspaces · Step 3: Configuring out TypeScript setup...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

One of the goals of graphql executor is to allow for easily forking the executor, making small changes, and using the result. I think a Babel transform does not as easily allow for that as does a monorepo managed with changesets or lock step versioning. I don’t see a problem with publishing ‘@graphql/js-utils’ to npm, it’s an internal api but it’s not a secret
On much later reflection, @IvanGoncharov , I think your raised a number of important blockers for the above work, especially the internal versioning and intercompatibility issue, the “internal” tools.
I think it would be helpful in the long-term still to move in that direction, but it would certainly require work addressing your above points. I might be able to tackle work on some of those blockers, but not in the short or probably even medium-term.
The overall goal is still excellent imo, i.e. making it easy to plug and play aspects of the graphql pipeline. How to get there is not so clear!