package jsonfile import ( "encoding/json" "fmt" "os" ) // Write creates or truncates path and writes deterministic indented JSON. func Write(path string, value any) (err error) { file, err := os.Create(path) if err != nil { return fmt.Errorf("create %q: %w", path, err) } defer func() { closeErr := file.Close() if err == nil && closeErr != nil { err = fmt.Errorf("close %q: %w", path, closeErr) } }() encoder := json.NewEncoder(file) encoder.SetIndent("", " ") if err := encoder.Encode(value); err != nil { return fmt.Errorf("encode %q: %w", path, err) } return nil }