2017 © Pedro Peláez
 

library graphql-query

Builds GraphQL queries

image

rdx/graphql-query

Builds GraphQL queries

  • Thursday, June 22, 2017
  • by rudiedirkx
  • Repository
  • 1 Watchers
  • 2 Stars
  • 8,635 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 6 Forks
  • 2 Open issues
  • 2 Versions
  • 28 % Grown

The README.md

GraphQL query builder

Build a query:, (*1)

$query = Query::query('TestQueryWithEverything');
$query->defineFragment('userStuff', 'User');
$query->userStuff->fields('id', 'name', 'path');
$query->fields('scope', 'friends', 'viewer');
$query->friends->attribute('names', ['marc', 'jeff']);
$query->friends->fields('id', 'name', 'picture');
$query->friends->picture->attribute('size', 50);
$query->viewer->fields('...userStuff', 'repos');
$query->viewer->repos
    ->attribute('public', true)
    ->attribute('limit', 10)
    ->attribute('order', ['field' => Query::enum('STARS'), 'direction' => Query::enum('DESC')]);
$query->viewer->repos->fields('id', 'path');
$query->viewer->repos->fragment('PublicRepo')->fields('stars');
$query->viewer->repos->fragment('PrivateRepo')->fields('status', 'permissions', 'members');
$query->viewer->repos->PrivateRepo->members->fields('...userStuff');

Render it:, (*2)

$string = $query->build();

Results in:, (*3)

query TestQueryWithEverything {
  scope
  friends(names: ["marc","jeff"]) {
    id
    name
    picture(size: 50)
  }
  viewer {
    ...userStuff
    repos(public: true, limit: 10, order: {field: STARS, direction: DESC}) {
      ... on PublicRepo {
        stars
      }
      ... on PrivateRepo {
        status
        permissions
        members {
          ...userStuff
        }
      }
      id
      path
    }
  }
}

fragment userStuff on User {
  id
  name
  path
}

Mutations

Since Mutations are practically the same as Queries, it has the same exact semantics:, (*4)

$query = Query::mutation();
$query->field('moveProjectCard')->attribute('input', ['cardId' => 123, 'columnId' => 456]);
$query->moveProjectCard->fields('clientMutationId');

makes:, (*5)

mutation {
  moveProjectCard (input: {cardId: 123, columnId: 456}) {
    clientMutationId
  }
}

The Versions

22/06 2017

dev-master

9999999-dev

Builds GraphQL queries

  Sources   Download

MIT

by Rudie Dirkx

22/06 2017

1.0

1.0.0.0

Builds GraphQL queries

  Sources   Download

MIT

by Rudie Dirkx