2025-10-15 10:12:44 +03:00

30 lines
773 B
Go

package project
import (
"context"
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/collections"
)
func (s *Session) OpenProject(ctx context.Context, configFileName string) (*Project, error) {
fileChanges, overlays, ataChanges := s.flushChanges(ctx)
newSnapshot := s.UpdateSnapshot(ctx, overlays, SnapshotChange{
fileChanges: fileChanges,
ataChanges: ataChanges,
apiRequest: &APISnapshotRequest{
OpenProjects: collections.NewSetFromItems(configFileName),
},
})
if newSnapshot.apiError != nil {
return nil, newSnapshot.apiError
}
project := newSnapshot.ProjectCollection.ConfiguredProject(s.toPath(configFileName))
if project == nil {
panic("OpenProject request returned no error but project not present in snapshot")
}
return project, nil
}