@translated/lara
Version:
Official Lara SDK for JavaScript and Node.js
24 lines (23 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toCollectionResult = toCollectionResult;
function toCollectionResult(response) {
const readIntegerHeader = (header, minimum) => {
var _a;
const value = (_a = Object.entries(response.headers).find(([name]) => name.toLowerCase() === header)) === null || _a === void 0 ? void 0 : _a[1];
const number = typeof value === "string" && /^\d+$/.test(value) ? Number(value) : NaN;
return Number.isSafeInteger(number) && number >= minimum ? number : undefined;
};
const total = readIntegerHeader("x-total-count", 0);
if (total === undefined) {
throw new Error("Missing or invalid X-Total-Count response header");
}
const page = readIntegerHeader("x-page", 1);
const size = readIntegerHeader("x-page-size", 1);
return {
items: response.body,
total,
...(page !== undefined ? { page } : {}),
...(size !== undefined ? { size } : {})
};
}