Дана строка: 'one.two.three.four.five'. Необходимо из строки сделать вложенный объект

Дана строка:

const str = 'one.two.three.four.five';

Необходимо написать функцию generateObject, которая аргументом принимает строку вида: 'one.two.three.four.five' и возвращает вложенный объект из полей one, two, three, four, five.

const obj = generateObject('one.two.three.four.five') 
/* 
obj --> {
  "one": {
    "two": {
      "three": {
        "four": {
          "five": {}
        }
      }
    }
  }
} 
*/

Примеры:

"one.two.three.four.five" --> 
{
  "one": {
    "two": {
      "three": {
        "four": {
          "five": {}
        }
      }
    }
  }
}

"five.four.three.two.one" --> 
{
  "five": {
    "four": {
      "three": {
        "two": {
          "one": {}
        }
      }
    }
  }
}

"five.four.three" -->
{
  "five": {
    "four": {
      "three": {}
    }
  }
}