-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Файл
src/compiler/Context.ts, см. TODO на строке 23
При процессинге шаблона компилятор будет создавать функции верхнего уровня, в которых будут находится фрагменты для рендеринга шаблона. Но чтобы убедиться, что не будет никаких пересечений с названиями уже существующих символов (импорты, переменные, функции), нужно собрать все объявления символов на верхнем уровне модуля и записать их как declarations у this.scope.
Возможно, для этого можно использовать модуль estraverse для обхода дерева. Либо пройтись по корню this.ast, этого может хватить для сбора данных. Пример использования обхода можно посмотреть в src/compiler/analyze.ts.
Подсказка: если используешь estraverse, нужно не забывать вызывать this.skip(), чтобы не заходить в дебри AST и сэкономить ресурсы