1.0.0-beta.0 • Published 6 years ago

sf-graphql v1.0.0-beta.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

salesforce-graphql

CircleCI codecov Commitizen friendly Greenkeeper badge

Create a GraphQL schema for a Salesforce org

Why?

  • Use tools from the GraphQL ecosystem with salesforce
    • Many developers may not know SOQL but already know GraphQL. They can get up and running fast using salesforce-graphql
    • You can use tools like apollo or relay and access the whole organization, instead of using fetch or xmlhttprequest to query a backend server with predefined queries
    • Visualize your org using existing graphql tools like graphql-voyager or graphqlviz
  • Overcome some limitations of SOQL
    • SOQL doesn't allow parent queries that query deeper than five levels from the root object. salesforce-graphql splits your graphql query into multiple SOQL requests before resolving to overcome this limitation
    • SOQL doesn't allow nested child queries or nesting a child query within a parent query. salesforce-graphql will split these types of queries into multiple SOQL requests to overcome this limitation

Usage

See the examples directory for example usage.

Docs

WIP

Roadmap

  • Offset-based Querying
    • Basic Querying
    • Relationship Queries
      • Parent Queries
      • Child Queries
    • Retrieve all records with queryMore()
    • Querying for polymorphic fields
    • SOQL Function support
      • Aggregate Functions
        • AVG()
        • COUNT()
        • COUNT(fieldName)
        • COUNT_DISTINCT()
        • MIN()
        • MAX()
        • SUM()
      • Date Functions
        • In Queries
        • In Where Clauses
      • FORMAT
      • convertCurrency
    • Filters
      • GROUP BY
      • HAVING
      • ORDER BY
        • Basic Support
        • Referencing parent fields
      • LIMIT
      • OFFSET
      • WITH
      • FOR REASON
    • Update Tracking and Viewstat
    • Where clauses
      • Basic support
      • Reference Parent and Child fields present in query
      • Semi-join queries
  • Cursor-based querying
  • Caching with dataloader