MCPcopy Create free account
hub / github.com/driangle/taskmd / generateAnalyticsFiles

Function generateAnalyticsFiles

apps/cli/internal/web/export.go:179–205  ·  view source on GitHub ↗
(apiDir string, tasks []*model.Task, archivedTasks []*model.Task)

Source from the content-addressed store, hash-verified

177}
178
179func generateAnalyticsFiles(apiDir string, tasks []*model.Task, archivedTasks []*model.Task) error {
180 if err := writeJSONFile(apiDir, "graph.json", graph.NewGraph(tasks).ToJSON()); err != nil {
181 return err
182 }
183
184 if err := writeJSONFile(apiDir, "stats.json", metrics.Calculate(tasks)); err != nil {
185 return err
186 }
187
188 recs, err := next.Recommend(tasks, next.Options{Limit: 5, ArchivedTasks: archivedTasks})
189 if err != nil {
190 return fmt.Errorf("failed to generate recommendations: %w", err)
191 }
192 if err := writeJSONFile(apiDir, "next.json", recs); err != nil {
193 return err
194 }
195
196 tracksResult, err := tracks.Assign(tasks, tracks.Options{ArchivedTasks: archivedTasks})
197 if err != nil {
198 return fmt.Errorf("failed to generate tracks: %w", err)
199 }
200 if err := writeJSONFile(apiDir, "tracks.json", tracksResult); err != nil {
201 return err
202 }
203
204 return writeJSONFile(apiDir, "validate.json", validator.NewValidator(false).Validate(tasks))
205}
206
207func writeJSONFile(dir, filename string, v any) error {
208 if err := os.MkdirAll(dir, 0755); err != nil {

Callers 1

generateDataFilesFunction · 0.85

Calls 3

writeJSONFileFunction · 0.85
ToJSONMethod · 0.80
ValidateMethod · 0.80

Tested by

no test coverage detected