0.16.16 • Published 2 days ago

@graffy/testing v0.16.16

Weekly downloads
177
License
Apache-2.0
Repository
github
Last release
2 days ago

Graffy logo

Graffy Build Status NPM version

Graffy is a live query library for the browser and Node.js. Graffy-powered servers fulfill each query with its initial result followed by a stream of relevant incremental updates. This is different (and better!) than GraphQL subscriptions, PouchDB sync, etc.

npm install @graffy/core

Graffy supports complex, expressive live queries - with multiple levels of resource expansion and pagination - based on a novel application of set theory and CRDTs.

Client-side example

import Graffy from '@graffy/core';
import GraffyClient from '@graffy/client';

const store = new Graffy();
store.use(new GraffyClient('/api'));

const query = {
  posts: [{ last: 10 }, { // Pagination parameters
    title: true,
    author: { name: true }
  }]
};

for await (const state of store.watch(query)) {
  // Iterates each time relevant data changes on the server.
  console.log(state);
}

Why Graffy?

Graffy provides live queries, which give clients a real-time view of the data they need. Graffy supports complex queries with nested graph traversals and pagination, while exposing a simple and intuitive API for building clients and servers.

Graffy was inspired by (and borrows from) Facebook's GraphQL and Netflix's Falcor. Compared to GraphQL, Graffy offers a more familiar data model, true live queries and more efficient caching. Compared to Falcor, it provides cursor-based pagination and real-time subscriptions.

Unlike GraphQL resolvers and Falcor data providers, Graffy providers can be composed like Express/Koa middleware. This allows authentication, validation, custom caches and resource limiting to be implemented in a straightforward manner.

Graffy providers can also perform efficient bulk reads from underlying data stores (for example by constructing optimized SQL queries). This is particularly hard to do with GraphQL (see dataloader) and Falcor.

Documentation

Modules

The graffy metapackage exports a constructor for a Graffy store in its default configuration.

All the Graffy packages are published under the @graffy scope on NPM.

ModuleDescription
coreModule management
fillFulfil queries from many providers
clientEventStream/HTTP client
serverEventStream/HTTP server
cacheIn-memory cache
commonShared utilities
reactReact container and hooks API
streamUtility for making AsyncIterables
testingTesting and debugging utilities
graphqlTranslate GraphQL to Graffy
schema⌛ Validation, introspection API
viewer⌛ Schema introspection client
auth⌛ Authentication and authorization
limit⌛ Resource consumption accounting
mysql⌛ Data source connector
postgres⌛ Data source connector

⌛ = On the roadmap.

Capabilities

GraffyGraphQLFalcorDescription
Narrow queriesQueries specify required fields; Allows API evolution
Deep queriesQueries can expand nested resources; Reduces round-trips
Live queriesPush changes to query results in real time
Pagination cursorsEnables efficient pagination on the server
ParametersCustom filtering criteria, etc.
Caching pagesCache result of paginated queries
Atomic writesWrites that trigger accurate cache invalidation
Non-data endpointsMutations, subscriptions, cross-resource search
0.16.16

2 days ago

0.16.15

11 days ago

0.16.15-alpha.5

23 days ago

0.16.15-alpha.4

23 days ago

0.16.15-alpha.3

24 days ago

0.16.15-alpha.2

25 days ago

0.16.15-alpha.1

30 days ago

0.16.14

2 months ago

0.16.13

3 months ago

0.16.13-alpha.1

3 months ago

0.16.12

3 months ago

0.16.12-alpha.1

3 months ago

0.16.12-alpha.2

3 months ago

0.16.13-NaN.2

3 months ago

0.16.11

3 months ago

0.16.10-alpha.2

4 months ago

0.16.10-alpha.1

4 months ago

0.16.9-alpha.2

7 months ago

0.16.9-alpha.1

7 months ago

0.16.8

7 months ago

0.16.9

7 months ago

0.16.5

11 months ago

0.16.6

11 months ago

0.16.7

11 months ago

0.16.4

1 year ago

0.16.3-alpha.1

1 year ago

0.16.3-alpha.2

1 year ago

0.16.3-alpha.3

1 year ago

0.16.3-alpha.4

1 year ago

0.16.4-alpha.1

1 year ago

0.16.4-alpha.2

1 year ago

0.16.3

1 year ago

0.16.3-alpha.5

1 year ago

0.16.3-alpha.6

1 year ago

0.16.3-alpha.7

1 year ago

0.16.3-alpha.8

1 year ago

0.16.0-alpha.1

2 years ago

0.16.0-alpha.3

2 years ago

0.16.0-alpha.2

2 years ago

0.16.0-alpha.5

2 years ago

0.16.0-alpha.4

2 years ago

0.16.0-alpha.7

2 years ago

0.16.0-alpha.6

2 years ago

0.16.0-alpha.9

2 years ago

0.16.0-alpha.8

2 years ago

0.16.0-alpha.10

2 years ago

0.16.0-alpha.14

2 years ago

0.16.0-alpha.13

2 years ago

0.16.0-alpha.12

2 years ago

0.16.0-alpha.11

2 years ago

0.16.0

1 year ago

0.16.1

1 year ago

0.16.2

1 year ago

0.16.2-alpha.1

1 year ago

0.15.24

2 years ago

0.15.25

2 years ago

0.15.25-alpha.1

2 years ago

0.15.25-alpha.5

2 years ago

0.15.25-alpha.4

2 years ago

0.15.25-alpha.3

2 years ago

0.15.25-alpha.2

2 years ago

0.15.25-alpha.7

2 years ago

0.15.25-alpha.6

2 years ago

0.15.24-alpha.1

2 years ago

0.15.23

2 years ago

0.15.22-alpha.1

2 years ago

0.15.23-alpha.1

2 years ago

0.15.21

2 years ago

0.15.22

2 years ago

0.15.21-alpha.3

2 years ago

0.15.21-alpha.2

2 years ago

0.15.21-alpha.4

2 years ago

0.15.13-alpha.2

2 years ago

0.15.13-alpha.1

2 years ago

0.15.14-alpha.1

2 years ago

0.15.14-alpha.3

2 years ago

0.15.13

2 years ago

0.15.14

2 years ago

0.15.14-alpha.2

2 years ago

0.15.14-alpha.4

2 years ago

0.15.12

2 years ago

0.15.17

2 years ago

0.15.18

2 years ago

0.15.15

2 years ago

0.15.16

2 years ago

0.15.19

2 years ago

0.15.20

2 years ago

0.15.19-alpha.2

2 years ago

0.15.19-alpha.1

2 years ago

0.15.15-alpha.1

2 years ago

0.15.15-alpha.2

2 years ago

0.15.15-alpha.3

2 years ago

0.15.20-alpha.1

2 years ago

0.15.12-alpha.2

2 years ago

0.15.12-alpha.1

2 years ago

0.15.21-alpha.1

2 years ago

0.15.11

2 years ago

0.15.11-alpha.1

2 years ago

0.15.11-alpha.2

2 years ago

0.15.10-alpha.1

3 years ago

0.15.10

2 years ago

0.15.10-alpha.2

3 years ago

0.15.9

3 years ago

0.15.8

3 years ago

0.15.8-alpha.4

3 years ago

0.15.8-alpha.3

3 years ago

0.15.8-alpha.2

3 years ago

0.15.8-alpha.1

3 years ago

0.15.8-alpha.5

3 years ago

0.15.7

3 years ago

0.15.6

3 years ago

0.15.6-alpha.1

3 years ago

0.15.5

3 years ago

0.15.4

3 years ago

0.15.4-alpha.5

3 years ago

0.15.4-alpha.4

3 years ago

0.15.4-alpha.3

3 years ago

0.15.4-alpha.2

3 years ago

0.15.4-alpha.1

3 years ago

0.15.3

3 years ago

0.15.3-beta.6

3 years ago

0.15.3-beta.5

3 years ago

0.15.3-beta.4

3 years ago

0.14.8-beta.1

3 years ago

0.15.3-beta.3

3 years ago

0.15.3-beta.2

3 years ago

0.14.8-alpha.10

3 years ago

0.15.3-beta.1

3 years ago

0.14.8-alpha.9

3 years ago

0.14.8-alpha.8

3 years ago

0.14.8-alpha.6

4 years ago

0.14.8-alpha.5

4 years ago

0.14.8-alpha.4

4 years ago

0.14.8-alpha.3

4 years ago

0.14.8-alpha.2

4 years ago

0.14.8-alpha.1

4 years ago

0.15.2-alpha.3

4 years ago

0.15.2-alpha.2

4 years ago

0.15.1-alpha.1

4 years ago

0.15.0-alpha2

4 years ago

0.15.0-alpha.1

4 years ago

0.15.0

4 years ago

0.14.7-alpha.13

4 years ago

0.14.7-alpha.10

4 years ago

0.14.7-alpha.11

4 years ago

0.14.7-alpha.12

4 years ago

0.14.7-alpha.9

4 years ago

0.14.7-alpha.8

4 years ago

0.14.7-alpha.7

4 years ago

0.14.7-alpha.6

4 years ago

0.14.7-alpha.5

4 years ago

0.14.7-alpha4

4 years ago

0.14.7-alpha3

4 years ago

0.14.7-alpha1

4 years ago

0.14.7-alpha2

4 years ago

0.14.6

4 years ago

0.14.6-beta5

4 years ago

0.14.6-beta4

4 years ago

0.14.6-beta3

4 years ago

0.14.6-beta2

4 years ago

0.14.6-alpha10

4 years ago

0.14.6-alpha9

4 years ago

0.14.6-beta1

4 years ago

0.14.6-alpha8

4 years ago

0.14.6-alpha7

4 years ago

0.14.6-alpha6

4 years ago

0.14.6-alpha5

4 years ago

0.14.6-alpha4

4 years ago

0.14.6-alpha3

4 years ago

0.14.6-alpha2

4 years ago

0.14.5

4 years ago

0.14.6-alpha1

4 years ago

0.14.4

4 years ago

0.14.3

4 years ago

0.14.2

4 years ago

0.14.2-alpha3

4 years ago

0.14.2-alpha2

4 years ago

0.14.2-alpha1

4 years ago

0.14.1

4 years ago

0.14.1-alpha4

4 years ago

0.14.1-alpha3

4 years ago

0.14.1-alpha2

4 years ago

0.14.1-alpha1

4 years ago

0.14.0

4 years ago

0.13.12

4 years ago

0.13.11

4 years ago

0.13.10

4 years ago

0.13.8

4 years ago

0.13.9

4 years ago

0.13.6

4 years ago

0.13.7

4 years ago

0.13.3

4 years ago

0.13.4

4 years ago

0.13.5

4 years ago

0.13.2

4 years ago

0.13.1

4 years ago

0.13.0

5 years ago

0.12.3

5 years ago

0.12.2

5 years ago

0.12.1

5 years ago

0.12.0

5 years ago

0.11.0

5 years ago