Может я некорректно сформулировал вопрос, но как по-другому его описать я затрудняюсь. В общем, можно ли в js преобразовать примерно это:
const components = (view) => {
view.namespace('templates').group(() => {
view.component('Home')
view.namespace('catalog').group(() => {
view.component('Product')
})
})
view.namespace('sections').group(() => {
view.component('Header')
})
}
В это:
'./templates/Home'
'./templates/catalog/Product'
'./sections/Header'
Пока додумался только до такого:
const _this = {
namespace: (a) => _this._createView('namespace', [a]),
component: (a) => _this._createView('component', [a]),
group: (a) => _this._createView('group', [a]),
_createView (method, args) {
const view = new View()
view[method](...args)
return view
}
}
class View {
constructor () {
this.componentPath = './'
}
namespace (name) {
this.componentPath += `${name}/`
return this
}
component (component) {
this.componentPath += component
return this
}
group (closure) {
// Не знаю что здесь писать
}
}
components(_this)
Буду брагодарен за идею или напутствие. Возможно у меня всё неправильно, хочу почитать ваше мнение.