UNPKG

bananas-commerce

Version:

A client for bananas-commerce with support for TypeScript

50 lines (49 loc) 1.3 kB
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 };