You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Файл src/compiler/Context.ts, см. TODO на строке 23
При процессинге шаблона компилятор будет создавать функции верхнего уровня, в которых будут находится фрагменты для рендеринга шаблона. Но чтобы убедиться, что не будет никаких пересечений с названиями уже существующих символов (импорты, переменные, функции), нужно собрать все объявления символов на верхнем уровне модуля и записать их как declarations у this.scope.
Возможно, для этого можно использовать модуль estraverse для обхода дерева. Либо пройтись по корню this.ast, этого может хватить для сбора данных. Пример использования обхода можно посмотреть в src/compiler/analyze.ts.
Подсказка: если используешь estraverse, нужно не забывать вызывать this.skip(), чтобы не заходить в дебри AST и сэкономить ресурсы
The text was updated successfully, but these errors were encountered:
При процессинге шаблона компилятор будет создавать функции верхнего уровня, в которых будут находится фрагменты для рендеринга шаблона. Но чтобы убедиться, что не будет никаких пересечений с названиями уже существующих символов (импорты, переменные, функции), нужно собрать все объявления символов на верхнем уровне модуля и записать их как
declarations
уthis.scope
.Возможно, для этого можно использовать модуль
estraverse
для обхода дерева. Либо пройтись по корнюthis.ast
, этого может хватить для сбора данных. Пример использования обхода можно посмотреть вsrc/compiler/analyze.ts
.Подсказка: если используешь
estraverse
, нужно не забывать вызыватьthis.skip()
, чтобы не заходить в дебри AST и сэкономить ресурсыThe text was updated successfully, but these errors were encountered: