JSPM

  • Created
  • Published
  • Downloads 1157
  • Score
    100M100P100Q112327F
  • License MIT

Code generation utilities for Mearie

Package Exports

  • @mearie/codegen

Readme

@mearie/codegen

Code generation utilities for Mearie GraphQL client.

This package provides the core code generation logic that can be reused across different build tool integrations (Vite, Webpack, Rollup, etc.).

Features

  • Scanner: Scans files for GraphQL operations
  • Generator: Generates TypeScript types from GraphQL operations and schema
  • Writer: Writes generated types to the filesystem

Usage

import { runCodegen, scanDocuments, generateTypes, writeTypes } from '@mearie/codegen';

// High-level API
await runCodegen({
  schema: 'schema.graphql',
  documents: 'src/**/*.ts',
  cwd: process.cwd(),
});

// Low-level API for custom workflows
const operations = await scanDocuments(
  {
    include: 'src/**/*.ts',
    exclude: 'node_modules/**',
  },
  process.cwd(),
);

const { types, augmentation } = await generateTypes(operations, schemaContent);

await writeTypes({ types, augmentation });

API

runCodegen(config: CodegenConfig): Promise<void>

Runs the complete code generation pipeline.

scanDocuments(patterns: ScanPatterns, cwd: string): Promise<ExtractedDocument[]>

Scans files for GraphQL operations.

generateTypes(operations: ExtractedDocument[], schema: string): Promise<GeneratedCode>

Generates TypeScript types from operations and schema.

writeTypes(code: GeneratedCode, outputDir?: string): Promise<WrittenFiles>

Writes generated types to the filesystem.