vinmonopolet-ts
Version:
Extracts information on products, categories and stores from Vinmonopolet
126 lines (125 loc) • 5.06 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FacetCategoryMapping = void 0;
const facetsMap_1 = __importDefault(require("../datamaps/facetsMap"));
const FacetValue_1 = __importDefault(require("./FacetValue"));
const FacetCategories = __importStar(require("./FacetCategories"));
const displayNames = {
mainCategory: "Kategori",
mainSubCategory: "Underkategori",
mainSubSubCategory: "Varetype",
mainCountry: "Land",
volumeRanges: "Volum",
isGoodfor: "Passer til",
Soedme: "Sødme",
"Tannin(Sulfates)": "Garvestoffer",
Raastoff: "Råstoff",
Biodynamic: "Biodynamisk",
Eco: "Økologisk",
Gluten: "Glutenfri",
inStockFlag: "På lager",
};
const FacetCategoryMapping = () => {
const map = {};
map[FacetCategories.ALCOHOL_FREE] = new FacetValue_1.default({
name: "Alkoholfritt",
query: { query: { value: "mainCategory:alkoholfritt" } },
});
map[FacetCategories.RED_WINE] = new FacetValue_1.default({
name: "Rødvin",
query: { query: { value: "mainCategory:rødvin" } },
});
map[FacetCategories.ROSE_WINE] = new FacetValue_1.default({
name: "Rosévin",
query: { query: { value: "mainCategory:rosévin" } },
});
map[FacetCategories.WHITE_WINE] = new FacetValue_1.default({
name: "Hvitvin",
query: { query: { value: "mainCategory:hvitvin" } },
});
map[FacetCategories.RIPPLING_WINE] = new FacetValue_1.default({
name: "Perlende vin",
query: { query: { value: "mainCategory:perlende_vin" } },
});
map[FacetCategories.FLAVORED_WINE] = new FacetValue_1.default({
name: "Aromatisert vin",
query: { query: { value: "mainCategory:aromatisert_vin" } },
});
map[FacetCategories.SPARKLING_WINE] = new FacetValue_1.default({
name: "Musserende vin",
query: { query: { value: "mainCategory:musserende_vin" } },
});
map[FacetCategories.FORTIFIED_WINE] = new FacetValue_1.default({
name: "Sterkvin",
query: { query: { value: "mainCategory:sterkvin" } },
});
map[FacetCategories.FRUIT_WINE] = new FacetValue_1.default({
name: "Fruktvin",
query: { query: { value: "mainCategory:fruktvin" } },
});
map[FacetCategories.LIQUOR] = new FacetValue_1.default({
name: "Brennevin",
query: { query: { value: "mainCategory:brennevin" } },
});
map[FacetCategories.CIDER] = new FacetValue_1.default({
name: "Sider",
query: { query: { value: "mainCategory:sider" } },
});
map[FacetCategories.BEER] = new FacetValue_1.default({
name: "Øl",
query: { query: { value: "mainCategory:øl" } },
});
map[FacetCategories.SAKE] = new FacetValue_1.default({
name: "Sake",
query: { query: { value: "mainCategory:Sake" } },
});
map[FacetCategories.MEAD] = new FacetValue_1.default({
name: "Mjød",
query: { query: { value: "mainCategory:mjød" } },
});
return map;
};
exports.FacetCategoryMapping = FacetCategoryMapping;
class Facet {
constructor(facet) {
const [title, valueFilter] = facetsMap_1.default[facet.code] || [];
this.title = title || facet.code;
this.name = facet.name;
this.displayName = displayNames[facet.name] || facet.name;
this.category = facet.category;
this.multiSelect = facet.multiSelect;
this.values = facet.values.map((val) => new FacetValue_1.default(val, valueFilter));
}
}
Facet.Category = (0, exports.FacetCategoryMapping)();
Facet.UpcomingProduct = new FacetValue_1.default({
name: "Upcoming product",
query: { query: { value: "upcomingProduct:true" } },
});
exports.default = Facet;