stylelint-checkstyle-reporter
Version:
Output Checkstyle XML reports of stylelint results
4 lines (3 loc) • 1.31 kB
JavaScript
import e from"get-stdin";import{create as r}from"xmlbuilder2";class t{constructor(){this.fileLevel=!1,this.builder=r({version:"1.0",encoding:"utf-8"}),this.builder=this.builder.ele("checkstyle",{version:"4.3"})}startFile(e){if(this.fileLevel)throw new Error("You have already started a file. Please call endFile first.");this.builder=this.builder.ele("file",{name:e}),this.fileLevel=!0}endFile(){if(!this.fileLevel)throw new Error("You have not started a file yet. Call startFile first.");this.builder=this.builder.up(),this.fileLevel=!1}addError(e){if(!this.fileLevel)throw new Error("You have not started a file yet. Call startFile first.");this.builder=this.builder.ele("error",e).up()}generate(e){return this.builder.end(e??{})}}(async()=>{let r,i="";try{i=await e()}catch{return void console.error("Unable to read from stdin. Did you pass anything?")}try{r=JSON.parse(i)}catch{return void console.error("Unable to parse stdin as JSON. Did you forget to use -f json?")}console.log(((e,r,i)=>{const l=new t;return e.forEach((e=>{e.source&&(l.startFile(e.source),e.warnings.forEach((e=>{l.addError({column:e.column,line:e.line,message:e.text,severity:e.severity,source:`stylelint.rules.${e.rule}`})})),l.endFile())})),l.generate(i)})(r))})();
//# sourceMappingURL=reporter-with-stdin.mjs.map