My goal is to check if a function is called in a js file. The current plan I have is to generate an AST using something like espree
and traverse through it and check for the function call. But it seems complicated. Because the function may not have been called in a straight forward way.
Consider this:
example 1:
<code>// app1.js
import { someFunc } from 'some-package';
someFunc('arg');
</code>
<code>// app1.js
import { someFunc } from 'some-package';
someFunc('arg');
</code>
// app1.js
import { someFunc } from 'some-package';
someFunc('arg');
example 2:
<code>// app2.js
import somePackage from 'some-package';
somePackage.someFunc('arg');
</code>
<code>// app2.js
import somePackage from 'some-package';
somePackage.someFunc('arg');
</code>
// app2.js
import somePackage from 'some-package';
somePackage.someFunc('arg');
example 3:
<code>// app3.js
import somePackage from 'some-package';
const x = somePackage.someFunc;
(() => {
x('arg');
})();
</code>
<code>// app3.js
import somePackage from 'some-package';
const x = somePackage.someFunc;
(() => {
x('arg');
})();
</code>
// app3.js
import somePackage from 'some-package';
const x = somePackage.someFunc;
(() => {
x('arg');
})();
example 4:
<code>// module1.js
import { someFunc } from 'some-package';
someFunc('arg');
// app4.js
import './module1.js';
</code>
<code>// module1.js
import { someFunc } from 'some-package';
someFunc('arg');
// app4.js
import './module1.js';
</code>
// module1.js
import { someFunc } from 'some-package';
someFunc('arg');
// app4.js
import './module1.js';
It can be called in so many other different ways. How would I best go about finding out if someFunc
was called at some point in the app.js file?
2