spreadlab/generate.go
Justin Visser 9bae4a9ca0 types: generate TypeScript from engine structs with tygo
tygo is pinned via go.mod's tool directive (Go 1.24+): the tool's
version is locked like any dependency and runs as 'go tool tygo', no
global install. 'go generate ./...' regenerates web/src/types/engine.ts
from Config/Result and their json tags; the generated file is committed
so the frontend builds without Go installed. The go:generate directive
anchors in a root generate.go because generate runs commands from the
declaring file's directory and tygo reads tygo.yaml from the cwd.
go.mod's ignore directive (Go 1.25+) keeps ./... from crawling into
web/node_modules, where some npm packages ship stray .go files.
2026-06-10 12:58:13 +02:00

10 lines
448 B
Go

// Package spreadlab anchors repo-wide go:generate directives; it contains
// no code. go:generate runs commands from the directory of the file that
// declares them, so root-level tooling (tygo reads tygo.yaml from the
// working directory) lives here.
//
// The frontend's TypeScript types are generated from the engine's structs,
// the single source of truth for parameters and results:
//
//go:generate go tool tygo generate
package spreadlab