Overview
skiff-graphql provides auto-generated TypeScript types from the GraphQL schema, error classes for API operations, and utilities for working with GraphQL in Skiff applications.
Package: skiff-graphqlSource:
libs/skiff-graphql/
Key Features
- Auto-generated TypeScript types from GraphQL schema
- Comprehensive error classes for API operations
- Type-safe GraphQL operations
- Shared between frontend and backend
- Subscription and plan utilities
Code Generation
The library uses GraphQL Code Generator to produce TypeScript types from the schema.Configuration
Located inlibs/skiff-graphql/codegen.yml:
libs/skiff-graphql/codegen.yml:1
Build Process
Generated Types
All GraphQL types are auto-generated inlibs/skiff-graphql/src/types.ts.
Using Generated Types
libs/skiff-graphql/src/types.ts:1
Custom Scalar Types
libs/skiff-graphql/codegen.yml:10
Error Classes
Located inlibs/skiff-graphql/src/errors.ts
Comprehensive error classes extending ApolloError for type-safe error handling.
Common Errors
libs/skiff-graphql/src/errors.ts:1
Error Assertions
Errors provide assertion methods for cleaner error handling.libs/skiff-graphql/src/errors.ts:26
Document Errors
libs/skiff-graphql/src/errors.ts:39
Authentication Errors
libs/skiff-graphql/src/errors.ts:48
Rate Limiting
libs/skiff-graphql/src/errors.ts:87
Error Codes
All errors have a staticCODE property:
libs/skiff-graphql/src/errors.ts:17
Plan Utilities
Located inlibs/skiff-graphql/src/planUtils.ts
libs/skiff-graphql/src/planUtils.ts:1
Error Utilities
Located inlibs/skiff-graphql/src/errorsUtils.ts
libs/skiff-graphql/src/errorsUtils.ts:1
Local State Schemas
The library includes GraphQL schemas for client-side state management.Editor Local State
libs/skiff-graphql/src/editorLocalState.graphql:1
Skemail Local State
libs/skiff-graphql/src/skemailLocalState.graphql:1
Complete Schema
The complete GraphQL schema is available at:libs/skiff-graphql/src/completeSchema.graphql:1
Usage Example
Installation
This is a workspace package:Key Dependencies
- graphql: GraphQL implementation
- @apollo/client: Apollo Client
- @graphql-codegen/cli: Code generation
- @graphql-codegen/typescript: TypeScript plugin
- apollo-server-errors: Error classes
- skiff-utils: Shared utilities
Frontend Companion
For frontend-specific GraphQL hooks and operations, see:- skiff-front-graphql - React hooks and mutations
Related Libraries
- skiff-utils - Shared utilities
- skiff-front-utils - Frontend utilities