@unibeautify/beautifier-js-beautify
Version:
JS-Beautify beautifier for Unibeautify
68 lines • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const unibeautify_1 = require("unibeautify");
const readPkgUp = require("read-pkg-up");
const options_1 = require("./options");
const { pkg } = readPkgUp.sync({ cwd: __dirname });
exports.beautifier = {
name: "JS-Beautify",
package: pkg,
dependencies: [
{
type: unibeautify_1.DependencyType.Node,
name: "JS Beautify",
package: "js-beautify",
}
],
options: {
// HTML
HTML: options_1.default.HTML,
XML: options_1.default.HTML,
Handlebars: options_1.default.HTML,
Mustache: options_1.default.HTML,
Liquid: options_1.default.HTML,
// JavaScript
JavaScript: options_1.default.JavaScript,
EJS: options_1.default.JavaScript,
JSX: options_1.default.JavaScript,
JSON: options_1.default.JSON,
JSON5: options_1.default.JSON,
// CSS
CSS: options_1.default.CSS
},
beautify({ text, options, language, dependencies }) {
return new Promise((resolve, reject) => {
const jsbeautify = dependencies.get("JS Beautify").package;
try {
switch (language.name) {
case "JSON":
case "JSON5":
case "JavaScript":
return resolve(jsbeautify.js_beautify(text, options));
case "JSX":
options.e4x = true;
options.es4 = true;
return resolve(jsbeautify.js_beautify(text, options));
case "Handlebars":
case "Mustache":
options.indent_handlebars = true;
return resolve(jsbeautify.html_beautify(text, options));
case "EJS":
case "Liquid":
case "HTML":
case "XML":
return resolve(jsbeautify.html_beautify(text, options));
case "CSS":
return resolve(jsbeautify.css_beautify(text, options));
default:
throw (new Error("Unknown language for JS Beautify: " + language));
}
}
catch (error) {
return reject(error);
}
});
}
};
exports.default = exports.beautifier;
//# sourceMappingURL=index.js.map