Я не уверен, что понимаю, что вы пытаетесь сделать, но вот удар:
function createTool(data){
return {
id: 'sidebar',
label: 'SideBar',
content: {
tagName: 'div',
components: [
{
script: () => { console.log(data); }
}
]
}
}
}
const test = createTool('Hello, world!');
test.content.components[0].script();
Если вы абсолютно хотите вернуть функцию в виде строки (на самом деле, это не очень хорошая идея), вот как это сделать:
function createTool(data){
return {
id: 'sidebar',
label: 'SideBar',
content: {
tagName: 'div',
components: [
{
script: `console.log(${JSON.stringify(data)});\n`
}
]
}
}
}
const test = createTool('Hello, world!');
eval(test.content.components[0].script);