Code Generation Tools
Introduction
A powerful code generation package that creates GraphQL schemas, resolvers, and admin interfaces from Prisma schema definitions. Supports multiple GraphQL architectures including Nexus, SDL-first, and GraphQL Modules.
Installation
Main Classes
Generator
The main class that orchestrates code generation based on the specified generator type.
typescript
Constructor Parameters:
generator
- Configuration object with generator name and schema pathoptions
- Optional generator options for customization
Methods:
run()
- Execute the code generation process
GenerateNexus
Generates Nexus GraphQL schema with type-safe resolvers and input types.
typescript
Generated Files:
types.ts
- Nexus object type definitionsinputs.ts
- Input type definitionsqueries.ts
- Query field definitionsmutations.ts
- Mutation field definitionsindex.ts
- Combined exports
Key Methods:
run()
- Generate all Nexus filescreateTypes()
- Generate object typescreateInputs()
- Generate input typescreateQueries()
- Generate query fieldscreateMutations()
- Generate mutation fields
GenerateSdl
Generates Schema Definition Language (SDL) files with resolver functions.
typescript
Generated Files:
typeDefs.ts
- GraphQL type definitionsresolvers.ts
- Resolver implementationsindex.ts
- Combined exports
Key Methods:
run()
- Generate all SDL filescreateTypes()
- Generate type definitionscreateResolvers()
- Generate resolver functionscreateMaster()
- Create index files
GenerateModules
Generates GraphQL Modules architecture with modular schema organization.
typescript
Generated Files:
modules/
- Individual model modulesinputs/
- Shared input typesapp.ts
- Application module configuration
Key Methods:
run()
- Generate all module filescreateModules()
- Generate individual modulescreateInputs()
- Generate input typescreateApp()
- Generate application module
UIGenerator
Generates admin UI components and pages for Prisma models.
typescript
Key Methods:
generateAdminPages()
- Generate admin interface pagesmergeSchemas()
- Merge multiple schemas for multi-database support
Usage Examples
Basic Nexus Generation
typescript
SDL Generation with Custom Configuration
typescript
GraphQL Modules Generation
typescript
Admin UI Generation
typescript
Configuration Options
Generator Options
typescript
Admin Options
typescript
Generated Code Examples
Nexus Object Types
typescript
SDL Type Definitions
typescript
GraphQL Modules
typescript
Advanced Features
Multi-Schema Support
typescript
Custom Filters
typescript
Conditional Generation
typescript
Features
- Multiple GraphQL Architectures: Support for Nexus, SDL-first, and GraphQL Modules
- Type Safety: Full TypeScript support with proper type inference
- Flexible Configuration: Extensive options for customizing generation
- Admin Interface: Automatic admin page generation
- Multi-Schema Support: Handle multiple Prisma schemas
- Field Filtering: Exclude sensitive or unnecessary fields
- Custom Templates: Support for custom code templates
- Incremental Generation: Generate only what you need
- Production Ready: Optimized for production environments