@unibeautify/beautifier-prettydiff
Version:
Pretty Diff beautifier for Unibeautify
121 lines • 4.08 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: "Pretty Diff",
package: pkg,
dependencies: [
{
type: unibeautify_1.DependencyType.Node,
name: "PrettyDiff",
package: "prettydiff2",
},
],
options: {
"C#": options_1.default.BasicScript,
ColdFusion: options_1.default.Markup,
CSS: options_1.default.Style,
EJS: options_1.default.Script,
Handlebars: options_1.default.Markup,
HTML: options_1.default.Markup,
"HTML+ERB": options_1.default.Markup,
Java: options_1.default.BasicScript,
JavaScript: options_1.default.Script,
JSON: options_1.default.JSON,
JSON5: options_1.default.JSON5,
JSX: options_1.default.Script,
Less: options_1.default.Style,
Riot: options_1.default.Script,
SCSS: options_1.default.Style,
Spacebars: options_1.default.Markup,
SVG: options_1.default.Markup,
Swig: options_1.default.Script,
"Titanium Style Sheets": options_1.default.Style,
Twig: options_1.default.Script,
TypeScript: options_1.default.Script,
Visualforce: options_1.default.Markup,
XML: options_1.default.Markup,
XTemplate: options_1.default.Markup,
},
beautify({ text, options, language, dependencies }) {
return new Promise((resolve, reject) => {
const prettydiff = dependencies.get("PrettyDiff").package;
let lang = "auto";
switch (language.name) {
case "EJS":
case "Twig":
lang = "ejs";
break;
case "HTML+ERB":
lang = "html_ruby";
break;
case "Handlebars":
case "Mustache":
case "Spacebars":
case "Swig":
case "Riot.js":
case "XTemplate":
lang = "handlebars";
break;
case "SGML":
case "XML":
case "Visualforce":
case "SVG":
lang = "xml";
break;
case "HTML":
case "Coldfusion":
lang = "html";
break;
case "JavaScript":
lang = "javascript";
break;
case "Java":
lang = "java";
break;
case "JSON":
case "JSON5":
lang = "json";
break;
case "JSX":
lang = "jsx";
break;
// case "JSTL": lang = "jsp"; break;
case "C#":
lang = "cs";
break;
case "CSS":
lang = "css";
break;
case "Less":
lang = "less";
break;
case "SCSS":
case "Sass":
lang = "scss";
break;
case "Titanium Style Sheets":
lang = "tss";
break;
case "TypeScript":
lang = "ts";
break;
default:
lang = "auto";
}
const args = Object.assign({}, options, {
insize: options.insize || 2,
source: text,
lang: lang,
mode: "beautify",
});
const result = prettydiff(args);
return resolve(result);
});
},
};
exports.default = exports.beautifier;
//# sourceMappingURL=index.js.map