vinmonopolet-ts
Version:
Extracts information on products, categories and stores from Vinmonopolet
29 lines (28 loc) • 1.2 kB
JavaScript
import VinmonopoletError from "../exceptions/VinmonopoletError";
export async function GET(url, queryparams) {
try {
const urlSearchParams = queryparams?.toString() ?? "";
const headers = {
"Content-Type": "Application/json",
};
if (process.env.USER_AGENT) {
headers["User-Agent"] = process.env.USER_AGENT;
}
const response = await fetch(url + "?" + urlSearchParams, { headers });
if (!response.ok) {
const parsedErrorResponse = await response.text();
throw new VinmonopoletError(parsedErrorResponse != ""
? parsedErrorResponse
: `Unable to get ${url}?${urlSearchParams}: http error ${response.status}`, response.status);
}
const responseJson = (await response.json());
return responseJson;
}
catch (error) {
if (error instanceof VinmonopoletError)
throw error;
if (error instanceof Error)
throw new VinmonopoletError(`Network error fetching ${url}: ${error.message}`);
throw new VinmonopoletError(`Network error fetching ${url}: ${error}`);
}
}