| 917 | } |
| 918 | |
| 919 | async clone( |
| 920 | input: CloneProjectParams |
| 921 | ): Promise<Result<{ projectConfig: ProjectConfig; normalizedPath: string }>> { |
| 922 | for await (const event of this.cloneWithProgress(input)) { |
| 923 | if (event.type === "success") { |
| 924 | return Ok({ projectConfig: event.projectConfig, normalizedPath: event.normalizedPath }); |
| 925 | } |
| 926 | |
| 927 | if (event.type === "error") { |
| 928 | return Err(event.error); |
| 929 | } |
| 930 | } |
| 931 | |
| 932 | return Err("Clone did not return a completion event"); |
| 933 | } |
| 934 | |
| 935 | async remove(projectPath: string, force = false): Promise<Result<void, ProjectRemoveError>> { |
| 936 | try { |