├── .babelrc.js ├── .github ├── actions │ └── ci-setup │ │ └── action.yml └── workflows │ └── ci.yml ├── .gitignore ├── .lintstagedrc ├── .npmrc ├── .prettierignore ├── README.md ├── jest.config.js ├── package.json ├── src └── index.js └── test ├── fixtures ├── annotate │ ├── arguments-nested │ │ ├── code.js │ │ └── output.js │ ├── arguments │ │ ├── code.js │ │ └── output.js │ ├── assignment-expression │ │ ├── code.js │ │ └── output.js │ ├── class-declaration-dynamic-extends │ │ ├── code.js │ │ └── output.js │ ├── class-expression-dynamic-extends │ │ ├── code.js │ │ └── output.js │ ├── export-default │ │ ├── code.js │ │ └── output.js │ ├── named-export │ │ ├── code.js │ │ └── output.js │ ├── new-expression-arguments │ │ ├── code.js │ │ └── output.js │ ├── new-expression │ │ ├── code.js │ │ └── output.js │ ├── outermost-arguments │ │ ├── code.js │ │ └── output.js │ ├── outermost-call-expression │ │ ├── code.js │ │ └── output.js │ ├── outermost-mixed │ │ ├── code.js │ │ └── output.js │ ├── outermost-new-expression │ │ ├── code.js │ │ └── output.js │ ├── pure-iife │ │ ├── code.js │ │ └── output.js │ └── variable-declaration │ │ ├── code.js │ │ └── output.js ├── fixes │ └── callable-expression-has-null-leading-comments │ │ ├── code.js │ │ └── output.js ├── iife │ ├── annotate-in-top-level-nested │ │ ├── code.js │ │ └── output.js │ ├── annotate-in-top-level │ │ ├── code.js │ │ └── output.js │ ├── mixed-iife-types │ │ ├── code.js │ │ └── output.js │ ├── mixed-levels │ │ ├── code.js │ │ └── output.js │ └── skip-in-non-iife-calls │ │ ├── code.js │ │ └── output.js └── skip │ ├── annotated │ ├── code.js │ └── output.js │ ├── implicit-return │ ├── code.js │ └── output.js │ ├── non-top-level │ ├── code.js │ └── output.js │ ├── side-effect-call │ ├── code.js │ └── output.js │ └── side-effect-iife │ ├── code.js │ └── output.js └── index.test.js /.babelrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/.babelrc.js -------------------------------------------------------------------------------- /.github/actions/ci-setup/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/.github/actions/ci-setup/action.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/.lintstagedrc -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *output.js 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/README.md -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transform: {}, 3 | } 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/package.json -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/src/index.js -------------------------------------------------------------------------------- /test/fixtures/annotate/arguments-nested/code.js: -------------------------------------------------------------------------------- 1 | a = fn(fn2(fn3())) 2 | -------------------------------------------------------------------------------- /test/fixtures/annotate/arguments-nested/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/arguments-nested/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/arguments/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/arguments/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/arguments/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/arguments/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/assignment-expression/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/assignment-expression/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/assignment-expression/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/assignment-expression/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/class-declaration-dynamic-extends/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/class-declaration-dynamic-extends/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/class-declaration-dynamic-extends/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/class-declaration-dynamic-extends/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/class-expression-dynamic-extends/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/class-expression-dynamic-extends/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/class-expression-dynamic-extends/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/class-expression-dynamic-extends/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/export-default/code.js: -------------------------------------------------------------------------------- 1 | export default curry(lighten) 2 | -------------------------------------------------------------------------------- /test/fixtures/annotate/export-default/output.js: -------------------------------------------------------------------------------- 1 | export default /*#__PURE__*/curry(lighten); -------------------------------------------------------------------------------- /test/fixtures/annotate/named-export/code.js: -------------------------------------------------------------------------------- 1 | export const inc = add(1) 2 | -------------------------------------------------------------------------------- /test/fixtures/annotate/named-export/output.js: -------------------------------------------------------------------------------- 1 | export const inc = /*#__PURE__*/add(1); -------------------------------------------------------------------------------- /test/fixtures/annotate/new-expression-arguments/code.js: -------------------------------------------------------------------------------- 1 | a = new MyClass(arg1(), arg2(nestedArg())) 2 | -------------------------------------------------------------------------------- /test/fixtures/annotate/new-expression-arguments/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/new-expression-arguments/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/new-expression/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/new-expression/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/new-expression/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/new-expression/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-arguments/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-arguments/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-arguments/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-arguments/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-call-expression/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-call-expression/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-call-expression/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-call-expression/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-mixed/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-mixed/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-mixed/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-mixed/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-new-expression/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-new-expression/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/outermost-new-expression/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/outermost-new-expression/output.js -------------------------------------------------------------------------------- /test/fixtures/annotate/pure-iife/code.js: -------------------------------------------------------------------------------- 1 | two = (() => { 2 | return 1 + 1 3 | })() 4 | -------------------------------------------------------------------------------- /test/fixtures/annotate/pure-iife/output.js: -------------------------------------------------------------------------------- 1 | two = /*#__PURE__*/(() => { 2 | return 1 + 1; 3 | })(); -------------------------------------------------------------------------------- /test/fixtures/annotate/variable-declaration/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/variable-declaration/code.js -------------------------------------------------------------------------------- /test/fixtures/annotate/variable-declaration/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/annotate/variable-declaration/output.js -------------------------------------------------------------------------------- /test/fixtures/fixes/callable-expression-has-null-leading-comments/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/fixes/callable-expression-has-null-leading-comments/code.js -------------------------------------------------------------------------------- /test/fixtures/fixes/callable-expression-has-null-leading-comments/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/fixes/callable-expression-has-null-leading-comments/output.js -------------------------------------------------------------------------------- /test/fixtures/iife/annotate-in-top-level-nested/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/annotate-in-top-level-nested/code.js -------------------------------------------------------------------------------- /test/fixtures/iife/annotate-in-top-level-nested/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/annotate-in-top-level-nested/output.js -------------------------------------------------------------------------------- /test/fixtures/iife/annotate-in-top-level/code.js: -------------------------------------------------------------------------------- 1 | a = (function() { 2 | var inc = add(1) 3 | })() 4 | -------------------------------------------------------------------------------- /test/fixtures/iife/annotate-in-top-level/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/annotate-in-top-level/output.js -------------------------------------------------------------------------------- /test/fixtures/iife/mixed-iife-types/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/mixed-iife-types/code.js -------------------------------------------------------------------------------- /test/fixtures/iife/mixed-iife-types/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/mixed-iife-types/output.js -------------------------------------------------------------------------------- /test/fixtures/iife/mixed-levels/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/mixed-levels/code.js -------------------------------------------------------------------------------- /test/fixtures/iife/mixed-levels/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/mixed-levels/output.js -------------------------------------------------------------------------------- /test/fixtures/iife/skip-in-non-iife-calls/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/skip-in-non-iife-calls/code.js -------------------------------------------------------------------------------- /test/fixtures/iife/skip-in-non-iife-calls/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/iife/skip-in-non-iife-calls/output.js -------------------------------------------------------------------------------- /test/fixtures/skip/annotated/code.js: -------------------------------------------------------------------------------- 1 | var inc = /*#__PURE__*/ add(1) 2 | -------------------------------------------------------------------------------- /test/fixtures/skip/annotated/output.js: -------------------------------------------------------------------------------- 1 | var inc = /*#__PURE__*/add(1); -------------------------------------------------------------------------------- /test/fixtures/skip/implicit-return/code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/skip/implicit-return/code.js -------------------------------------------------------------------------------- /test/fixtures/skip/implicit-return/output.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/fixtures/skip/implicit-return/output.js -------------------------------------------------------------------------------- /test/fixtures/skip/non-top-level/code.js: -------------------------------------------------------------------------------- 1 | function inc(a) { 2 | return add(a, 1) 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/skip/non-top-level/output.js: -------------------------------------------------------------------------------- 1 | function inc(a) { 2 | return add(a, 1); 3 | } -------------------------------------------------------------------------------- /test/fixtures/skip/side-effect-call/code.js: -------------------------------------------------------------------------------- 1 | fn() 2 | -------------------------------------------------------------------------------- /test/fixtures/skip/side-effect-call/output.js: -------------------------------------------------------------------------------- 1 | fn(); -------------------------------------------------------------------------------- /test/fixtures/skip/side-effect-iife/code.js: -------------------------------------------------------------------------------- 1 | ;(() => console.log('side effect'))() 2 | -------------------------------------------------------------------------------- /test/fixtures/skip/side-effect-iife/output.js: -------------------------------------------------------------------------------- 1 | ; 2 | (() => console.log('side effect'))(); -------------------------------------------------------------------------------- /test/index.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andarist/babel-plugin-annotate-pure-calls/HEAD/test/index.test.js --------------------------------------------------------------------------------