Como o Douglas falou, temos sempre a opção de usar ES6 para trabalhar em nosso código.
ATUAL:
const data = require('./data');
module.exports = {
geraTrayTemplate() {
let template = [
{ 'label': 'Cursos' },
{ type: 'separator' }
];
// pegando o nome de todos os cursos
let cursos = data.pegaNomeDosCursos();
cursos.forEach((curso) => {
let menuItem = {
label: curso,
type: 'radio'
}
template.push(menuItem);
});
return template;
}
}
NOVO:
const { Menu } = require('electron');
const data = require('./data');
// isolamos transformação do item de menu
const setCursoItem = (curso) => ({
label: curso,
type: 'radio',
})
module.exports = {
geraTrayTemplate() {
return Menu.buildFromTemplate([
{ label: 'Cursos' },
{ type: 'separator' },
...data.pegaNomeDosCursos().map(setCursoItem) // *
]);
}
}
//*
...data.pegaNomeDosCursos().map(setCursoItem)
map é uma high order function, logo ela e capaz de chamar a função 'setCursoItem', e com o '...' spred nós adicionamos todos os itens do array retornado dentod do array de buildFromTemplate