0.1.1 • Published 1 year ago

@qlite/cli v0.1.1

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

QLite

A lightweight GraphQL server which use SQLite3 as data source.

It will be deployable in Cloudflare Workers (WIP).

You can define your SQLite3 schema in a single YAML file (or generate YAML from existing SQLite3 database).

**status: WIP!**

Features

  1. Define SQLite3 schema in the YAML file.
  2. Generate YAML file from existing SQLite Database (incomplete).
  3. Hasura-like query/mutation language (Subscriptions are planned), but not all features are supported, see Limitations And Caveats.
  4. "Environment" Independent Design, the core component doesn't even depend on any SQLite3 binding, so it can be ported to many js runtime environments (like Cloudflare Workers and Deno Deploy).

Install & usage

npm i -g @qlite/cli@latest
tables:
  books:
    columns:
      id: {type: integer, primary_key: true}
      title: {type: text, not_null: true}
      url: {type: text}
      created_at: {type: timestamp}
    relations:
      authors:
        type: array
        remote_table: book_author_maps
        mappings:
          id: book_id
  book_author_maps:
    columns:
      book_id: {type: integer, primary_key: true}
      author_id: {type: integer, primary_key: true}
    relations:
      book:
        type: object
        remote_table: books
        mappings:
          book_id: id
      author:
        type: object
        remote_table: authors
        mappings:
          author_id: id
  authors:
    columns:
      id: {type: integer, primary_key: true}
      name: {type: text, not_null: true}
      created_at: {type: timestamp}
    relations:
      books:
        type: array
        remote_table: book_author_maps
        mappings:
          id: author_id

Starting a dev server:

qlite serve x.yaml

And now you can play with the GraphiQL via http://127.0.0.1:9000/graphql

Limitations And Caveats

This project aimed to provide some level of hasura compatibility, but full compatibility with it is not the goal.

Supported features list: 1. Simple Object Queries (note the json support is still lack) 2. Nested Object Queries 3. Aggregation Queries 4. Basic Filter Query Results / Search Queries 5. Sort Query Results 6. Paginate Query Results 7. (builtin) Use Multiple Arguments in a Query 8. (builtin) Multiple Queries in a Request 9. Use Variables / Aliases / Fragments / Directives in Queries 10. Filter based on nested objects' fields

Incomplete/Unsupported features list: 1. Not all comparison operators and aggregate functions are supported, but some of them will be supported in future releases 2. distinct_on are not supported. 3. on_conflict type has different syntax 4. (TODO) JSON related feature 5. (TODO) Insert an object along with its related objects through relationships

0.1.0

1 year ago

0.1.1

1 year ago

0.0.10

1 year ago

0.0.11

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago

0.0.1-alpha.3

1 year ago

0.0.1-alpha.2

1 year ago

0.0.1-alpha.1

1 year ago