greldal
    TypeScript icon, indicating that this package has built-in type declarations

    0.15.1 • Public • Published

    A simple micro-framework to expose your relational datastore as a GraphQL API (powered by Node.js).

    Documentation | Issues | API Docs


    GraphQL is a powerful solution for making your server side data available to clients through a flexible and bandwidth efficient API.

    However, if your primary data source is a relational database then mapping GraphQL queries to efficient database queries can be arduous. With naive hierarchical resolution of resolvers it is very easy to end up with inefficient data access patterns and N+1 queries. Caching strategies, dataloader etc. partly mitigate the problem but the fact remains that you are not taking the full advantage of the capabilities of your powerful datastore.

    GRelDAL is a low level library that gives you a declaritive API to map your relational data sources to GraphQL APIs. It is data store agnostic thanks to Knex, the underlying data access library that supports all common databases. Currently MySQL, PostgreSQL and SQLite are well tested.



    When you generate your GraphQL API through GRelDAL, you can choose exactly how:

    • Your database table schema maps to GraphQL types.
    • Your GraphQL queries are mapped to SQL queries, including:
      • which tables can be joined under which circumstances
      • when batched queries can be performed
      • when related rows can be fetched in advance in bulk, etc.


    Plus, unlike many other similar solutions, GRelDAL has first class support for subscriptions, stored procedures, user defined functions, JSON/XML/binary data and custom column types.


    Build Status FOSSA Status

    License

    FOSSA Status

    Install

    npm i greldal

    DownloadsWeekly Downloads

    0

    Version

    0.15.1

    License

    MIT

    Unpacked Size

    737 kB

    Total Files

    315

    Last publish

    Collaborators

    • lorefnon