const assert = require("node-opcua-assert").assert;
/**
 * @method makeOptionalsMap
 * @param optionals
 * transform  optional into a map
 */
function makeOptionalsMap(optionals){
    const map = {};
    if (!optionals) {
        return map;
    }
    assert(optionals instanceof Array);
    function insertInMap(map,s){
        const key = s[0];
        if(!map[key]) {
            map[key] = {};
        }
        if (s.length>1) {
            insertInMap(map[key],s.splice(1));
        }
    }
    for(let i =0 ; i<  optionals.length; i++) {
        const opt = optionals[i];
        const s = opt.split(".");
        insertInMap(map,s);
    }
    return map;
}
exports.makeOptionalsMap = makeOptionalsMap;