Skip to main content
Version: nightly

Code Generation (cosmosgen)

The cosmosgen package orchestrates multi-target code generation from protobuf sources, including Go code, TS clients, composables, and OpenAPI output.

For full API details, see the cosmosgen Go package documentation.

When to use

  • Run full generation pipelines from application services.
  • Configure selective outputs (Go only, TS only, OpenAPI only, etc.).
  • Check tool availability and maintain buf-related configuration.

Key APIs

  • Generate(ctx, cacheStorage, appPath, protoDir, goModPath, frontendPath, options...)
  • WithGoGeneration()
  • WithTSClientGeneration(out, tsClientRootPath, useCache)
  • WithOpenAPIGeneration(out, excludeList)
  • DepTools() []string

Example

package main

import (
"context"
"log"
"os"
"path/filepath"

"github.com/ignite/cli/v29/ignite/pkg/cache"
"github.com/ignite/cli/v29/ignite/pkg/cosmosgen"
)

func main() {
storage, err := cache.NewStorage(filepath.Join(os.TempDir(), "ignite-cache.db"))
if err != nil {
log.Fatal(err)
}

err = cosmosgen.Generate(
context.Background(),
storage,
".",
"proto",
"github.com/acme/my-chain",
"./web",
cosmosgen.WithGoGeneration(),
cosmosgen.WithOpenAPIGeneration("./api/openapi.yml", nil),
)
if err != nil {
log.Fatal(err)
}
}