Вопрос из разряда кодогенерации:
Есть пачка файлов. В каких-то их них вызывается функция
expose(key, value)
. Нужно проанализировать эту пачку файлов и найти все вызовы этой функции. Я так думаю тут нужно крутить AST. Но, далее нужно сгенерировать .d.ts файл с интерфейсом в который собрать все пары ключ значение.
Например:
expose('foo', 'bar')
// .d.ts
interface Window {
foo: 'bar'
}
expose('calc', () => 1+1)
// .d.ts
interface Window {
calc: number
}
Как анализируя ast найти все нужные вызовы по коду, я разберусь. Но я не понимаю, как программно получить тип второго аргумента. Ведь там может быть функция, может быть имя переменной или импортированное что-то...