grafana/kindsv2/gen.go

54 lines
1.2 KiB
Go
Raw Permalink Normal View History

//go:generate go run gen.go
package main
import (
"context"
"os"
"github.com/grafana/cog"
)
type codegenTargets struct {
modulePath string
outputPath string
cueImportsMap map[string]string
packagesImportMap map[string]string
}
func main() {
targets := []codegenTargets{
{
modulePath: "../packages/grafana-schema/src/schema/dashboard/v2alpha0/",
outputPath: "../packages/grafana-schema/src/schema/dashboard/v2alpha0/dashboard.gen.ts",
cueImportsMap: map[string]string{
"github.com/grafana/grafana/packages/grafana-schema/src/common": "../packages/grafana-schema/src/common",
},
packagesImportMap: map[string]string{
"common": "@grafana/schema",
},
},
}
for _, target := range targets {
codegenPipeline := cog.TypesFromSchema().
CUEModule(
target.modulePath,
cog.CUEImports(target.cueImportsMap),
).
Typescript(cog.TypescriptConfig{
ImportsMap: target.packagesImportMap,
EnumsAsUnionTypes: true,
})
files, err := codegenPipeline.Run(context.Background())
if err != nil {
panic(err)
}
if err := os.WriteFile(target.outputPath, files[0].Data, 0644); err != nil {
panic(err)
}
}
}