UNPKG

melosys-kodeverk

Version:

Dictionary of kode/term objects for use with associated melosys projects

46 lines (38 loc) 1.26 kB
"use strict"; var MAX_LEVELS = 5; var arrayToObjectSet = function arrayToObjectSet(array) { return array.reduce(function (obj, item) { obj[item.kode] = item.kode; // NB! kode => kode return obj; }, {}); }; var arrayToObjectMap = function arrayToObjectMap(array) { return array.reduce(function (obj, item) { obj[item.kode] = item.term; // NB! kode => term return obj; }, {}); }; var kodeverk2Kode = function kodeverk2Kode(kodeverk, arrayReducerFunc) { var counter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; if (counter > MAX_LEVELS) { console.error("Max levels = " + MAX_LEVELS + " Reached"); return {}; } if (Array.isArray(kodeverk)) { return arrayReducerFunc(kodeverk); } var codes = {}; for (var verk in kodeverk) { var node = kodeverk[verk]; codes[verk] = kodeverk2Kode(node, arrayReducerFunc, counter + 1); } return codes; }; var kodeverk2KodeSet = function kodeverk2KodeSet(kodeverk) { return kodeverk2Kode(kodeverk, arrayToObjectSet); }; module.exports.kodeverk2KodeSet = kodeverk2KodeSet; var kodeverk2KodeMap = function kodeverk2KodeMap(kodeverk) { return kodeverk2Kode(kodeverk, arrayToObjectMap); }; module.exports.kodeverk2KodeMap = kodeverk2KodeMap;