"use strict"; const matchValue = require("match-value"); const mapObj = require("map-obj"); const normalizeString = require("../../shared/normalize-string"); const manufacturerMap = require("../manufacturer-map"); const pickBestOption = require("../../shared/pick-best-option"); let normalizedManufacturerMap = mapObj(manufacturerMap, (key, value) => { return [ key.toLowerCase(), value ]; }); module.exports = function lcscNormalizeProduct() { return async function ({ data, createItem }) { let url = normalizeString(data.datasheet.pdf); let manufacturer = normalizeString(data.manufacturer.en); let model = normalizeString(data.info.number); let productID = normalizeString(data.number); let description = normalizeString(data.description); let mappedManufacturer = (manufacturer != null) ? matchValue(manufacturer.toLowerCase(), { ... normalizedManufacturerMap, _: manufacturer }) : null; if (url != null && model != null) { createItem({ id: `datasheet:${manufacturer}:${model}`, update: (data) => pickBestOption(data, { priority: 0.4, manufacturer: mappedManufacturer, productID: productID, name: model, description: description, url: url }) }); } }; };