bananas-commerce
Version:
A client for bananas-commerce with support for TypeScript
50 lines (49 loc) • 1.3 kB
JavaScript
import { ApiError } from "./deps/deno.land/x/openapi_ts_fetch@2.1.0/index.js";
class Api {
constructor() {
Object.defineProperty(this, "fetcher", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "defaults", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
}
load(fetcher, defaults) {
this.fetcher = fetcher;
this.defaults = defaults;
return this;
}
/** */
assertLoaded() {
if (this.fetcher === undefined || this.defaults === undefined) {
throw new Error("NOT LOADED");
}
}
/**
* Catches any {@link ApiError} thrown by the promise and returns the response
* or any thrown {@link ApiError}.
*/
async catchApiError(response) {
return await response.catch((error) => {
if (error instanceof ApiError) {
return error;
}
else {
throw error;
}
});
}
}
Object.defineProperty(Api, "Error", {
enumerable: true,
configurable: true,
writable: true,
value: ApiError
});
export { Api };