@node-minify/google-closure-compiler
Version:
google closure compiler plugin for @node-minify
95 lines (94 loc) • 3.19 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
// src/index.ts
var import_run = require("@node-minify/run");
var import_utils = require("@node-minify/utils");
var import_google_closure_compiler_java = __toESM(require("google-closure-compiler-java"));
var allowedFlags = [
"angular_pass",
"assume_function_wrapper",
"checks_only",
"compilation_level",
"create_source_map",
"define",
"env",
"externs",
"export_local_property_definitions",
"generate_exports",
"language_in",
"language_out",
"output_wrapper",
"polymer_version",
"process_common_js_modules",
"rename_prefix_namespace",
"rewrite_polyfills",
"use_types_for_optimization",
"warning_level"
];
var minifyGCC = ({ settings, content, callback, index }) => {
const options = applyOptions({}, settings?.options ?? {});
return (0, import_run.runCommandLine)({
args: gccCommand(options),
data: content,
settings,
callback: (err, content2) => {
if (err) {
if (callback) {
return callback(err);
}
throw err;
}
if (settings && !settings.content && settings.output) {
import_utils.utils.writeFile({ file: settings.output, content: content2, index });
}
if (callback) {
return callback(null, content2);
}
return content2;
}
});
};
var applyOptions = (flags, options) => {
if (!options || Object.keys(options).length === 0) {
return flags;
}
Object.keys(options).filter((option) => allowedFlags.indexOf(option) > -1).forEach((option) => {
const value = options[option];
if (typeof value === "boolean" || typeof value === "object" && !Array.isArray(value)) {
flags[option] = value;
}
});
return flags;
};
var gccCommand = (options) => {
return ["-jar", import_google_closure_compiler_java.default].concat(import_utils.utils.buildArgs(options ?? {}));
};
minifyGCC.default = minifyGCC;
module.exports = minifyGCC;
/*!
* node-minify
* Copyright(c) 2011-2024 Rodolphe Stoclin
* MIT Licensed
*/
//# sourceMappingURL=index.js.map