diff options
Diffstat (limited to 'packages/anastasis-webui/src/pages/home/AddingProviderScreen')
-rw-r--r-- | packages/anastasis-webui/src/pages/home/AddingProviderScreen/index.ts | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/packages/anastasis-webui/src/pages/home/AddingProviderScreen/index.ts b/packages/anastasis-webui/src/pages/home/AddingProviderScreen/index.ts index 7da3ea217..5f49f39e8 100644 --- a/packages/anastasis-webui/src/pages/home/AddingProviderScreen/index.ts +++ b/packages/anastasis-webui/src/pages/home/AddingProviderScreen/index.ts @@ -86,9 +86,20 @@ export async function testProvider( ); }), ); + if (typeof json !== "object") + throw new Error( + "Encountered a fatal error whilst testing the provider: " + + url + + "\nError: Did not get an object after decoding.", + ); + if (!("name" in json) || json.name !== "anastasis") { + throw new Error( + "The provider does not appear to be an Anastasis provider. Please check the provider's URL.", + ); + } if (!("methods" in json) || !Array.isArray(json.methods)) { - throw Error( - "This provider doesn't have authentication method. Check the provider URL", + throw new Error( + "This provider doesn't have authentication method. Please check the provider's URL and ensure it is properly configured.", ); } if (!expectedMethodType) { @@ -99,7 +110,7 @@ export async function testProvider( found = json.methods[i].type === expectedMethodType; } if (!found) { - throw Error( + throw new Error( `This provider does not support authentication method ${expectedMethodType}`, ); } @@ -108,10 +119,12 @@ export async function testProvider( console.log("ERROR testProvider", e); const error = e instanceof Error - ? Error( + ? new Error( `There was an error testing this provider, try another one. ${e.message}`, ) - : Error(`There was an error testing this provider, try another one.`); + : new Error( + `There was an error testing this provider, try another one.`, + ); throw error; } } |