const banner = `/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD AND TERSER
if you want to view the source, please visit the github repository of this plugin
*/
`;

const prod = process.argv[2] === "production" || process.env?.BUILD_MODE === "production";
/***
 * @type import("terser").MinifyOptions
 */
const terserOption = {
    sourceMap: !prod
        ? {
              url: "inline",
          }
        : {},
    format: {
        // indent_level: 2,
        // beautify: true,
        comments: "some",
        ecma: 2018,
        preamble: banner,
        webkit: true,
    },
    parse: {
        // parse options
    },
    compress: {
        // compress options
        defaults: false,
        evaluate: true,
        dead_code: true,
        // directives: true,
        inline: false,
        join_vars: true,
        loops: true,
        passes: 4,
        reduce_vars: true,
        reduce_funcs: false,
        arrows: true,
        collapse_vars: true,
        comparisons: true,
        //@ts-ignore
        lhs_constants: true,
        hoist_props: true,
        side_effects: true,
        ecma: 2018,
        // hoist_vars: true,
        // hoist_funs: true,
        if_return: true,
        // unsafe_math: true,
        unused: true,
        // --
        typeofs: true,
        properties: true,
        module: true,
        booleans: true,
        conditionals: true,
        hoist_funs: true,
        hoist_vars: true,
        // toplevel: "vars",
    },
    mangle: false,

    ecma: 2018, // specify one of: 5, 2015, 2016, etc.
    enclose: false, // or specify true, or "args:values"
    keep_classnames: true,
    keep_fnames: true,
    ie8: false,
    module: false,
    // nameCache: null, // or specify a name cache object
    safari10: false,
    toplevel: false,
};

export { terserOption };
