// import { Formatters, IFormatterMetadata, RuleFailure } from 'tslint'; // import * as ts from 'typescript'; // import { formatDiagnostics } from '@cirrusct/transpile'; // const ruleFailureToDiagnostic = (failure: RuleFailure): ts.Diagnostic => { // const severity = failure.getRuleSeverity(); // const tsCategory = // severity === 'error' // ? ts.DiagnosticCategory.Error // : severity === 'warning' // ? ts.DiagnosticCategory.Warning // : ts.DiagnosticCategory.Message; // const diag: ts.Diagnostic = { // reportsUnnecessary: false, // source: failure.getRawLines(), // category: tsCategory, // code: 9999, // file: failure['sourceFile'], // start: failure.getStartPosition().getPosition(), // length: failure.getEndPosition().getPosition() - failure.getStartPosition().getPosition(), // messageText: failure.getFailure(), // }; // return diag; // }; // export class Formatter extends Formatters.AbstractFormatter { // /* tslint:disable:object-literal-sort-keys */ // public static metadata: IFormatterMetadata = { // formatterName: 'tspretty', // description: 'Typescript pretty formatter.', // sample: 'xxx', // consumer: 'human', // }; // /* tslint:enable:object-literal-sort-keys */ // public format(failures: RuleFailure[], fixes?: RuleFailure[]): string { // if (failures.length === 0 && (fixes === undefined || fixes.length === 0)) { // return '\n'; // } // failures = this.sortFailures(failures); // const diags = failures.map(ruleFailureToDiagnostic); // // cast to any, as typescript versions may be slightly off and pull different types from ts-transpile // // tslint:disable-next-line no-any // const formatted = diags.map(d => formatDiagnostics(d as any, true).replace('TS9999 ', '')); // return `${formatted.join('\n')}`; // } // }