GraphQL Libraries

This suite of libraries enables seamless GraphQL integration, transforming your ContractSpecs into a type-safe Pothos schema, connecting with Prisma, and enabling Apollo Federation.

Libraries

@lssm/lib.graphql-core

The foundation. Provides a configured Pothos builder, common scalars (JSON, DateTime), and utilities for mapping ContractSpec I/O to Pothos types.

@lssm/lib.graphql-prisma

Connects Pothos to Prisma. Automatically generates GraphQL types from your Prisma schema and optimizes queries to prevent N+1 issues.

@lssm/lib.graphql-federation

Adds Apollo Federation V2 support. Allows your subgraph to define keys and entities, making it ready for a supergraph.

Installation

npm install @lssm/lib.graphql-core @lssm/lib.graphql-prisma @lssm/lib.graphql-federation

Usage: Building a Schema

Here's how to assemble a federated GraphQL schema from your specs:

import { builder } from '@lssm/lib.graphql-core';
import { registerContractsOnBuilder } from '@lssm/lib.contracts/server/graphql-pothos';
import { SpecRegistry } from '@lssm/lib.contracts';
import { MySpecs } from './specs';

// 1. Register contracts
const registry = new SpecRegistry();
registry.register(MySpecs);

// 2. Mount specs onto Pothos builder
registerContractsOnBuilder(builder, registry);

// 3. Build and print schema
const schema = builder.toSchema();
console.log(printSchema(schema));

Features

  • Code-First: Define schema in TypeScript (Pothos), get SDL as artifact.
  • Spec Integration: `registerContractsOnBuilder` automatically converts Command/Query specs into Mutations/Queries.
  • Federation Ready: Just add `provider: 'federation'` to your config.