UNPKG

graphql-paper

Version:

A flexible in-memory store based on a GraphQL Schema

29 lines (28 loc) 1.55 kB
import { GraphQLSchema } from 'graphql'; import * as defaultOperations from './operations/index'; import { Document, DocumentStore, DocumentTypeValidator, FieldValidator, HooksMap, KeyOrDocument, OperationMap, SerializedPaper, TransactionCallback } from './types'; import { createSchema } from './graphql/create-schema'; export type PaperConstructorOptions<UserOperations extends OperationMap> = { operations?: UserOperations; }; export declare class Paper<UserOperations extends OperationMap = OperationMap> { static deserialize<DeserializeUserOperations extends OperationMap = OperationMap>(graphqlSchema: GraphQLSchema, serializedPaper: SerializedPaper, options?: PaperConstructorOptions<DeserializeUserOperations>): Paper<DeserializeUserOperations>; protected history: DocumentStore[]; protected current: DocumentStore; protected sourceGraphQLSchema: GraphQLSchema; operations: typeof defaultOperations & UserOperations; events: EventTarget; validators: { document: DocumentTypeValidator[]; field: FieldValidator[]; }; hooks: HooksMap<Paper['operations'] & UserOperations>; constructor(graphqlSchema: Parameters<typeof createSchema>[0], options?: PaperConstructorOptions<UserOperations>); get data(): DocumentStore; find(documentOrKey: KeyOrDocument): Document | undefined; clear(): void; serialize(): SerializedPaper; private validate; private dispatchEvents; mutate<T extends TransactionCallback<Paper['operations'] & UserOperations>>(fn: T): ReturnType<T>; }