graphpql / graphpinator

:zap::globe_with_meridians::zap: Easy-to-use & Fast GraphQL server implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality.

Home Page:https://github.com/graphpql

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Split project into multiple standalone packages

peldax opened this issue · comments

https://docs.github.com/en/free-pro-team@latest/github/using-git/splitting-a-subfolder-out-into-a-new-repository

  • Tokenizer + Source
  • Parser
  • Normalizer
  • Resolver
  • Typesystem
  • Introspection
  • Printing
  • Request (skipped)
  • Addon types & directives
  • Upload module

Splitting Parser requires refactoring and moving normalizing logic from parser classes. - visitor pattern

Extracting whole typesystem into separate package would lead to deep namespace structure and possibly reduced ergonomics.

Typesystem has been moved to standalone namespace, which is ready to be extracted without BC breaks.
But first there is some refatoring to do, Value must be decoupled from Argument, but this is not important in order to release final 1.0.