vinmonopolet-ts
Version:
Extracts information on products, categories and stores from Vinmonopolet
36 lines (35 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GET = void 0;
const VinmonopoletError_1 = __importDefault(require("../exceptions/VinmonopoletError"));
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_1.default(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_1.default)
throw error;
if (error instanceof Error)
throw new VinmonopoletError_1.default(`Network error fetching ${url}: ${error.message}`);
throw new VinmonopoletError_1.default(`Network error fetching ${url}: ${error}`);
}
}
exports.GET = GET;