vinmonopolet-ts
Version:
Extracts information on products, categories and stores from Vinmonopolet
40 lines (39 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function normalizeNumber(number) {
const num = String(number);
return num.replace(/,/g, ".").replace(/\s/g, "").replace(/,/g, ".");
}
function numberFilter(number) {
if (!number) {
return null;
}
if (number.value) {
return number.value;
}
const num = String(number);
if (num.indexOf("-") !== -1) {
return num.split("-").map(numberFilter).join("-");
}
if (num.indexOf("<") === 0) {
return num; //Sugar with less than <3 g/l
}
return Number(normalizeNumber(number));
}
numberFilter.greedy = function (number) {
const num = normalizeNumber(number);
if (num === "") {
return null;
}
const normalized = num.replace(/[^\d.]/g, "").replace(/(^\.+|\.+$)/g, "");
return Number(normalized);
};
numberFilter.nullify = function (nulls) {
return function (number) {
if (nulls.indexOf(number) > -1) {
return null;
}
return numberFilter(number);
};
};
exports.default = numberFilter;