30 lines
773 B
Go
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
|
|
}
|