ligershark / WebOptimizer

A bundler and minifier for ASP.NET Core
Apache License 2.0
756 stars 113 forks source link

Js object param destructuring minification error #206

Open DomenicoCatrambone opened 2 years ago

DomenicoCatrambone commented 2 years ago

If i have a js module like this:

// myvalidation.js
const useValidation = (form, { submitAfterValidation = true }) => {
    const { listeners } = setupValidation(form, { submitAfterValidation });
    // code...
};
export { useValidation };

and my script use it like that:

// myscript.js
import { useValidation } from 'myvalidation.js';
useValidation(form, { submitAfterValidation: false });

When using WebOptimizer with js minification in ASP.NET Core 6

<script src="~/js/myscript.js" type="module"></script>

i get something like that:

// myvalidation.js
const r = (a, { t=true}) => {
    const { b } = c(a, { submitAfterValidation: t });
    // code...
};
// myscript.js
import { useValidation as t } from 'pathto.js';
t(a, { submitAfterValidation: false });

Problem

My function will be called with submitAfterValidation property but t is expected.

I am using a workaround, but it is not optimal:

services.AddWebOptimizer(pipeline =>
{
    pipeline.MinifyJsFiles(new NUglify.JavaScript.CodeSettings()
    {
        LocalRenaming = NUglify.JavaScript.LocalRenaming.KeepAll
    });
});