Use Error for throw

Former-commit-id: 6dbc592026
restapi
Jens Pelzetter 2020-08-12 13:46:49 +02:00
parent 259aacca67
commit 2f53cb4b67
1 changed files with 18 additions and 6 deletions

View File

@ -22,7 +22,9 @@ export { LibreCcmApiClient, ApiResponse, ApiError, buildUrl };
*/ */
export function buildEmbeddedApiClient(): LibreCcmApiClient { export function buildEmbeddedApiClient(): LibreCcmApiClient {
if (!isFetchAvailable()) { if (!isFetchAvailable()) {
throw "Fetch API is not available. Please use buildIsomorpicApiClient."; throw new Error(
"Fetch API is not available. Please use buildIsomorpicApiClient."
);
} }
const baseUrl = new URL(document.documentURI); const baseUrl = new URL(document.documentURI);
baseUrl.hash = ""; baseUrl.hash = "";
@ -48,7 +50,9 @@ export function buildRemoteApiClient(
jwt: string jwt: string
): LibreCcmApiClient { ): LibreCcmApiClient {
if (!isFetchAvailable()) { if (!isFetchAvailable()) {
throw "Fetch API is not available. Please use buildIsomorpicApiClient."; throw new Error(
"Fetch API is not available. Please use buildIsomorpicApiClient."
);
} }
return new ApiClientFetchImpl(baseUrl, { return new ApiClientFetchImpl(baseUrl, {
@ -118,8 +122,16 @@ export function assertProperties(
): void { ): void {
const missing = findMissingProperties(record, properties); const missing = findMissingProperties(record, properties);
if (missing.length > 0) { if (missing.length > 0) {
throw `record is missing the following required properties: throw new MissingPropertiesError(missing);
${missing.join(",")}`; }
}
export class MissingPropertiesError extends Error {
constructor(missingProperties: string[]) {
super(`record is missing the following required properties:
${missingProperties.join(",")}`);
this.name = "MissingPropertiesError";
} }
} }
@ -141,11 +153,11 @@ export function findMissingProperties(
} }
/** /**
* Builds an identifier parameter from the the provided parameter. If the * Builds an identifier parameter from the the provided parameter. If the
* parameter is a number it is converted to a string and prefixed with `ID-`. * parameter is a number it is converted to a string and prefixed with `ID-`.
* If the parameter matches the regex for a UUID, the identifier is prefixed * If the parameter matches the regex for a UUID, the identifier is prefixed
* with `UUID-`. Otherwise the identifier is returned as it is. * with `UUID-`. Otherwise the identifier is returned as it is.
* *
* @param identifier The identifier to process. * @param identifier The identifier to process.
*/ */
export function buildIdentifierParam(identifier: string | number): string { export function buildIdentifierParam(identifier: string | number): string {